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#[derive(Debug, Clone)]
332pub struct AjarTargetProxy {
333    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
334}
335
336impl fidl::endpoints::Proxy for AjarTargetProxy {
337    type Protocol = AjarTargetMarker;
338
339    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
340        Self::new(inner)
341    }
342
343    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
344        self.client.into_channel().map_err(|client| Self { client })
345    }
346
347    fn as_channel(&self) -> &::fidl::AsyncChannel {
348        self.client.as_channel()
349    }
350}
351
352impl AjarTargetProxy {
353    /// Create a new Proxy for fidl.clientsuite/AjarTarget.
354    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
355        let protocol_name = <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
356        Self { client: fidl::client::Client::new(channel, protocol_name) }
357    }
358
359    /// Get a Stream of events from the remote end of the protocol.
360    ///
361    /// # Panics
362    ///
363    /// Panics if the event stream was already taken.
364    pub fn take_event_stream(&self) -> AjarTargetEventStream {
365        AjarTargetEventStream { event_receiver: self.client.take_event_receiver() }
366    }
367}
368
369impl AjarTargetProxyInterface for AjarTargetProxy {}
370
371pub struct AjarTargetEventStream {
372    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
373}
374
375impl std::marker::Unpin for AjarTargetEventStream {}
376
377impl futures::stream::FusedStream for AjarTargetEventStream {
378    fn is_terminated(&self) -> bool {
379        self.event_receiver.is_terminated()
380    }
381}
382
383impl futures::Stream for AjarTargetEventStream {
384    type Item = Result<AjarTargetEvent, fidl::Error>;
385
386    fn poll_next(
387        mut self: std::pin::Pin<&mut Self>,
388        cx: &mut std::task::Context<'_>,
389    ) -> std::task::Poll<Option<Self::Item>> {
390        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
391            &mut self.event_receiver,
392            cx
393        )?) {
394            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEvent::decode(buf))),
395            None => std::task::Poll::Ready(None),
396        }
397    }
398}
399
400#[derive(Debug)]
401pub enum AjarTargetEvent {
402    #[non_exhaustive]
403    _UnknownEvent {
404        /// Ordinal of the event that was sent.
405        ordinal: u64,
406    },
407}
408
409impl AjarTargetEvent {
410    /// Decodes a message buffer as a [`AjarTargetEvent`].
411    fn decode(
412        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
413    ) -> Result<AjarTargetEvent, fidl::Error> {
414        let (bytes, _handles) = buf.split_mut();
415        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
416        debug_assert_eq!(tx_header.tx_id, 0);
417        match tx_header.ordinal {
418            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
419                Ok(AjarTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
420            }
421            _ => Err(fidl::Error::UnknownOrdinal {
422                ordinal: tx_header.ordinal,
423                protocol_name: <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
424            }),
425        }
426    }
427}
428
429/// A Stream of incoming requests for fidl.clientsuite/AjarTarget.
430pub struct AjarTargetRequestStream {
431    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
432    is_terminated: bool,
433}
434
435impl std::marker::Unpin for AjarTargetRequestStream {}
436
437impl futures::stream::FusedStream for AjarTargetRequestStream {
438    fn is_terminated(&self) -> bool {
439        self.is_terminated
440    }
441}
442
443impl fidl::endpoints::RequestStream for AjarTargetRequestStream {
444    type Protocol = AjarTargetMarker;
445    type ControlHandle = AjarTargetControlHandle;
446
447    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
448        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
449    }
450
451    fn control_handle(&self) -> Self::ControlHandle {
452        AjarTargetControlHandle { inner: self.inner.clone() }
453    }
454
455    fn into_inner(
456        self,
457    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
458    {
459        (self.inner, self.is_terminated)
460    }
461
462    fn from_inner(
463        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
464        is_terminated: bool,
465    ) -> Self {
466        Self { inner, is_terminated }
467    }
468}
469
470impl futures::Stream for AjarTargetRequestStream {
471    type Item = Result<AjarTargetRequest, fidl::Error>;
472
473    fn poll_next(
474        mut self: std::pin::Pin<&mut Self>,
475        cx: &mut std::task::Context<'_>,
476    ) -> std::task::Poll<Option<Self::Item>> {
477        let this = &mut *self;
478        if this.inner.check_shutdown(cx) {
479            this.is_terminated = true;
480            return std::task::Poll::Ready(None);
481        }
482        if this.is_terminated {
483            panic!("polled AjarTargetRequestStream after completion");
484        }
485        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
486            |bytes, handles| {
487                match this.inner.channel().read_etc(cx, bytes, handles) {
488                    std::task::Poll::Ready(Ok(())) => {}
489                    std::task::Poll::Pending => return std::task::Poll::Pending,
490                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
491                        this.is_terminated = true;
492                        return std::task::Poll::Ready(None);
493                    }
494                    std::task::Poll::Ready(Err(e)) => {
495                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
496                            e.into(),
497                        ))))
498                    }
499                }
500
501                // A message has been received from the channel
502                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
503
504                std::task::Poll::Ready(Some(match header.ordinal {
505                    _ if header.tx_id == 0
506                        && header
507                            .dynamic_flags()
508                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
509                    {
510                        Ok(AjarTargetRequest::_UnknownMethod {
511                            ordinal: header.ordinal,
512                            control_handle: AjarTargetControlHandle { inner: this.inner.clone() },
513                        })
514                    }
515                    _ => Err(fidl::Error::UnknownOrdinal {
516                        ordinal: header.ordinal,
517                        protocol_name:
518                            <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
519                    }),
520                }))
521            },
522        )
523    }
524}
525
526#[derive(Debug)]
527pub enum AjarTargetRequest {
528    /// An interaction was received which does not match any known method.
529    #[non_exhaustive]
530    _UnknownMethod {
531        /// Ordinal of the method that was called.
532        ordinal: u64,
533        control_handle: AjarTargetControlHandle,
534    },
535}
536
537impl AjarTargetRequest {
538    /// Name of the method defined in FIDL
539    pub fn method_name(&self) -> &'static str {
540        match *self {
541            AjarTargetRequest::_UnknownMethod { .. } => "unknown one-way method",
542        }
543    }
544}
545
546#[derive(Debug, Clone)]
547pub struct AjarTargetControlHandle {
548    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
549}
550
551impl fidl::endpoints::ControlHandle for AjarTargetControlHandle {
552    fn shutdown(&self) {
553        self.inner.shutdown()
554    }
555    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
556        self.inner.shutdown_with_epitaph(status)
557    }
558
559    fn is_closed(&self) -> bool {
560        self.inner.channel().is_closed()
561    }
562    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
563        self.inner.channel().on_closed()
564    }
565
566    #[cfg(target_os = "fuchsia")]
567    fn signal_peer(
568        &self,
569        clear_mask: zx::Signals,
570        set_mask: zx::Signals,
571    ) -> Result<(), zx_status::Status> {
572        use fidl::Peered;
573        self.inner.channel().signal_peer(clear_mask, set_mask)
574    }
575}
576
577impl AjarTargetControlHandle {}
578
579#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
580pub struct AjarTargetEventReporterMarker;
581
582impl fidl::endpoints::ProtocolMarker for AjarTargetEventReporterMarker {
583    type Proxy = AjarTargetEventReporterProxy;
584    type RequestStream = AjarTargetEventReporterRequestStream;
585    #[cfg(target_os = "fuchsia")]
586    type SynchronousProxy = AjarTargetEventReporterSynchronousProxy;
587
588    const DEBUG_NAME: &'static str = "(anonymous) AjarTargetEventReporter";
589}
590
591pub trait AjarTargetEventReporterProxyInterface: Send + Sync {
592    fn r#report_event(&self, payload: &AjarTargetEventReport) -> Result<(), fidl::Error>;
593}
594#[derive(Debug)]
595#[cfg(target_os = "fuchsia")]
596pub struct AjarTargetEventReporterSynchronousProxy {
597    client: fidl::client::sync::Client,
598}
599
600#[cfg(target_os = "fuchsia")]
601impl fidl::endpoints::SynchronousProxy for AjarTargetEventReporterSynchronousProxy {
602    type Proxy = AjarTargetEventReporterProxy;
603    type Protocol = AjarTargetEventReporterMarker;
604
605    fn from_channel(inner: fidl::Channel) -> Self {
606        Self::new(inner)
607    }
608
609    fn into_channel(self) -> fidl::Channel {
610        self.client.into_channel()
611    }
612
613    fn as_channel(&self) -> &fidl::Channel {
614        self.client.as_channel()
615    }
616}
617
618#[cfg(target_os = "fuchsia")]
619impl AjarTargetEventReporterSynchronousProxy {
620    pub fn new(channel: fidl::Channel) -> Self {
621        let protocol_name =
622            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
623        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
624    }
625
626    pub fn into_channel(self) -> fidl::Channel {
627        self.client.into_channel()
628    }
629
630    /// Waits until an event arrives and returns it. It is safe for other
631    /// threads to make concurrent requests while waiting for an event.
632    pub fn wait_for_event(
633        &self,
634        deadline: zx::MonotonicInstant,
635    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
636        AjarTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
637    }
638
639    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
640        self.client.send::<AjarTargetEventReport>(
641            payload,
642            0x477b93390be99238,
643            fidl::encoding::DynamicFlags::empty(),
644        )
645    }
646}
647
648#[derive(Debug, Clone)]
649pub struct AjarTargetEventReporterProxy {
650    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
651}
652
653impl fidl::endpoints::Proxy for AjarTargetEventReporterProxy {
654    type Protocol = AjarTargetEventReporterMarker;
655
656    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
657        Self::new(inner)
658    }
659
660    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
661        self.client.into_channel().map_err(|client| Self { client })
662    }
663
664    fn as_channel(&self) -> &::fidl::AsyncChannel {
665        self.client.as_channel()
666    }
667}
668
669impl AjarTargetEventReporterProxy {
670    /// Create a new Proxy for fidl.clientsuite/AjarTargetEventReporter.
671    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
672        let protocol_name =
673            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
674        Self { client: fidl::client::Client::new(channel, protocol_name) }
675    }
676
677    /// Get a Stream of events from the remote end of the protocol.
678    ///
679    /// # Panics
680    ///
681    /// Panics if the event stream was already taken.
682    pub fn take_event_stream(&self) -> AjarTargetEventReporterEventStream {
683        AjarTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
684    }
685
686    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
687        AjarTargetEventReporterProxyInterface::r#report_event(self, payload)
688    }
689}
690
691impl AjarTargetEventReporterProxyInterface for AjarTargetEventReporterProxy {
692    fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
693        self.client.send::<AjarTargetEventReport>(
694            payload,
695            0x477b93390be99238,
696            fidl::encoding::DynamicFlags::empty(),
697        )
698    }
699}
700
701pub struct AjarTargetEventReporterEventStream {
702    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
703}
704
705impl std::marker::Unpin for AjarTargetEventReporterEventStream {}
706
707impl futures::stream::FusedStream for AjarTargetEventReporterEventStream {
708    fn is_terminated(&self) -> bool {
709        self.event_receiver.is_terminated()
710    }
711}
712
713impl futures::Stream for AjarTargetEventReporterEventStream {
714    type Item = Result<AjarTargetEventReporterEvent, fidl::Error>;
715
716    fn poll_next(
717        mut self: std::pin::Pin<&mut Self>,
718        cx: &mut std::task::Context<'_>,
719    ) -> std::task::Poll<Option<Self::Item>> {
720        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
721            &mut self.event_receiver,
722            cx
723        )?) {
724            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEventReporterEvent::decode(buf))),
725            None => std::task::Poll::Ready(None),
726        }
727    }
728}
729
730#[derive(Debug)]
731pub enum AjarTargetEventReporterEvent {}
732
733impl AjarTargetEventReporterEvent {
734    /// Decodes a message buffer as a [`AjarTargetEventReporterEvent`].
735    fn decode(
736        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
737    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
738        let (bytes, _handles) = buf.split_mut();
739        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
740        debug_assert_eq!(tx_header.tx_id, 0);
741        match tx_header.ordinal {
742            _ => Err(fidl::Error::UnknownOrdinal {
743                ordinal: tx_header.ordinal,
744                protocol_name:
745                    <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
746            }),
747        }
748    }
749}
750
751/// A Stream of incoming requests for fidl.clientsuite/AjarTargetEventReporter.
752pub struct AjarTargetEventReporterRequestStream {
753    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
754    is_terminated: bool,
755}
756
757impl std::marker::Unpin for AjarTargetEventReporterRequestStream {}
758
759impl futures::stream::FusedStream for AjarTargetEventReporterRequestStream {
760    fn is_terminated(&self) -> bool {
761        self.is_terminated
762    }
763}
764
765impl fidl::endpoints::RequestStream for AjarTargetEventReporterRequestStream {
766    type Protocol = AjarTargetEventReporterMarker;
767    type ControlHandle = AjarTargetEventReporterControlHandle;
768
769    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
770        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
771    }
772
773    fn control_handle(&self) -> Self::ControlHandle {
774        AjarTargetEventReporterControlHandle { inner: self.inner.clone() }
775    }
776
777    fn into_inner(
778        self,
779    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
780    {
781        (self.inner, self.is_terminated)
782    }
783
784    fn from_inner(
785        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
786        is_terminated: bool,
787    ) -> Self {
788        Self { inner, is_terminated }
789    }
790}
791
792impl futures::Stream for AjarTargetEventReporterRequestStream {
793    type Item = Result<AjarTargetEventReporterRequest, fidl::Error>;
794
795    fn poll_next(
796        mut self: std::pin::Pin<&mut Self>,
797        cx: &mut std::task::Context<'_>,
798    ) -> std::task::Poll<Option<Self::Item>> {
799        let this = &mut *self;
800        if this.inner.check_shutdown(cx) {
801            this.is_terminated = true;
802            return std::task::Poll::Ready(None);
803        }
804        if this.is_terminated {
805            panic!("polled AjarTargetEventReporterRequestStream after completion");
806        }
807        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
808            |bytes, handles| {
809                match this.inner.channel().read_etc(cx, bytes, handles) {
810                    std::task::Poll::Ready(Ok(())) => {}
811                    std::task::Poll::Pending => return std::task::Poll::Pending,
812                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
813                        this.is_terminated = true;
814                        return std::task::Poll::Ready(None);
815                    }
816                    std::task::Poll::Ready(Err(e)) => {
817                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
818                            e.into(),
819                        ))))
820                    }
821                }
822
823                // A message has been received from the channel
824                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
825
826                std::task::Poll::Ready(Some(match header.ordinal {
827                0x477b93390be99238 => {
828                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
829                    let mut req = fidl::new_empty!(AjarTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
830                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<AjarTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
831                    let control_handle = AjarTargetEventReporterControlHandle {
832                        inner: this.inner.clone(),
833                    };
834                    Ok(AjarTargetEventReporterRequest::ReportEvent {payload: req,
835                        control_handle,
836                    })
837                }
838                _ => Err(fidl::Error::UnknownOrdinal {
839                    ordinal: header.ordinal,
840                    protocol_name: <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
841                }),
842            }))
843            },
844        )
845    }
846}
847
848#[derive(Debug)]
849pub enum AjarTargetEventReporterRequest {
850    ReportEvent {
851        payload: AjarTargetEventReport,
852        control_handle: AjarTargetEventReporterControlHandle,
853    },
854}
855
856impl AjarTargetEventReporterRequest {
857    #[allow(irrefutable_let_patterns)]
858    pub fn into_report_event(
859        self,
860    ) -> Option<(AjarTargetEventReport, AjarTargetEventReporterControlHandle)> {
861        if let AjarTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
862            Some((payload, control_handle))
863        } else {
864            None
865        }
866    }
867
868    /// Name of the method defined in FIDL
869    pub fn method_name(&self) -> &'static str {
870        match *self {
871            AjarTargetEventReporterRequest::ReportEvent { .. } => "report_event",
872        }
873    }
874}
875
876#[derive(Debug, Clone)]
877pub struct AjarTargetEventReporterControlHandle {
878    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
879}
880
881impl fidl::endpoints::ControlHandle for AjarTargetEventReporterControlHandle {
882    fn shutdown(&self) {
883        self.inner.shutdown()
884    }
885    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
886        self.inner.shutdown_with_epitaph(status)
887    }
888
889    fn is_closed(&self) -> bool {
890        self.inner.channel().is_closed()
891    }
892    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
893        self.inner.channel().on_closed()
894    }
895
896    #[cfg(target_os = "fuchsia")]
897    fn signal_peer(
898        &self,
899        clear_mask: zx::Signals,
900        set_mask: zx::Signals,
901    ) -> Result<(), zx_status::Status> {
902        use fidl::Peered;
903        self.inner.channel().signal_peer(clear_mask, set_mask)
904    }
905}
906
907impl AjarTargetEventReporterControlHandle {}
908
909#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
910pub struct ClosedTargetMarker;
911
912impl fidl::endpoints::ProtocolMarker for ClosedTargetMarker {
913    type Proxy = ClosedTargetProxy;
914    type RequestStream = ClosedTargetRequestStream;
915    #[cfg(target_os = "fuchsia")]
916    type SynchronousProxy = ClosedTargetSynchronousProxy;
917
918    const DEBUG_NAME: &'static str = "(anonymous) ClosedTarget";
919}
920pub type ClosedTargetTwoWayStructPayloadErrResult = Result<i32, i32>;
921
922pub trait ClosedTargetProxyInterface: Send + Sync {
923    type TwoWayNoPayloadResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
924    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut;
925    type TwoWayStructPayloadResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
926        + Send;
927    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut;
928    type TwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TablePayload, fidl::Error>>
929        + Send;
930    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut;
931    type TwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionPayload, fidl::Error>>
932        + Send;
933    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut;
934    type TwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error>>
935        + Send;
936    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut;
937    type TwoWayStructRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
938        + Send;
939    fn r#two_way_struct_request(&self, some_field: i32) -> Self::TwoWayStructRequestResponseFut;
940    type TwoWayTableRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
941    fn r#two_way_table_request(
942        &self,
943        payload: &TablePayload,
944    ) -> Self::TwoWayTableRequestResponseFut;
945    type TwoWayUnionRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
946    fn r#two_way_union_request(
947        &self,
948        payload: &UnionPayload,
949    ) -> Self::TwoWayUnionRequestResponseFut;
950    fn r#one_way_no_request(&self) -> Result<(), fidl::Error>;
951    fn r#one_way_struct_request(&self, some_field: i32) -> Result<(), fidl::Error>;
952    fn r#one_way_table_request(&self, payload: &TablePayload) -> Result<(), fidl::Error>;
953    fn r#one_way_union_request(&self, payload: &UnionPayload) -> Result<(), fidl::Error>;
954}
955#[derive(Debug)]
956#[cfg(target_os = "fuchsia")]
957pub struct ClosedTargetSynchronousProxy {
958    client: fidl::client::sync::Client,
959}
960
961#[cfg(target_os = "fuchsia")]
962impl fidl::endpoints::SynchronousProxy for ClosedTargetSynchronousProxy {
963    type Proxy = ClosedTargetProxy;
964    type Protocol = ClosedTargetMarker;
965
966    fn from_channel(inner: fidl::Channel) -> Self {
967        Self::new(inner)
968    }
969
970    fn into_channel(self) -> fidl::Channel {
971        self.client.into_channel()
972    }
973
974    fn as_channel(&self) -> &fidl::Channel {
975        self.client.as_channel()
976    }
977}
978
979#[cfg(target_os = "fuchsia")]
980impl ClosedTargetSynchronousProxy {
981    pub fn new(channel: fidl::Channel) -> Self {
982        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
983        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
984    }
985
986    pub fn into_channel(self) -> fidl::Channel {
987        self.client.into_channel()
988    }
989
990    /// Waits until an event arrives and returns it. It is safe for other
991    /// threads to make concurrent requests while waiting for an event.
992    pub fn wait_for_event(
993        &self,
994        deadline: zx::MonotonicInstant,
995    ) -> Result<ClosedTargetEvent, fidl::Error> {
996        ClosedTargetEvent::decode(self.client.wait_for_event(deadline)?)
997    }
998
999    pub fn r#two_way_no_payload(
1000        &self,
1001        ___deadline: zx::MonotonicInstant,
1002    ) -> Result<(), fidl::Error> {
1003        let _response =
1004            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
1005                (),
1006                0x7a722961424c1720,
1007                fidl::encoding::DynamicFlags::empty(),
1008                ___deadline,
1009            )?;
1010        Ok(_response)
1011    }
1012
1013    pub fn r#two_way_struct_payload(
1014        &self,
1015        ___deadline: zx::MonotonicInstant,
1016    ) -> Result<i32, fidl::Error> {
1017        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload>(
1018            (),
1019            0x3a402118bad781bd,
1020            fidl::encoding::DynamicFlags::empty(),
1021            ___deadline,
1022        )?;
1023        Ok(_response.some_field)
1024    }
1025
1026    pub fn r#two_way_table_payload(
1027        &self,
1028        ___deadline: zx::MonotonicInstant,
1029    ) -> Result<TablePayload, fidl::Error> {
1030        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, TablePayload>(
1031            (),
1032            0x53be101c241c66bc,
1033            fidl::encoding::DynamicFlags::empty(),
1034            ___deadline,
1035        )?;
1036        Ok(_response)
1037    }
1038
1039    pub fn r#two_way_union_payload(
1040        &self,
1041        ___deadline: zx::MonotonicInstant,
1042    ) -> Result<UnionPayload, fidl::Error> {
1043        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, UnionPayload>(
1044            (),
1045            0x1ff7f745ab608f8c,
1046            fidl::encoding::DynamicFlags::empty(),
1047            ___deadline,
1048        )?;
1049        Ok(_response)
1050    }
1051
1052    pub fn r#two_way_struct_payload_err(
1053        &self,
1054        ___deadline: zx::MonotonicInstant,
1055    ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1056        let _response = self.client.send_query::<
1057            fidl::encoding::EmptyPayload,
1058            fidl::encoding::ResultType<NonEmptyPayload, i32>,
1059        >(
1060            (),
1061            0x62b4861c443bbc0b,
1062            fidl::encoding::DynamicFlags::empty(),
1063            ___deadline,
1064        )?;
1065        Ok(_response.map(|x| x.some_field))
1066    }
1067
1068    pub fn r#two_way_struct_request(
1069        &self,
1070        mut some_field: i32,
1071        ___deadline: zx::MonotonicInstant,
1072    ) -> Result<(), fidl::Error> {
1073        let _response = self.client.send_query::<NonEmptyPayload, fidl::encoding::EmptyPayload>(
1074            (some_field,),
1075            0x4ff77b4a913be5b6,
1076            fidl::encoding::DynamicFlags::empty(),
1077            ___deadline,
1078        )?;
1079        Ok(_response)
1080    }
1081
1082    pub fn r#two_way_table_request(
1083        &self,
1084        mut payload: &TablePayload,
1085        ___deadline: zx::MonotonicInstant,
1086    ) -> Result<(), fidl::Error> {
1087        let _response = self.client.send_query::<TablePayload, fidl::encoding::EmptyPayload>(
1088            payload,
1089            0x3d38ad5b0f4f49cf,
1090            fidl::encoding::DynamicFlags::empty(),
1091            ___deadline,
1092        )?;
1093        Ok(_response)
1094    }
1095
1096    pub fn r#two_way_union_request(
1097        &self,
1098        mut payload: &UnionPayload,
1099        ___deadline: zx::MonotonicInstant,
1100    ) -> Result<(), fidl::Error> {
1101        let _response = self.client.send_query::<UnionPayload, fidl::encoding::EmptyPayload>(
1102            payload,
1103            0x7adb1c265a378e77,
1104            fidl::encoding::DynamicFlags::empty(),
1105            ___deadline,
1106        )?;
1107        Ok(_response)
1108    }
1109
1110    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1111        self.client.send::<fidl::encoding::EmptyPayload>(
1112            (),
1113            0xc376730a2cd8a05,
1114            fidl::encoding::DynamicFlags::empty(),
1115        )
1116    }
1117
1118    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1119        self.client.send::<NonEmptyPayload>(
1120            (some_field,),
1121            0x2618da6f51e0dcd2,
1122            fidl::encoding::DynamicFlags::empty(),
1123        )
1124    }
1125
1126    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1127        self.client.send::<TablePayload>(
1128            payload,
1129            0x1a4b7d32eaed401f,
1130            fidl::encoding::DynamicFlags::empty(),
1131        )
1132    }
1133
1134    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1135        self.client.send::<UnionPayload>(
1136            payload,
1137            0x142b3cd9ea530de5,
1138            fidl::encoding::DynamicFlags::empty(),
1139        )
1140    }
1141}
1142
1143#[derive(Debug, Clone)]
1144pub struct ClosedTargetProxy {
1145    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1146}
1147
1148impl fidl::endpoints::Proxy for ClosedTargetProxy {
1149    type Protocol = ClosedTargetMarker;
1150
1151    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1152        Self::new(inner)
1153    }
1154
1155    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1156        self.client.into_channel().map_err(|client| Self { client })
1157    }
1158
1159    fn as_channel(&self) -> &::fidl::AsyncChannel {
1160        self.client.as_channel()
1161    }
1162}
1163
1164impl ClosedTargetProxy {
1165    /// Create a new Proxy for fidl.clientsuite/ClosedTarget.
1166    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1167        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1168        Self { client: fidl::client::Client::new(channel, protocol_name) }
1169    }
1170
1171    /// Get a Stream of events from the remote end of the protocol.
1172    ///
1173    /// # Panics
1174    ///
1175    /// Panics if the event stream was already taken.
1176    pub fn take_event_stream(&self) -> ClosedTargetEventStream {
1177        ClosedTargetEventStream { event_receiver: self.client.take_event_receiver() }
1178    }
1179
1180    pub fn r#two_way_no_payload(
1181        &self,
1182    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1183        ClosedTargetProxyInterface::r#two_way_no_payload(self)
1184    }
1185
1186    pub fn r#two_way_struct_payload(
1187        &self,
1188    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
1189        ClosedTargetProxyInterface::r#two_way_struct_payload(self)
1190    }
1191
1192    pub fn r#two_way_table_payload(
1193        &self,
1194    ) -> fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1195    {
1196        ClosedTargetProxyInterface::r#two_way_table_payload(self)
1197    }
1198
1199    pub fn r#two_way_union_payload(
1200        &self,
1201    ) -> fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1202    {
1203        ClosedTargetProxyInterface::r#two_way_union_payload(self)
1204    }
1205
1206    pub fn r#two_way_struct_payload_err(
1207        &self,
1208    ) -> fidl::client::QueryResponseFut<
1209        ClosedTargetTwoWayStructPayloadErrResult,
1210        fidl::encoding::DefaultFuchsiaResourceDialect,
1211    > {
1212        ClosedTargetProxyInterface::r#two_way_struct_payload_err(self)
1213    }
1214
1215    pub fn r#two_way_struct_request(
1216        &self,
1217        mut some_field: i32,
1218    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1219        ClosedTargetProxyInterface::r#two_way_struct_request(self, some_field)
1220    }
1221
1222    pub fn r#two_way_table_request(
1223        &self,
1224        mut payload: &TablePayload,
1225    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1226        ClosedTargetProxyInterface::r#two_way_table_request(self, payload)
1227    }
1228
1229    pub fn r#two_way_union_request(
1230        &self,
1231        mut payload: &UnionPayload,
1232    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1233        ClosedTargetProxyInterface::r#two_way_union_request(self, payload)
1234    }
1235
1236    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1237        ClosedTargetProxyInterface::r#one_way_no_request(self)
1238    }
1239
1240    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1241        ClosedTargetProxyInterface::r#one_way_struct_request(self, some_field)
1242    }
1243
1244    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1245        ClosedTargetProxyInterface::r#one_way_table_request(self, payload)
1246    }
1247
1248    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1249        ClosedTargetProxyInterface::r#one_way_union_request(self, payload)
1250    }
1251}
1252
1253impl ClosedTargetProxyInterface for ClosedTargetProxy {
1254    type TwoWayNoPayloadResponseFut =
1255        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1256    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut {
1257        fn _decode(
1258            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1259        ) -> Result<(), fidl::Error> {
1260            let _response = fidl::client::decode_transaction_body::<
1261                fidl::encoding::EmptyPayload,
1262                fidl::encoding::DefaultFuchsiaResourceDialect,
1263                0x7a722961424c1720,
1264            >(_buf?)?;
1265            Ok(_response)
1266        }
1267        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
1268            (),
1269            0x7a722961424c1720,
1270            fidl::encoding::DynamicFlags::empty(),
1271            _decode,
1272        )
1273    }
1274
1275    type TwoWayStructPayloadResponseFut =
1276        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
1277    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut {
1278        fn _decode(
1279            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1280        ) -> Result<i32, fidl::Error> {
1281            let _response = fidl::client::decode_transaction_body::<
1282                NonEmptyPayload,
1283                fidl::encoding::DefaultFuchsiaResourceDialect,
1284                0x3a402118bad781bd,
1285            >(_buf?)?;
1286            Ok(_response.some_field)
1287        }
1288        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
1289            (),
1290            0x3a402118bad781bd,
1291            fidl::encoding::DynamicFlags::empty(),
1292            _decode,
1293        )
1294    }
1295
1296    type TwoWayTablePayloadResponseFut =
1297        fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1298    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut {
1299        fn _decode(
1300            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1301        ) -> Result<TablePayload, fidl::Error> {
1302            let _response = fidl::client::decode_transaction_body::<
1303                TablePayload,
1304                fidl::encoding::DefaultFuchsiaResourceDialect,
1305                0x53be101c241c66bc,
1306            >(_buf?)?;
1307            Ok(_response)
1308        }
1309        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, TablePayload>(
1310            (),
1311            0x53be101c241c66bc,
1312            fidl::encoding::DynamicFlags::empty(),
1313            _decode,
1314        )
1315    }
1316
1317    type TwoWayUnionPayloadResponseFut =
1318        fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1319    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut {
1320        fn _decode(
1321            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1322        ) -> Result<UnionPayload, fidl::Error> {
1323            let _response = fidl::client::decode_transaction_body::<
1324                UnionPayload,
1325                fidl::encoding::DefaultFuchsiaResourceDialect,
1326                0x1ff7f745ab608f8c,
1327            >(_buf?)?;
1328            Ok(_response)
1329        }
1330        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, UnionPayload>(
1331            (),
1332            0x1ff7f745ab608f8c,
1333            fidl::encoding::DynamicFlags::empty(),
1334            _decode,
1335        )
1336    }
1337
1338    type TwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
1339        ClosedTargetTwoWayStructPayloadErrResult,
1340        fidl::encoding::DefaultFuchsiaResourceDialect,
1341    >;
1342    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut {
1343        fn _decode(
1344            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1345        ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1346            let _response = fidl::client::decode_transaction_body::<
1347                fidl::encoding::ResultType<NonEmptyPayload, i32>,
1348                fidl::encoding::DefaultFuchsiaResourceDialect,
1349                0x62b4861c443bbc0b,
1350            >(_buf?)?;
1351            Ok(_response.map(|x| x.some_field))
1352        }
1353        self.client.send_query_and_decode::<
1354            fidl::encoding::EmptyPayload,
1355            ClosedTargetTwoWayStructPayloadErrResult,
1356        >(
1357            (),
1358            0x62b4861c443bbc0b,
1359            fidl::encoding::DynamicFlags::empty(),
1360            _decode,
1361        )
1362    }
1363
1364    type TwoWayStructRequestResponseFut =
1365        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1366    fn r#two_way_struct_request(
1367        &self,
1368        mut some_field: i32,
1369    ) -> Self::TwoWayStructRequestResponseFut {
1370        fn _decode(
1371            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1372        ) -> Result<(), fidl::Error> {
1373            let _response = fidl::client::decode_transaction_body::<
1374                fidl::encoding::EmptyPayload,
1375                fidl::encoding::DefaultFuchsiaResourceDialect,
1376                0x4ff77b4a913be5b6,
1377            >(_buf?)?;
1378            Ok(_response)
1379        }
1380        self.client.send_query_and_decode::<NonEmptyPayload, ()>(
1381            (some_field,),
1382            0x4ff77b4a913be5b6,
1383            fidl::encoding::DynamicFlags::empty(),
1384            _decode,
1385        )
1386    }
1387
1388    type TwoWayTableRequestResponseFut =
1389        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1390    fn r#two_way_table_request(
1391        &self,
1392        mut payload: &TablePayload,
1393    ) -> Self::TwoWayTableRequestResponseFut {
1394        fn _decode(
1395            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1396        ) -> Result<(), fidl::Error> {
1397            let _response = fidl::client::decode_transaction_body::<
1398                fidl::encoding::EmptyPayload,
1399                fidl::encoding::DefaultFuchsiaResourceDialect,
1400                0x3d38ad5b0f4f49cf,
1401            >(_buf?)?;
1402            Ok(_response)
1403        }
1404        self.client.send_query_and_decode::<TablePayload, ()>(
1405            payload,
1406            0x3d38ad5b0f4f49cf,
1407            fidl::encoding::DynamicFlags::empty(),
1408            _decode,
1409        )
1410    }
1411
1412    type TwoWayUnionRequestResponseFut =
1413        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1414    fn r#two_way_union_request(
1415        &self,
1416        mut payload: &UnionPayload,
1417    ) -> Self::TwoWayUnionRequestResponseFut {
1418        fn _decode(
1419            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1420        ) -> Result<(), fidl::Error> {
1421            let _response = fidl::client::decode_transaction_body::<
1422                fidl::encoding::EmptyPayload,
1423                fidl::encoding::DefaultFuchsiaResourceDialect,
1424                0x7adb1c265a378e77,
1425            >(_buf?)?;
1426            Ok(_response)
1427        }
1428        self.client.send_query_and_decode::<UnionPayload, ()>(
1429            payload,
1430            0x7adb1c265a378e77,
1431            fidl::encoding::DynamicFlags::empty(),
1432            _decode,
1433        )
1434    }
1435
1436    fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1437        self.client.send::<fidl::encoding::EmptyPayload>(
1438            (),
1439            0xc376730a2cd8a05,
1440            fidl::encoding::DynamicFlags::empty(),
1441        )
1442    }
1443
1444    fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1445        self.client.send::<NonEmptyPayload>(
1446            (some_field,),
1447            0x2618da6f51e0dcd2,
1448            fidl::encoding::DynamicFlags::empty(),
1449        )
1450    }
1451
1452    fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1453        self.client.send::<TablePayload>(
1454            payload,
1455            0x1a4b7d32eaed401f,
1456            fidl::encoding::DynamicFlags::empty(),
1457        )
1458    }
1459
1460    fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1461        self.client.send::<UnionPayload>(
1462            payload,
1463            0x142b3cd9ea530de5,
1464            fidl::encoding::DynamicFlags::empty(),
1465        )
1466    }
1467}
1468
1469pub struct ClosedTargetEventStream {
1470    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1471}
1472
1473impl std::marker::Unpin for ClosedTargetEventStream {}
1474
1475impl futures::stream::FusedStream for ClosedTargetEventStream {
1476    fn is_terminated(&self) -> bool {
1477        self.event_receiver.is_terminated()
1478    }
1479}
1480
1481impl futures::Stream for ClosedTargetEventStream {
1482    type Item = Result<ClosedTargetEvent, fidl::Error>;
1483
1484    fn poll_next(
1485        mut self: std::pin::Pin<&mut Self>,
1486        cx: &mut std::task::Context<'_>,
1487    ) -> std::task::Poll<Option<Self::Item>> {
1488        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1489            &mut self.event_receiver,
1490            cx
1491        )?) {
1492            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEvent::decode(buf))),
1493            None => std::task::Poll::Ready(None),
1494        }
1495    }
1496}
1497
1498#[derive(Debug)]
1499pub enum ClosedTargetEvent {
1500    OnEventNoPayload {},
1501    OnEventStructPayload { some_field: i32 },
1502    OnEventTablePayload { payload: TablePayload },
1503    OnEventUnionPayload { payload: UnionPayload },
1504}
1505
1506impl ClosedTargetEvent {
1507    #[allow(irrefutable_let_patterns)]
1508    pub fn into_on_event_no_payload(self) -> Option<()> {
1509        if let ClosedTargetEvent::OnEventNoPayload {} = self {
1510            Some(())
1511        } else {
1512            None
1513        }
1514    }
1515    #[allow(irrefutable_let_patterns)]
1516    pub fn into_on_event_struct_payload(self) -> Option<i32> {
1517        if let ClosedTargetEvent::OnEventStructPayload { some_field } = self {
1518            Some((some_field))
1519        } else {
1520            None
1521        }
1522    }
1523    #[allow(irrefutable_let_patterns)]
1524    pub fn into_on_event_table_payload(self) -> Option<TablePayload> {
1525        if let ClosedTargetEvent::OnEventTablePayload { payload } = self {
1526            Some((payload))
1527        } else {
1528            None
1529        }
1530    }
1531    #[allow(irrefutable_let_patterns)]
1532    pub fn into_on_event_union_payload(self) -> Option<UnionPayload> {
1533        if let ClosedTargetEvent::OnEventUnionPayload { payload } = self {
1534            Some((payload))
1535        } else {
1536            None
1537        }
1538    }
1539
1540    /// Decodes a message buffer as a [`ClosedTargetEvent`].
1541    fn decode(
1542        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1543    ) -> Result<ClosedTargetEvent, fidl::Error> {
1544        let (bytes, _handles) = buf.split_mut();
1545        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1546        debug_assert_eq!(tx_header.tx_id, 0);
1547        match tx_header.ordinal {
1548            0x4ee7b8d3e6bb36a6 => {
1549                let mut out = fidl::new_empty!(
1550                    fidl::encoding::EmptyPayload,
1551                    fidl::encoding::DefaultFuchsiaResourceDialect
1552                );
1553                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1554                Ok((ClosedTargetEvent::OnEventNoPayload {}))
1555            }
1556            0x48e8c897893ae266 => {
1557                let mut out = fidl::new_empty!(
1558                    NonEmptyPayload,
1559                    fidl::encoding::DefaultFuchsiaResourceDialect
1560                );
1561                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1562                Ok((ClosedTargetEvent::OnEventStructPayload { some_field: out.some_field }))
1563            }
1564            0x72837525f4f3e746 => {
1565                let mut out =
1566                    fidl::new_empty!(TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1567                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1568                Ok((ClosedTargetEvent::OnEventTablePayload { payload: out }))
1569            }
1570            0x69c6390e1ac48ea0 => {
1571                let mut out =
1572                    fidl::new_empty!(UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1573                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1574                Ok((ClosedTargetEvent::OnEventUnionPayload { payload: out }))
1575            }
1576            _ => Err(fidl::Error::UnknownOrdinal {
1577                ordinal: tx_header.ordinal,
1578                protocol_name: <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1579            }),
1580        }
1581    }
1582}
1583
1584/// A Stream of incoming requests for fidl.clientsuite/ClosedTarget.
1585pub struct ClosedTargetRequestStream {
1586    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1587    is_terminated: bool,
1588}
1589
1590impl std::marker::Unpin for ClosedTargetRequestStream {}
1591
1592impl futures::stream::FusedStream for ClosedTargetRequestStream {
1593    fn is_terminated(&self) -> bool {
1594        self.is_terminated
1595    }
1596}
1597
1598impl fidl::endpoints::RequestStream for ClosedTargetRequestStream {
1599    type Protocol = ClosedTargetMarker;
1600    type ControlHandle = ClosedTargetControlHandle;
1601
1602    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1603        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1604    }
1605
1606    fn control_handle(&self) -> Self::ControlHandle {
1607        ClosedTargetControlHandle { inner: self.inner.clone() }
1608    }
1609
1610    fn into_inner(
1611        self,
1612    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1613    {
1614        (self.inner, self.is_terminated)
1615    }
1616
1617    fn from_inner(
1618        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1619        is_terminated: bool,
1620    ) -> Self {
1621        Self { inner, is_terminated }
1622    }
1623}
1624
1625impl futures::Stream for ClosedTargetRequestStream {
1626    type Item = Result<ClosedTargetRequest, fidl::Error>;
1627
1628    fn poll_next(
1629        mut self: std::pin::Pin<&mut Self>,
1630        cx: &mut std::task::Context<'_>,
1631    ) -> std::task::Poll<Option<Self::Item>> {
1632        let this = &mut *self;
1633        if this.inner.check_shutdown(cx) {
1634            this.is_terminated = true;
1635            return std::task::Poll::Ready(None);
1636        }
1637        if this.is_terminated {
1638            panic!("polled ClosedTargetRequestStream after completion");
1639        }
1640        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1641            |bytes, handles| {
1642                match this.inner.channel().read_etc(cx, bytes, handles) {
1643                    std::task::Poll::Ready(Ok(())) => {}
1644                    std::task::Poll::Pending => return std::task::Poll::Pending,
1645                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1646                        this.is_terminated = true;
1647                        return std::task::Poll::Ready(None);
1648                    }
1649                    std::task::Poll::Ready(Err(e)) => {
1650                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1651                            e.into(),
1652                        ))))
1653                    }
1654                }
1655
1656                // A message has been received from the channel
1657                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1658
1659                std::task::Poll::Ready(Some(match header.ordinal {
1660                    0x7a722961424c1720 => {
1661                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1662                        let mut req = fidl::new_empty!(
1663                            fidl::encoding::EmptyPayload,
1664                            fidl::encoding::DefaultFuchsiaResourceDialect
1665                        );
1666                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1667                        let control_handle =
1668                            ClosedTargetControlHandle { inner: this.inner.clone() };
1669                        Ok(ClosedTargetRequest::TwoWayNoPayload {
1670                            responder: ClosedTargetTwoWayNoPayloadResponder {
1671                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1672                                tx_id: header.tx_id,
1673                            },
1674                        })
1675                    }
1676                    0x3a402118bad781bd => {
1677                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1678                        let mut req = fidl::new_empty!(
1679                            fidl::encoding::EmptyPayload,
1680                            fidl::encoding::DefaultFuchsiaResourceDialect
1681                        );
1682                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1683                        let control_handle =
1684                            ClosedTargetControlHandle { inner: this.inner.clone() };
1685                        Ok(ClosedTargetRequest::TwoWayStructPayload {
1686                            responder: ClosedTargetTwoWayStructPayloadResponder {
1687                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1688                                tx_id: header.tx_id,
1689                            },
1690                        })
1691                    }
1692                    0x53be101c241c66bc => {
1693                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1694                        let mut req = fidl::new_empty!(
1695                            fidl::encoding::EmptyPayload,
1696                            fidl::encoding::DefaultFuchsiaResourceDialect
1697                        );
1698                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1699                        let control_handle =
1700                            ClosedTargetControlHandle { inner: this.inner.clone() };
1701                        Ok(ClosedTargetRequest::TwoWayTablePayload {
1702                            responder: ClosedTargetTwoWayTablePayloadResponder {
1703                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1704                                tx_id: header.tx_id,
1705                            },
1706                        })
1707                    }
1708                    0x1ff7f745ab608f8c => {
1709                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1710                        let mut req = fidl::new_empty!(
1711                            fidl::encoding::EmptyPayload,
1712                            fidl::encoding::DefaultFuchsiaResourceDialect
1713                        );
1714                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1715                        let control_handle =
1716                            ClosedTargetControlHandle { inner: this.inner.clone() };
1717                        Ok(ClosedTargetRequest::TwoWayUnionPayload {
1718                            responder: ClosedTargetTwoWayUnionPayloadResponder {
1719                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1720                                tx_id: header.tx_id,
1721                            },
1722                        })
1723                    }
1724                    0x62b4861c443bbc0b => {
1725                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1726                        let mut req = fidl::new_empty!(
1727                            fidl::encoding::EmptyPayload,
1728                            fidl::encoding::DefaultFuchsiaResourceDialect
1729                        );
1730                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1731                        let control_handle =
1732                            ClosedTargetControlHandle { inner: this.inner.clone() };
1733                        Ok(ClosedTargetRequest::TwoWayStructPayloadErr {
1734                            responder: ClosedTargetTwoWayStructPayloadErrResponder {
1735                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1736                                tx_id: header.tx_id,
1737                            },
1738                        })
1739                    }
1740                    0x4ff77b4a913be5b6 => {
1741                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1742                        let mut req = fidl::new_empty!(
1743                            NonEmptyPayload,
1744                            fidl::encoding::DefaultFuchsiaResourceDialect
1745                        );
1746                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1747                        let control_handle =
1748                            ClosedTargetControlHandle { inner: this.inner.clone() };
1749                        Ok(ClosedTargetRequest::TwoWayStructRequest {
1750                            some_field: req.some_field,
1751
1752                            responder: ClosedTargetTwoWayStructRequestResponder {
1753                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1754                                tx_id: header.tx_id,
1755                            },
1756                        })
1757                    }
1758                    0x3d38ad5b0f4f49cf => {
1759                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1760                        let mut req = fidl::new_empty!(
1761                            TablePayload,
1762                            fidl::encoding::DefaultFuchsiaResourceDialect
1763                        );
1764                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1765                        let control_handle =
1766                            ClosedTargetControlHandle { inner: this.inner.clone() };
1767                        Ok(ClosedTargetRequest::TwoWayTableRequest {
1768                            payload: req,
1769                            responder: ClosedTargetTwoWayTableRequestResponder {
1770                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1771                                tx_id: header.tx_id,
1772                            },
1773                        })
1774                    }
1775                    0x7adb1c265a378e77 => {
1776                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1777                        let mut req = fidl::new_empty!(
1778                            UnionPayload,
1779                            fidl::encoding::DefaultFuchsiaResourceDialect
1780                        );
1781                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1782                        let control_handle =
1783                            ClosedTargetControlHandle { inner: this.inner.clone() };
1784                        Ok(ClosedTargetRequest::TwoWayUnionRequest {
1785                            payload: req,
1786                            responder: ClosedTargetTwoWayUnionRequestResponder {
1787                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1788                                tx_id: header.tx_id,
1789                            },
1790                        })
1791                    }
1792                    0xc376730a2cd8a05 => {
1793                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1794                        let mut req = fidl::new_empty!(
1795                            fidl::encoding::EmptyPayload,
1796                            fidl::encoding::DefaultFuchsiaResourceDialect
1797                        );
1798                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1799                        let control_handle =
1800                            ClosedTargetControlHandle { inner: this.inner.clone() };
1801                        Ok(ClosedTargetRequest::OneWayNoRequest { control_handle })
1802                    }
1803                    0x2618da6f51e0dcd2 => {
1804                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1805                        let mut req = fidl::new_empty!(
1806                            NonEmptyPayload,
1807                            fidl::encoding::DefaultFuchsiaResourceDialect
1808                        );
1809                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1810                        let control_handle =
1811                            ClosedTargetControlHandle { inner: this.inner.clone() };
1812                        Ok(ClosedTargetRequest::OneWayStructRequest {
1813                            some_field: req.some_field,
1814
1815                            control_handle,
1816                        })
1817                    }
1818                    0x1a4b7d32eaed401f => {
1819                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1820                        let mut req = fidl::new_empty!(
1821                            TablePayload,
1822                            fidl::encoding::DefaultFuchsiaResourceDialect
1823                        );
1824                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1825                        let control_handle =
1826                            ClosedTargetControlHandle { inner: this.inner.clone() };
1827                        Ok(ClosedTargetRequest::OneWayTableRequest { payload: req, control_handle })
1828                    }
1829                    0x142b3cd9ea530de5 => {
1830                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1831                        let mut req = fidl::new_empty!(
1832                            UnionPayload,
1833                            fidl::encoding::DefaultFuchsiaResourceDialect
1834                        );
1835                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1836                        let control_handle =
1837                            ClosedTargetControlHandle { inner: this.inner.clone() };
1838                        Ok(ClosedTargetRequest::OneWayUnionRequest { payload: req, control_handle })
1839                    }
1840                    _ => Err(fidl::Error::UnknownOrdinal {
1841                        ordinal: header.ordinal,
1842                        protocol_name:
1843                            <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1844                    }),
1845                }))
1846            },
1847        )
1848    }
1849}
1850
1851#[derive(Debug)]
1852pub enum ClosedTargetRequest {
1853    TwoWayNoPayload { responder: ClosedTargetTwoWayNoPayloadResponder },
1854    TwoWayStructPayload { responder: ClosedTargetTwoWayStructPayloadResponder },
1855    TwoWayTablePayload { responder: ClosedTargetTwoWayTablePayloadResponder },
1856    TwoWayUnionPayload { responder: ClosedTargetTwoWayUnionPayloadResponder },
1857    TwoWayStructPayloadErr { responder: ClosedTargetTwoWayStructPayloadErrResponder },
1858    TwoWayStructRequest { some_field: i32, responder: ClosedTargetTwoWayStructRequestResponder },
1859    TwoWayTableRequest { payload: TablePayload, responder: ClosedTargetTwoWayTableRequestResponder },
1860    TwoWayUnionRequest { payload: UnionPayload, responder: ClosedTargetTwoWayUnionRequestResponder },
1861    OneWayNoRequest { control_handle: ClosedTargetControlHandle },
1862    OneWayStructRequest { some_field: i32, control_handle: ClosedTargetControlHandle },
1863    OneWayTableRequest { payload: TablePayload, control_handle: ClosedTargetControlHandle },
1864    OneWayUnionRequest { payload: UnionPayload, control_handle: ClosedTargetControlHandle },
1865}
1866
1867impl ClosedTargetRequest {
1868    #[allow(irrefutable_let_patterns)]
1869    pub fn into_two_way_no_payload(self) -> Option<(ClosedTargetTwoWayNoPayloadResponder)> {
1870        if let ClosedTargetRequest::TwoWayNoPayload { responder } = self {
1871            Some((responder))
1872        } else {
1873            None
1874        }
1875    }
1876
1877    #[allow(irrefutable_let_patterns)]
1878    pub fn into_two_way_struct_payload(self) -> Option<(ClosedTargetTwoWayStructPayloadResponder)> {
1879        if let ClosedTargetRequest::TwoWayStructPayload { responder } = self {
1880            Some((responder))
1881        } else {
1882            None
1883        }
1884    }
1885
1886    #[allow(irrefutable_let_patterns)]
1887    pub fn into_two_way_table_payload(self) -> Option<(ClosedTargetTwoWayTablePayloadResponder)> {
1888        if let ClosedTargetRequest::TwoWayTablePayload { responder } = self {
1889            Some((responder))
1890        } else {
1891            None
1892        }
1893    }
1894
1895    #[allow(irrefutable_let_patterns)]
1896    pub fn into_two_way_union_payload(self) -> Option<(ClosedTargetTwoWayUnionPayloadResponder)> {
1897        if let ClosedTargetRequest::TwoWayUnionPayload { responder } = self {
1898            Some((responder))
1899        } else {
1900            None
1901        }
1902    }
1903
1904    #[allow(irrefutable_let_patterns)]
1905    pub fn into_two_way_struct_payload_err(
1906        self,
1907    ) -> Option<(ClosedTargetTwoWayStructPayloadErrResponder)> {
1908        if let ClosedTargetRequest::TwoWayStructPayloadErr { responder } = self {
1909            Some((responder))
1910        } else {
1911            None
1912        }
1913    }
1914
1915    #[allow(irrefutable_let_patterns)]
1916    pub fn into_two_way_struct_request(
1917        self,
1918    ) -> Option<(i32, ClosedTargetTwoWayStructRequestResponder)> {
1919        if let ClosedTargetRequest::TwoWayStructRequest { some_field, responder } = self {
1920            Some((some_field, responder))
1921        } else {
1922            None
1923        }
1924    }
1925
1926    #[allow(irrefutable_let_patterns)]
1927    pub fn into_two_way_table_request(
1928        self,
1929    ) -> Option<(TablePayload, ClosedTargetTwoWayTableRequestResponder)> {
1930        if let ClosedTargetRequest::TwoWayTableRequest { payload, responder } = self {
1931            Some((payload, responder))
1932        } else {
1933            None
1934        }
1935    }
1936
1937    #[allow(irrefutable_let_patterns)]
1938    pub fn into_two_way_union_request(
1939        self,
1940    ) -> Option<(UnionPayload, ClosedTargetTwoWayUnionRequestResponder)> {
1941        if let ClosedTargetRequest::TwoWayUnionRequest { payload, responder } = self {
1942            Some((payload, responder))
1943        } else {
1944            None
1945        }
1946    }
1947
1948    #[allow(irrefutable_let_patterns)]
1949    pub fn into_one_way_no_request(self) -> Option<(ClosedTargetControlHandle)> {
1950        if let ClosedTargetRequest::OneWayNoRequest { control_handle } = self {
1951            Some((control_handle))
1952        } else {
1953            None
1954        }
1955    }
1956
1957    #[allow(irrefutable_let_patterns)]
1958    pub fn into_one_way_struct_request(self) -> Option<(i32, ClosedTargetControlHandle)> {
1959        if let ClosedTargetRequest::OneWayStructRequest { some_field, control_handle } = self {
1960            Some((some_field, control_handle))
1961        } else {
1962            None
1963        }
1964    }
1965
1966    #[allow(irrefutable_let_patterns)]
1967    pub fn into_one_way_table_request(self) -> Option<(TablePayload, ClosedTargetControlHandle)> {
1968        if let ClosedTargetRequest::OneWayTableRequest { payload, control_handle } = self {
1969            Some((payload, control_handle))
1970        } else {
1971            None
1972        }
1973    }
1974
1975    #[allow(irrefutable_let_patterns)]
1976    pub fn into_one_way_union_request(self) -> Option<(UnionPayload, ClosedTargetControlHandle)> {
1977        if let ClosedTargetRequest::OneWayUnionRequest { payload, control_handle } = self {
1978            Some((payload, control_handle))
1979        } else {
1980            None
1981        }
1982    }
1983
1984    /// Name of the method defined in FIDL
1985    pub fn method_name(&self) -> &'static str {
1986        match *self {
1987            ClosedTargetRequest::TwoWayNoPayload { .. } => "two_way_no_payload",
1988            ClosedTargetRequest::TwoWayStructPayload { .. } => "two_way_struct_payload",
1989            ClosedTargetRequest::TwoWayTablePayload { .. } => "two_way_table_payload",
1990            ClosedTargetRequest::TwoWayUnionPayload { .. } => "two_way_union_payload",
1991            ClosedTargetRequest::TwoWayStructPayloadErr { .. } => "two_way_struct_payload_err",
1992            ClosedTargetRequest::TwoWayStructRequest { .. } => "two_way_struct_request",
1993            ClosedTargetRequest::TwoWayTableRequest { .. } => "two_way_table_request",
1994            ClosedTargetRequest::TwoWayUnionRequest { .. } => "two_way_union_request",
1995            ClosedTargetRequest::OneWayNoRequest { .. } => "one_way_no_request",
1996            ClosedTargetRequest::OneWayStructRequest { .. } => "one_way_struct_request",
1997            ClosedTargetRequest::OneWayTableRequest { .. } => "one_way_table_request",
1998            ClosedTargetRequest::OneWayUnionRequest { .. } => "one_way_union_request",
1999        }
2000    }
2001}
2002
2003#[derive(Debug, Clone)]
2004pub struct ClosedTargetControlHandle {
2005    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2006}
2007
2008impl fidl::endpoints::ControlHandle for ClosedTargetControlHandle {
2009    fn shutdown(&self) {
2010        self.inner.shutdown()
2011    }
2012    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2013        self.inner.shutdown_with_epitaph(status)
2014    }
2015
2016    fn is_closed(&self) -> bool {
2017        self.inner.channel().is_closed()
2018    }
2019    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2020        self.inner.channel().on_closed()
2021    }
2022
2023    #[cfg(target_os = "fuchsia")]
2024    fn signal_peer(
2025        &self,
2026        clear_mask: zx::Signals,
2027        set_mask: zx::Signals,
2028    ) -> Result<(), zx_status::Status> {
2029        use fidl::Peered;
2030        self.inner.channel().signal_peer(clear_mask, set_mask)
2031    }
2032}
2033
2034impl ClosedTargetControlHandle {
2035    pub fn send_on_event_no_payload(&self) -> Result<(), fidl::Error> {
2036        self.inner.send::<fidl::encoding::EmptyPayload>(
2037            (),
2038            0,
2039            0x4ee7b8d3e6bb36a6,
2040            fidl::encoding::DynamicFlags::empty(),
2041        )
2042    }
2043
2044    pub fn send_on_event_struct_payload(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2045        self.inner.send::<NonEmptyPayload>(
2046            (some_field,),
2047            0,
2048            0x48e8c897893ae266,
2049            fidl::encoding::DynamicFlags::empty(),
2050        )
2051    }
2052
2053    pub fn send_on_event_table_payload(
2054        &self,
2055        mut payload: &TablePayload,
2056    ) -> Result<(), fidl::Error> {
2057        self.inner.send::<TablePayload>(
2058            payload,
2059            0,
2060            0x72837525f4f3e746,
2061            fidl::encoding::DynamicFlags::empty(),
2062        )
2063    }
2064
2065    pub fn send_on_event_union_payload(
2066        &self,
2067        mut payload: &UnionPayload,
2068    ) -> Result<(), fidl::Error> {
2069        self.inner.send::<UnionPayload>(
2070            payload,
2071            0,
2072            0x69c6390e1ac48ea0,
2073            fidl::encoding::DynamicFlags::empty(),
2074        )
2075    }
2076}
2077
2078#[must_use = "FIDL methods require a response to be sent"]
2079#[derive(Debug)]
2080pub struct ClosedTargetTwoWayNoPayloadResponder {
2081    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2082    tx_id: u32,
2083}
2084
2085/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2086/// if the responder is dropped without sending a response, so that the client
2087/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2088impl std::ops::Drop for ClosedTargetTwoWayNoPayloadResponder {
2089    fn drop(&mut self) {
2090        self.control_handle.shutdown();
2091        // Safety: drops once, never accessed again
2092        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2093    }
2094}
2095
2096impl fidl::endpoints::Responder for ClosedTargetTwoWayNoPayloadResponder {
2097    type ControlHandle = ClosedTargetControlHandle;
2098
2099    fn control_handle(&self) -> &ClosedTargetControlHandle {
2100        &self.control_handle
2101    }
2102
2103    fn drop_without_shutdown(mut self) {
2104        // Safety: drops once, never accessed again due to mem::forget
2105        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2106        // Prevent Drop from running (which would shut down the channel)
2107        std::mem::forget(self);
2108    }
2109}
2110
2111impl ClosedTargetTwoWayNoPayloadResponder {
2112    /// Sends a response to the FIDL transaction.
2113    ///
2114    /// Sets the channel to shutdown if an error occurs.
2115    pub fn send(self) -> Result<(), fidl::Error> {
2116        let _result = self.send_raw();
2117        if _result.is_err() {
2118            self.control_handle.shutdown();
2119        }
2120        self.drop_without_shutdown();
2121        _result
2122    }
2123
2124    /// Similar to "send" but does not shutdown the channel if an error occurs.
2125    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2126        let _result = self.send_raw();
2127        self.drop_without_shutdown();
2128        _result
2129    }
2130
2131    fn send_raw(&self) -> Result<(), fidl::Error> {
2132        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2133            (),
2134            self.tx_id,
2135            0x7a722961424c1720,
2136            fidl::encoding::DynamicFlags::empty(),
2137        )
2138    }
2139}
2140
2141#[must_use = "FIDL methods require a response to be sent"]
2142#[derive(Debug)]
2143pub struct ClosedTargetTwoWayStructPayloadResponder {
2144    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2145    tx_id: u32,
2146}
2147
2148/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2149/// if the responder is dropped without sending a response, so that the client
2150/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2151impl std::ops::Drop for ClosedTargetTwoWayStructPayloadResponder {
2152    fn drop(&mut self) {
2153        self.control_handle.shutdown();
2154        // Safety: drops once, never accessed again
2155        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2156    }
2157}
2158
2159impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadResponder {
2160    type ControlHandle = ClosedTargetControlHandle;
2161
2162    fn control_handle(&self) -> &ClosedTargetControlHandle {
2163        &self.control_handle
2164    }
2165
2166    fn drop_without_shutdown(mut self) {
2167        // Safety: drops once, never accessed again due to mem::forget
2168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2169        // Prevent Drop from running (which would shut down the channel)
2170        std::mem::forget(self);
2171    }
2172}
2173
2174impl ClosedTargetTwoWayStructPayloadResponder {
2175    /// Sends a response to the FIDL transaction.
2176    ///
2177    /// Sets the channel to shutdown if an error occurs.
2178    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
2179        let _result = self.send_raw(some_field);
2180        if _result.is_err() {
2181            self.control_handle.shutdown();
2182        }
2183        self.drop_without_shutdown();
2184        _result
2185    }
2186
2187    /// Similar to "send" but does not shutdown the channel if an error occurs.
2188    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
2189        let _result = self.send_raw(some_field);
2190        self.drop_without_shutdown();
2191        _result
2192    }
2193
2194    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2195        self.control_handle.inner.send::<NonEmptyPayload>(
2196            (some_field,),
2197            self.tx_id,
2198            0x3a402118bad781bd,
2199            fidl::encoding::DynamicFlags::empty(),
2200        )
2201    }
2202}
2203
2204#[must_use = "FIDL methods require a response to be sent"]
2205#[derive(Debug)]
2206pub struct ClosedTargetTwoWayTablePayloadResponder {
2207    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2208    tx_id: u32,
2209}
2210
2211/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2212/// if the responder is dropped without sending a response, so that the client
2213/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2214impl std::ops::Drop for ClosedTargetTwoWayTablePayloadResponder {
2215    fn drop(&mut self) {
2216        self.control_handle.shutdown();
2217        // Safety: drops once, never accessed again
2218        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2219    }
2220}
2221
2222impl fidl::endpoints::Responder for ClosedTargetTwoWayTablePayloadResponder {
2223    type ControlHandle = ClosedTargetControlHandle;
2224
2225    fn control_handle(&self) -> &ClosedTargetControlHandle {
2226        &self.control_handle
2227    }
2228
2229    fn drop_without_shutdown(mut self) {
2230        // Safety: drops once, never accessed again due to mem::forget
2231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2232        // Prevent Drop from running (which would shut down the channel)
2233        std::mem::forget(self);
2234    }
2235}
2236
2237impl ClosedTargetTwoWayTablePayloadResponder {
2238    /// Sends a response to the FIDL transaction.
2239    ///
2240    /// Sets the channel to shutdown if an error occurs.
2241    pub fn send(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2242        let _result = self.send_raw(payload);
2243        if _result.is_err() {
2244            self.control_handle.shutdown();
2245        }
2246        self.drop_without_shutdown();
2247        _result
2248    }
2249
2250    /// Similar to "send" but does not shutdown the channel if an error occurs.
2251    pub fn send_no_shutdown_on_err(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2252        let _result = self.send_raw(payload);
2253        self.drop_without_shutdown();
2254        _result
2255    }
2256
2257    fn send_raw(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2258        self.control_handle.inner.send::<TablePayload>(
2259            payload,
2260            self.tx_id,
2261            0x53be101c241c66bc,
2262            fidl::encoding::DynamicFlags::empty(),
2263        )
2264    }
2265}
2266
2267#[must_use = "FIDL methods require a response to be sent"]
2268#[derive(Debug)]
2269pub struct ClosedTargetTwoWayUnionPayloadResponder {
2270    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2271    tx_id: u32,
2272}
2273
2274/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2275/// if the responder is dropped without sending a response, so that the client
2276/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2277impl std::ops::Drop for ClosedTargetTwoWayUnionPayloadResponder {
2278    fn drop(&mut self) {
2279        self.control_handle.shutdown();
2280        // Safety: drops once, never accessed again
2281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2282    }
2283}
2284
2285impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionPayloadResponder {
2286    type ControlHandle = ClosedTargetControlHandle;
2287
2288    fn control_handle(&self) -> &ClosedTargetControlHandle {
2289        &self.control_handle
2290    }
2291
2292    fn drop_without_shutdown(mut self) {
2293        // Safety: drops once, never accessed again due to mem::forget
2294        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2295        // Prevent Drop from running (which would shut down the channel)
2296        std::mem::forget(self);
2297    }
2298}
2299
2300impl ClosedTargetTwoWayUnionPayloadResponder {
2301    /// Sends a response to the FIDL transaction.
2302    ///
2303    /// Sets the channel to shutdown if an error occurs.
2304    pub fn send(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2305        let _result = self.send_raw(payload);
2306        if _result.is_err() {
2307            self.control_handle.shutdown();
2308        }
2309        self.drop_without_shutdown();
2310        _result
2311    }
2312
2313    /// Similar to "send" but does not shutdown the channel if an error occurs.
2314    pub fn send_no_shutdown_on_err(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2315        let _result = self.send_raw(payload);
2316        self.drop_without_shutdown();
2317        _result
2318    }
2319
2320    fn send_raw(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2321        self.control_handle.inner.send::<UnionPayload>(
2322            payload,
2323            self.tx_id,
2324            0x1ff7f745ab608f8c,
2325            fidl::encoding::DynamicFlags::empty(),
2326        )
2327    }
2328}
2329
2330#[must_use = "FIDL methods require a response to be sent"]
2331#[derive(Debug)]
2332pub struct ClosedTargetTwoWayStructPayloadErrResponder {
2333    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2334    tx_id: u32,
2335}
2336
2337/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2338/// if the responder is dropped without sending a response, so that the client
2339/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2340impl std::ops::Drop for ClosedTargetTwoWayStructPayloadErrResponder {
2341    fn drop(&mut self) {
2342        self.control_handle.shutdown();
2343        // Safety: drops once, never accessed again
2344        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2345    }
2346}
2347
2348impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadErrResponder {
2349    type ControlHandle = ClosedTargetControlHandle;
2350
2351    fn control_handle(&self) -> &ClosedTargetControlHandle {
2352        &self.control_handle
2353    }
2354
2355    fn drop_without_shutdown(mut self) {
2356        // Safety: drops once, never accessed again due to mem::forget
2357        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2358        // Prevent Drop from running (which would shut down the channel)
2359        std::mem::forget(self);
2360    }
2361}
2362
2363impl ClosedTargetTwoWayStructPayloadErrResponder {
2364    /// Sends a response to the FIDL transaction.
2365    ///
2366    /// Sets the channel to shutdown if an error occurs.
2367    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2368        let _result = self.send_raw(result);
2369        if _result.is_err() {
2370            self.control_handle.shutdown();
2371        }
2372        self.drop_without_shutdown();
2373        _result
2374    }
2375
2376    /// Similar to "send" but does not shutdown the channel if an error occurs.
2377    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2378        let _result = self.send_raw(result);
2379        self.drop_without_shutdown();
2380        _result
2381    }
2382
2383    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2384        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
2385            result.map(|some_field| (some_field,)),
2386            self.tx_id,
2387            0x62b4861c443bbc0b,
2388            fidl::encoding::DynamicFlags::empty(),
2389        )
2390    }
2391}
2392
2393#[must_use = "FIDL methods require a response to be sent"]
2394#[derive(Debug)]
2395pub struct ClosedTargetTwoWayStructRequestResponder {
2396    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2397    tx_id: u32,
2398}
2399
2400/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2401/// if the responder is dropped without sending a response, so that the client
2402/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2403impl std::ops::Drop for ClosedTargetTwoWayStructRequestResponder {
2404    fn drop(&mut self) {
2405        self.control_handle.shutdown();
2406        // Safety: drops once, never accessed again
2407        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2408    }
2409}
2410
2411impl fidl::endpoints::Responder for ClosedTargetTwoWayStructRequestResponder {
2412    type ControlHandle = ClosedTargetControlHandle;
2413
2414    fn control_handle(&self) -> &ClosedTargetControlHandle {
2415        &self.control_handle
2416    }
2417
2418    fn drop_without_shutdown(mut self) {
2419        // Safety: drops once, never accessed again due to mem::forget
2420        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2421        // Prevent Drop from running (which would shut down the channel)
2422        std::mem::forget(self);
2423    }
2424}
2425
2426impl ClosedTargetTwoWayStructRequestResponder {
2427    /// Sends a response to the FIDL transaction.
2428    ///
2429    /// Sets the channel to shutdown if an error occurs.
2430    pub fn send(self) -> Result<(), fidl::Error> {
2431        let _result = self.send_raw();
2432        if _result.is_err() {
2433            self.control_handle.shutdown();
2434        }
2435        self.drop_without_shutdown();
2436        _result
2437    }
2438
2439    /// Similar to "send" but does not shutdown the channel if an error occurs.
2440    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2441        let _result = self.send_raw();
2442        self.drop_without_shutdown();
2443        _result
2444    }
2445
2446    fn send_raw(&self) -> Result<(), fidl::Error> {
2447        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2448            (),
2449            self.tx_id,
2450            0x4ff77b4a913be5b6,
2451            fidl::encoding::DynamicFlags::empty(),
2452        )
2453    }
2454}
2455
2456#[must_use = "FIDL methods require a response to be sent"]
2457#[derive(Debug)]
2458pub struct ClosedTargetTwoWayTableRequestResponder {
2459    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2460    tx_id: u32,
2461}
2462
2463/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2464/// if the responder is dropped without sending a response, so that the client
2465/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2466impl std::ops::Drop for ClosedTargetTwoWayTableRequestResponder {
2467    fn drop(&mut self) {
2468        self.control_handle.shutdown();
2469        // Safety: drops once, never accessed again
2470        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2471    }
2472}
2473
2474impl fidl::endpoints::Responder for ClosedTargetTwoWayTableRequestResponder {
2475    type ControlHandle = ClosedTargetControlHandle;
2476
2477    fn control_handle(&self) -> &ClosedTargetControlHandle {
2478        &self.control_handle
2479    }
2480
2481    fn drop_without_shutdown(mut self) {
2482        // Safety: drops once, never accessed again due to mem::forget
2483        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2484        // Prevent Drop from running (which would shut down the channel)
2485        std::mem::forget(self);
2486    }
2487}
2488
2489impl ClosedTargetTwoWayTableRequestResponder {
2490    /// Sends a response to the FIDL transaction.
2491    ///
2492    /// Sets the channel to shutdown if an error occurs.
2493    pub fn send(self) -> Result<(), fidl::Error> {
2494        let _result = self.send_raw();
2495        if _result.is_err() {
2496            self.control_handle.shutdown();
2497        }
2498        self.drop_without_shutdown();
2499        _result
2500    }
2501
2502    /// Similar to "send" but does not shutdown the channel if an error occurs.
2503    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2504        let _result = self.send_raw();
2505        self.drop_without_shutdown();
2506        _result
2507    }
2508
2509    fn send_raw(&self) -> Result<(), fidl::Error> {
2510        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2511            (),
2512            self.tx_id,
2513            0x3d38ad5b0f4f49cf,
2514            fidl::encoding::DynamicFlags::empty(),
2515        )
2516    }
2517}
2518
2519#[must_use = "FIDL methods require a response to be sent"]
2520#[derive(Debug)]
2521pub struct ClosedTargetTwoWayUnionRequestResponder {
2522    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2523    tx_id: u32,
2524}
2525
2526/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2527/// if the responder is dropped without sending a response, so that the client
2528/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2529impl std::ops::Drop for ClosedTargetTwoWayUnionRequestResponder {
2530    fn drop(&mut self) {
2531        self.control_handle.shutdown();
2532        // Safety: drops once, never accessed again
2533        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2534    }
2535}
2536
2537impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionRequestResponder {
2538    type ControlHandle = ClosedTargetControlHandle;
2539
2540    fn control_handle(&self) -> &ClosedTargetControlHandle {
2541        &self.control_handle
2542    }
2543
2544    fn drop_without_shutdown(mut self) {
2545        // Safety: drops once, never accessed again due to mem::forget
2546        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2547        // Prevent Drop from running (which would shut down the channel)
2548        std::mem::forget(self);
2549    }
2550}
2551
2552impl ClosedTargetTwoWayUnionRequestResponder {
2553    /// Sends a response to the FIDL transaction.
2554    ///
2555    /// Sets the channel to shutdown if an error occurs.
2556    pub fn send(self) -> Result<(), fidl::Error> {
2557        let _result = self.send_raw();
2558        if _result.is_err() {
2559            self.control_handle.shutdown();
2560        }
2561        self.drop_without_shutdown();
2562        _result
2563    }
2564
2565    /// Similar to "send" but does not shutdown the channel if an error occurs.
2566    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2567        let _result = self.send_raw();
2568        self.drop_without_shutdown();
2569        _result
2570    }
2571
2572    fn send_raw(&self) -> Result<(), fidl::Error> {
2573        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2574            (),
2575            self.tx_id,
2576            0x7adb1c265a378e77,
2577            fidl::encoding::DynamicFlags::empty(),
2578        )
2579    }
2580}
2581
2582#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2583pub struct ClosedTargetEventReporterMarker;
2584
2585impl fidl::endpoints::ProtocolMarker for ClosedTargetEventReporterMarker {
2586    type Proxy = ClosedTargetEventReporterProxy;
2587    type RequestStream = ClosedTargetEventReporterRequestStream;
2588    #[cfg(target_os = "fuchsia")]
2589    type SynchronousProxy = ClosedTargetEventReporterSynchronousProxy;
2590
2591    const DEBUG_NAME: &'static str = "(anonymous) ClosedTargetEventReporter";
2592}
2593
2594pub trait ClosedTargetEventReporterProxyInterface: Send + Sync {
2595    fn r#report_event(&self, payload: &ClosedTargetEventReport) -> Result<(), fidl::Error>;
2596}
2597#[derive(Debug)]
2598#[cfg(target_os = "fuchsia")]
2599pub struct ClosedTargetEventReporterSynchronousProxy {
2600    client: fidl::client::sync::Client,
2601}
2602
2603#[cfg(target_os = "fuchsia")]
2604impl fidl::endpoints::SynchronousProxy for ClosedTargetEventReporterSynchronousProxy {
2605    type Proxy = ClosedTargetEventReporterProxy;
2606    type Protocol = ClosedTargetEventReporterMarker;
2607
2608    fn from_channel(inner: fidl::Channel) -> Self {
2609        Self::new(inner)
2610    }
2611
2612    fn into_channel(self) -> fidl::Channel {
2613        self.client.into_channel()
2614    }
2615
2616    fn as_channel(&self) -> &fidl::Channel {
2617        self.client.as_channel()
2618    }
2619}
2620
2621#[cfg(target_os = "fuchsia")]
2622impl ClosedTargetEventReporterSynchronousProxy {
2623    pub fn new(channel: fidl::Channel) -> Self {
2624        let protocol_name =
2625            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2626        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2627    }
2628
2629    pub fn into_channel(self) -> fidl::Channel {
2630        self.client.into_channel()
2631    }
2632
2633    /// Waits until an event arrives and returns it. It is safe for other
2634    /// threads to make concurrent requests while waiting for an event.
2635    pub fn wait_for_event(
2636        &self,
2637        deadline: zx::MonotonicInstant,
2638    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2639        ClosedTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
2640    }
2641
2642    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2643        self.client.send::<ClosedTargetEventReport>(
2644            payload,
2645            0x63890e67649a846e,
2646            fidl::encoding::DynamicFlags::empty(),
2647        )
2648    }
2649}
2650
2651#[derive(Debug, Clone)]
2652pub struct ClosedTargetEventReporterProxy {
2653    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2654}
2655
2656impl fidl::endpoints::Proxy for ClosedTargetEventReporterProxy {
2657    type Protocol = ClosedTargetEventReporterMarker;
2658
2659    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2660        Self::new(inner)
2661    }
2662
2663    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2664        self.client.into_channel().map_err(|client| Self { client })
2665    }
2666
2667    fn as_channel(&self) -> &::fidl::AsyncChannel {
2668        self.client.as_channel()
2669    }
2670}
2671
2672impl ClosedTargetEventReporterProxy {
2673    /// Create a new Proxy for fidl.clientsuite/ClosedTargetEventReporter.
2674    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2675        let protocol_name =
2676            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2677        Self { client: fidl::client::Client::new(channel, protocol_name) }
2678    }
2679
2680    /// Get a Stream of events from the remote end of the protocol.
2681    ///
2682    /// # Panics
2683    ///
2684    /// Panics if the event stream was already taken.
2685    pub fn take_event_stream(&self) -> ClosedTargetEventReporterEventStream {
2686        ClosedTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
2687    }
2688
2689    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2690        ClosedTargetEventReporterProxyInterface::r#report_event(self, payload)
2691    }
2692}
2693
2694impl ClosedTargetEventReporterProxyInterface for ClosedTargetEventReporterProxy {
2695    fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2696        self.client.send::<ClosedTargetEventReport>(
2697            payload,
2698            0x63890e67649a846e,
2699            fidl::encoding::DynamicFlags::empty(),
2700        )
2701    }
2702}
2703
2704pub struct ClosedTargetEventReporterEventStream {
2705    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2706}
2707
2708impl std::marker::Unpin for ClosedTargetEventReporterEventStream {}
2709
2710impl futures::stream::FusedStream for ClosedTargetEventReporterEventStream {
2711    fn is_terminated(&self) -> bool {
2712        self.event_receiver.is_terminated()
2713    }
2714}
2715
2716impl futures::Stream for ClosedTargetEventReporterEventStream {
2717    type Item = Result<ClosedTargetEventReporterEvent, fidl::Error>;
2718
2719    fn poll_next(
2720        mut self: std::pin::Pin<&mut Self>,
2721        cx: &mut std::task::Context<'_>,
2722    ) -> std::task::Poll<Option<Self::Item>> {
2723        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2724            &mut self.event_receiver,
2725            cx
2726        )?) {
2727            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEventReporterEvent::decode(buf))),
2728            None => std::task::Poll::Ready(None),
2729        }
2730    }
2731}
2732
2733#[derive(Debug)]
2734pub enum ClosedTargetEventReporterEvent {}
2735
2736impl ClosedTargetEventReporterEvent {
2737    /// Decodes a message buffer as a [`ClosedTargetEventReporterEvent`].
2738    fn decode(
2739        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2740    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2741        let (bytes, _handles) = buf.split_mut();
2742        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2743        debug_assert_eq!(tx_header.tx_id, 0);
2744        match tx_header.ordinal {
2745            _ => Err(fidl::Error::UnknownOrdinal {
2746                ordinal: tx_header.ordinal,
2747                protocol_name:
2748                    <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2749            }),
2750        }
2751    }
2752}
2753
2754/// A Stream of incoming requests for fidl.clientsuite/ClosedTargetEventReporter.
2755pub struct ClosedTargetEventReporterRequestStream {
2756    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2757    is_terminated: bool,
2758}
2759
2760impl std::marker::Unpin for ClosedTargetEventReporterRequestStream {}
2761
2762impl futures::stream::FusedStream for ClosedTargetEventReporterRequestStream {
2763    fn is_terminated(&self) -> bool {
2764        self.is_terminated
2765    }
2766}
2767
2768impl fidl::endpoints::RequestStream for ClosedTargetEventReporterRequestStream {
2769    type Protocol = ClosedTargetEventReporterMarker;
2770    type ControlHandle = ClosedTargetEventReporterControlHandle;
2771
2772    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2773        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2774    }
2775
2776    fn control_handle(&self) -> Self::ControlHandle {
2777        ClosedTargetEventReporterControlHandle { inner: self.inner.clone() }
2778    }
2779
2780    fn into_inner(
2781        self,
2782    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2783    {
2784        (self.inner, self.is_terminated)
2785    }
2786
2787    fn from_inner(
2788        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2789        is_terminated: bool,
2790    ) -> Self {
2791        Self { inner, is_terminated }
2792    }
2793}
2794
2795impl futures::Stream for ClosedTargetEventReporterRequestStream {
2796    type Item = Result<ClosedTargetEventReporterRequest, fidl::Error>;
2797
2798    fn poll_next(
2799        mut self: std::pin::Pin<&mut Self>,
2800        cx: &mut std::task::Context<'_>,
2801    ) -> std::task::Poll<Option<Self::Item>> {
2802        let this = &mut *self;
2803        if this.inner.check_shutdown(cx) {
2804            this.is_terminated = true;
2805            return std::task::Poll::Ready(None);
2806        }
2807        if this.is_terminated {
2808            panic!("polled ClosedTargetEventReporterRequestStream after completion");
2809        }
2810        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2811            |bytes, handles| {
2812                match this.inner.channel().read_etc(cx, bytes, handles) {
2813                    std::task::Poll::Ready(Ok(())) => {}
2814                    std::task::Poll::Pending => return std::task::Poll::Pending,
2815                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2816                        this.is_terminated = true;
2817                        return std::task::Poll::Ready(None);
2818                    }
2819                    std::task::Poll::Ready(Err(e)) => {
2820                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2821                            e.into(),
2822                        ))))
2823                    }
2824                }
2825
2826                // A message has been received from the channel
2827                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2828
2829                std::task::Poll::Ready(Some(match header.ordinal {
2830                0x63890e67649a846e => {
2831                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2832                    let mut req = fidl::new_empty!(ClosedTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
2833                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ClosedTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
2834                    let control_handle = ClosedTargetEventReporterControlHandle {
2835                        inner: this.inner.clone(),
2836                    };
2837                    Ok(ClosedTargetEventReporterRequest::ReportEvent {payload: req,
2838                        control_handle,
2839                    })
2840                }
2841                _ => Err(fidl::Error::UnknownOrdinal {
2842                    ordinal: header.ordinal,
2843                    protocol_name: <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2844                }),
2845            }))
2846            },
2847        )
2848    }
2849}
2850
2851#[derive(Debug)]
2852pub enum ClosedTargetEventReporterRequest {
2853    ReportEvent {
2854        payload: ClosedTargetEventReport,
2855        control_handle: ClosedTargetEventReporterControlHandle,
2856    },
2857}
2858
2859impl ClosedTargetEventReporterRequest {
2860    #[allow(irrefutable_let_patterns)]
2861    pub fn into_report_event(
2862        self,
2863    ) -> Option<(ClosedTargetEventReport, ClosedTargetEventReporterControlHandle)> {
2864        if let ClosedTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
2865            Some((payload, control_handle))
2866        } else {
2867            None
2868        }
2869    }
2870
2871    /// Name of the method defined in FIDL
2872    pub fn method_name(&self) -> &'static str {
2873        match *self {
2874            ClosedTargetEventReporterRequest::ReportEvent { .. } => "report_event",
2875        }
2876    }
2877}
2878
2879#[derive(Debug, Clone)]
2880pub struct ClosedTargetEventReporterControlHandle {
2881    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2882}
2883
2884impl fidl::endpoints::ControlHandle for ClosedTargetEventReporterControlHandle {
2885    fn shutdown(&self) {
2886        self.inner.shutdown()
2887    }
2888    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2889        self.inner.shutdown_with_epitaph(status)
2890    }
2891
2892    fn is_closed(&self) -> bool {
2893        self.inner.channel().is_closed()
2894    }
2895    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2896        self.inner.channel().on_closed()
2897    }
2898
2899    #[cfg(target_os = "fuchsia")]
2900    fn signal_peer(
2901        &self,
2902        clear_mask: zx::Signals,
2903        set_mask: zx::Signals,
2904    ) -> Result<(), zx_status::Status> {
2905        use fidl::Peered;
2906        self.inner.channel().signal_peer(clear_mask, set_mask)
2907    }
2908}
2909
2910impl ClosedTargetEventReporterControlHandle {}
2911
2912#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2913pub struct OpenTargetMarker;
2914
2915impl fidl::endpoints::ProtocolMarker for OpenTargetMarker {
2916    type Proxy = OpenTargetProxy;
2917    type RequestStream = OpenTargetRequestStream;
2918    #[cfg(target_os = "fuchsia")]
2919    type SynchronousProxy = OpenTargetSynchronousProxy;
2920
2921    const DEBUG_NAME: &'static str = "(anonymous) OpenTarget";
2922}
2923pub type OpenTargetStrictTwoWayErrResult = Result<(), i32>;
2924pub type OpenTargetStrictTwoWayFieldsErrResult = Result<i32, i32>;
2925pub type OpenTargetFlexibleTwoWayErrResult = Result<(), i32>;
2926pub type OpenTargetFlexibleTwoWayFieldsErrResult = Result<i32, i32>;
2927
2928pub trait OpenTargetProxyInterface: Send + Sync {
2929    fn r#strict_one_way(&self) -> Result<(), fidl::Error>;
2930    fn r#flexible_one_way(&self) -> Result<(), fidl::Error>;
2931    type StrictTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
2932    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut;
2933    type StrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
2934        + Send;
2935    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut;
2936    type StrictTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayErrResult, fidl::Error>>
2937        + Send;
2938    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut;
2939    type StrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error>>
2940        + Send;
2941    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut;
2942    type FlexibleTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
2943    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut;
2944    type FlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
2945        + Send;
2946    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut;
2947    type FlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error>>
2948        + Send;
2949    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut;
2950    type FlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error>>
2951        + Send;
2952    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut;
2953}
2954#[derive(Debug)]
2955#[cfg(target_os = "fuchsia")]
2956pub struct OpenTargetSynchronousProxy {
2957    client: fidl::client::sync::Client,
2958}
2959
2960#[cfg(target_os = "fuchsia")]
2961impl fidl::endpoints::SynchronousProxy for OpenTargetSynchronousProxy {
2962    type Proxy = OpenTargetProxy;
2963    type Protocol = OpenTargetMarker;
2964
2965    fn from_channel(inner: fidl::Channel) -> Self {
2966        Self::new(inner)
2967    }
2968
2969    fn into_channel(self) -> fidl::Channel {
2970        self.client.into_channel()
2971    }
2972
2973    fn as_channel(&self) -> &fidl::Channel {
2974        self.client.as_channel()
2975    }
2976}
2977
2978#[cfg(target_os = "fuchsia")]
2979impl OpenTargetSynchronousProxy {
2980    pub fn new(channel: fidl::Channel) -> Self {
2981        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2982        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2983    }
2984
2985    pub fn into_channel(self) -> fidl::Channel {
2986        self.client.into_channel()
2987    }
2988
2989    /// Waits until an event arrives and returns it. It is safe for other
2990    /// threads to make concurrent requests while waiting for an event.
2991    pub fn wait_for_event(
2992        &self,
2993        deadline: zx::MonotonicInstant,
2994    ) -> Result<OpenTargetEvent, fidl::Error> {
2995        OpenTargetEvent::decode(self.client.wait_for_event(deadline)?)
2996    }
2997
2998    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
2999        self.client.send::<fidl::encoding::EmptyPayload>(
3000            (),
3001            0x6db0bc21c4aae764,
3002            fidl::encoding::DynamicFlags::empty(),
3003        )
3004    }
3005
3006    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3007        self.client.send::<fidl::encoding::EmptyPayload>(
3008            (),
3009            0xf894a7eb9cc29fc,
3010            fidl::encoding::DynamicFlags::FLEXIBLE,
3011        )
3012    }
3013
3014    pub fn r#strict_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3015        let _response =
3016            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
3017                (),
3018                0xdcf4cef19a1c542,
3019                fidl::encoding::DynamicFlags::empty(),
3020                ___deadline,
3021            )?;
3022        Ok(_response)
3023    }
3024
3025    pub fn r#strict_two_way_fields(
3026        &self,
3027        ___deadline: zx::MonotonicInstant,
3028    ) -> Result<i32, fidl::Error> {
3029        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload>(
3030            (),
3031            0x79c7a7803c45e2e3,
3032            fidl::encoding::DynamicFlags::empty(),
3033            ___deadline,
3034        )?;
3035        Ok(_response.some_field)
3036    }
3037
3038    pub fn r#strict_two_way_err(
3039        &self,
3040        ___deadline: zx::MonotonicInstant,
3041    ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3042        let _response = self.client.send_query::<
3043            fidl::encoding::EmptyPayload,
3044            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3045        >(
3046            (),
3047            0x54259ed6c262fe88,
3048            fidl::encoding::DynamicFlags::empty(),
3049            ___deadline,
3050        )?;
3051        Ok(_response.map(|x| x))
3052    }
3053
3054    pub fn r#strict_two_way_fields_err(
3055        &self,
3056        ___deadline: zx::MonotonicInstant,
3057    ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3058        let _response = self.client.send_query::<
3059            fidl::encoding::EmptyPayload,
3060            fidl::encoding::ResultType<NonEmptyPayload, i32>,
3061        >(
3062            (),
3063            0x7dbaa8538b552711,
3064            fidl::encoding::DynamicFlags::empty(),
3065            ___deadline,
3066        )?;
3067        Ok(_response.map(|x| x.some_field))
3068    }
3069
3070    pub fn r#flexible_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3071        let _response = self.client.send_query::<
3072            fidl::encoding::EmptyPayload,
3073            fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3074        >(
3075            (),
3076            0x66552e68b99a0587,
3077            fidl::encoding::DynamicFlags::FLEXIBLE,
3078            ___deadline,
3079        )?
3080        .into_result::<OpenTargetMarker>("flexible_two_way")?;
3081        Ok(_response)
3082    }
3083
3084    pub fn r#flexible_two_way_fields(
3085        &self,
3086        ___deadline: zx::MonotonicInstant,
3087    ) -> Result<i32, fidl::Error> {
3088        let _response = self.client.send_query::<
3089            fidl::encoding::EmptyPayload,
3090            fidl::encoding::FlexibleType<NonEmptyPayload>,
3091        >(
3092            (),
3093            0x38b95648ac4e2ae4,
3094            fidl::encoding::DynamicFlags::FLEXIBLE,
3095            ___deadline,
3096        )?
3097        .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3098        Ok(_response.some_field)
3099    }
3100
3101    pub fn r#flexible_two_way_err(
3102        &self,
3103        ___deadline: zx::MonotonicInstant,
3104    ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3105        let _response = self.client.send_query::<
3106            fidl::encoding::EmptyPayload,
3107            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3108        >(
3109            (),
3110            0x6e144c6e0cf2147a,
3111            fidl::encoding::DynamicFlags::FLEXIBLE,
3112            ___deadline,
3113        )?
3114        .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3115        Ok(_response.map(|x| x))
3116    }
3117
3118    pub fn r#flexible_two_way_fields_err(
3119        &self,
3120        ___deadline: zx::MonotonicInstant,
3121    ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3122        let _response = self.client.send_query::<
3123            fidl::encoding::EmptyPayload,
3124            fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3125        >(
3126            (),
3127            0xe494147cda8024a,
3128            fidl::encoding::DynamicFlags::FLEXIBLE,
3129            ___deadline,
3130        )?
3131        .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3132        Ok(_response.map(|x| x.some_field))
3133    }
3134}
3135
3136#[derive(Debug, Clone)]
3137pub struct OpenTargetProxy {
3138    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3139}
3140
3141impl fidl::endpoints::Proxy for OpenTargetProxy {
3142    type Protocol = OpenTargetMarker;
3143
3144    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3145        Self::new(inner)
3146    }
3147
3148    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3149        self.client.into_channel().map_err(|client| Self { client })
3150    }
3151
3152    fn as_channel(&self) -> &::fidl::AsyncChannel {
3153        self.client.as_channel()
3154    }
3155}
3156
3157impl OpenTargetProxy {
3158    /// Create a new Proxy for fidl.clientsuite/OpenTarget.
3159    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3160        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3161        Self { client: fidl::client::Client::new(channel, protocol_name) }
3162    }
3163
3164    /// Get a Stream of events from the remote end of the protocol.
3165    ///
3166    /// # Panics
3167    ///
3168    /// Panics if the event stream was already taken.
3169    pub fn take_event_stream(&self) -> OpenTargetEventStream {
3170        OpenTargetEventStream { event_receiver: self.client.take_event_receiver() }
3171    }
3172
3173    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3174        OpenTargetProxyInterface::r#strict_one_way(self)
3175    }
3176
3177    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3178        OpenTargetProxyInterface::r#flexible_one_way(self)
3179    }
3180
3181    pub fn r#strict_two_way(
3182        &self,
3183    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3184        OpenTargetProxyInterface::r#strict_two_way(self)
3185    }
3186
3187    pub fn r#strict_two_way_fields(
3188        &self,
3189    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3190        OpenTargetProxyInterface::r#strict_two_way_fields(self)
3191    }
3192
3193    pub fn r#strict_two_way_err(
3194        &self,
3195    ) -> fidl::client::QueryResponseFut<
3196        OpenTargetStrictTwoWayErrResult,
3197        fidl::encoding::DefaultFuchsiaResourceDialect,
3198    > {
3199        OpenTargetProxyInterface::r#strict_two_way_err(self)
3200    }
3201
3202    pub fn r#strict_two_way_fields_err(
3203        &self,
3204    ) -> fidl::client::QueryResponseFut<
3205        OpenTargetStrictTwoWayFieldsErrResult,
3206        fidl::encoding::DefaultFuchsiaResourceDialect,
3207    > {
3208        OpenTargetProxyInterface::r#strict_two_way_fields_err(self)
3209    }
3210
3211    pub fn r#flexible_two_way(
3212        &self,
3213    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3214        OpenTargetProxyInterface::r#flexible_two_way(self)
3215    }
3216
3217    pub fn r#flexible_two_way_fields(
3218        &self,
3219    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3220        OpenTargetProxyInterface::r#flexible_two_way_fields(self)
3221    }
3222
3223    pub fn r#flexible_two_way_err(
3224        &self,
3225    ) -> fidl::client::QueryResponseFut<
3226        OpenTargetFlexibleTwoWayErrResult,
3227        fidl::encoding::DefaultFuchsiaResourceDialect,
3228    > {
3229        OpenTargetProxyInterface::r#flexible_two_way_err(self)
3230    }
3231
3232    pub fn r#flexible_two_way_fields_err(
3233        &self,
3234    ) -> fidl::client::QueryResponseFut<
3235        OpenTargetFlexibleTwoWayFieldsErrResult,
3236        fidl::encoding::DefaultFuchsiaResourceDialect,
3237    > {
3238        OpenTargetProxyInterface::r#flexible_two_way_fields_err(self)
3239    }
3240}
3241
3242impl OpenTargetProxyInterface for OpenTargetProxy {
3243    fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3244        self.client.send::<fidl::encoding::EmptyPayload>(
3245            (),
3246            0x6db0bc21c4aae764,
3247            fidl::encoding::DynamicFlags::empty(),
3248        )
3249    }
3250
3251    fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3252        self.client.send::<fidl::encoding::EmptyPayload>(
3253            (),
3254            0xf894a7eb9cc29fc,
3255            fidl::encoding::DynamicFlags::FLEXIBLE,
3256        )
3257    }
3258
3259    type StrictTwoWayResponseFut =
3260        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3261    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut {
3262        fn _decode(
3263            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3264        ) -> Result<(), fidl::Error> {
3265            let _response = fidl::client::decode_transaction_body::<
3266                fidl::encoding::EmptyPayload,
3267                fidl::encoding::DefaultFuchsiaResourceDialect,
3268                0xdcf4cef19a1c542,
3269            >(_buf?)?;
3270            Ok(_response)
3271        }
3272        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3273            (),
3274            0xdcf4cef19a1c542,
3275            fidl::encoding::DynamicFlags::empty(),
3276            _decode,
3277        )
3278    }
3279
3280    type StrictTwoWayFieldsResponseFut =
3281        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3282    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut {
3283        fn _decode(
3284            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3285        ) -> Result<i32, fidl::Error> {
3286            let _response = fidl::client::decode_transaction_body::<
3287                NonEmptyPayload,
3288                fidl::encoding::DefaultFuchsiaResourceDialect,
3289                0x79c7a7803c45e2e3,
3290            >(_buf?)?;
3291            Ok(_response.some_field)
3292        }
3293        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3294            (),
3295            0x79c7a7803c45e2e3,
3296            fidl::encoding::DynamicFlags::empty(),
3297            _decode,
3298        )
3299    }
3300
3301    type StrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3302        OpenTargetStrictTwoWayErrResult,
3303        fidl::encoding::DefaultFuchsiaResourceDialect,
3304    >;
3305    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut {
3306        fn _decode(
3307            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3308        ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3309            let _response = fidl::client::decode_transaction_body::<
3310                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3311                fidl::encoding::DefaultFuchsiaResourceDialect,
3312                0x54259ed6c262fe88,
3313            >(_buf?)?;
3314            Ok(_response.map(|x| x))
3315        }
3316        self.client
3317            .send_query_and_decode::<fidl::encoding::EmptyPayload, OpenTargetStrictTwoWayErrResult>(
3318                (),
3319                0x54259ed6c262fe88,
3320                fidl::encoding::DynamicFlags::empty(),
3321                _decode,
3322            )
3323    }
3324
3325    type StrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3326        OpenTargetStrictTwoWayFieldsErrResult,
3327        fidl::encoding::DefaultFuchsiaResourceDialect,
3328    >;
3329    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut {
3330        fn _decode(
3331            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3332        ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3333            let _response = fidl::client::decode_transaction_body::<
3334                fidl::encoding::ResultType<NonEmptyPayload, i32>,
3335                fidl::encoding::DefaultFuchsiaResourceDialect,
3336                0x7dbaa8538b552711,
3337            >(_buf?)?;
3338            Ok(_response.map(|x| x.some_field))
3339        }
3340        self.client.send_query_and_decode::<
3341            fidl::encoding::EmptyPayload,
3342            OpenTargetStrictTwoWayFieldsErrResult,
3343        >(
3344            (),
3345            0x7dbaa8538b552711,
3346            fidl::encoding::DynamicFlags::empty(),
3347            _decode,
3348        )
3349    }
3350
3351    type FlexibleTwoWayResponseFut =
3352        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3353    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut {
3354        fn _decode(
3355            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3356        ) -> Result<(), fidl::Error> {
3357            let _response = fidl::client::decode_transaction_body::<
3358                fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3359                fidl::encoding::DefaultFuchsiaResourceDialect,
3360                0x66552e68b99a0587,
3361            >(_buf?)?
3362            .into_result::<OpenTargetMarker>("flexible_two_way")?;
3363            Ok(_response)
3364        }
3365        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3366            (),
3367            0x66552e68b99a0587,
3368            fidl::encoding::DynamicFlags::FLEXIBLE,
3369            _decode,
3370        )
3371    }
3372
3373    type FlexibleTwoWayFieldsResponseFut =
3374        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3375    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut {
3376        fn _decode(
3377            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3378        ) -> Result<i32, fidl::Error> {
3379            let _response = fidl::client::decode_transaction_body::<
3380                fidl::encoding::FlexibleType<NonEmptyPayload>,
3381                fidl::encoding::DefaultFuchsiaResourceDialect,
3382                0x38b95648ac4e2ae4,
3383            >(_buf?)?
3384            .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3385            Ok(_response.some_field)
3386        }
3387        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3388            (),
3389            0x38b95648ac4e2ae4,
3390            fidl::encoding::DynamicFlags::FLEXIBLE,
3391            _decode,
3392        )
3393    }
3394
3395    type FlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3396        OpenTargetFlexibleTwoWayErrResult,
3397        fidl::encoding::DefaultFuchsiaResourceDialect,
3398    >;
3399    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut {
3400        fn _decode(
3401            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3402        ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3403            let _response = fidl::client::decode_transaction_body::<
3404                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3405                fidl::encoding::DefaultFuchsiaResourceDialect,
3406                0x6e144c6e0cf2147a,
3407            >(_buf?)?
3408            .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3409            Ok(_response.map(|x| x))
3410        }
3411        self.client.send_query_and_decode::<
3412            fidl::encoding::EmptyPayload,
3413            OpenTargetFlexibleTwoWayErrResult,
3414        >(
3415            (),
3416            0x6e144c6e0cf2147a,
3417            fidl::encoding::DynamicFlags::FLEXIBLE,
3418            _decode,
3419        )
3420    }
3421
3422    type FlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3423        OpenTargetFlexibleTwoWayFieldsErrResult,
3424        fidl::encoding::DefaultFuchsiaResourceDialect,
3425    >;
3426    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut {
3427        fn _decode(
3428            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3429        ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3430            let _response = fidl::client::decode_transaction_body::<
3431                fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3432                fidl::encoding::DefaultFuchsiaResourceDialect,
3433                0xe494147cda8024a,
3434            >(_buf?)?
3435            .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3436            Ok(_response.map(|x| x.some_field))
3437        }
3438        self.client.send_query_and_decode::<
3439            fidl::encoding::EmptyPayload,
3440            OpenTargetFlexibleTwoWayFieldsErrResult,
3441        >(
3442            (),
3443            0xe494147cda8024a,
3444            fidl::encoding::DynamicFlags::FLEXIBLE,
3445            _decode,
3446        )
3447    }
3448}
3449
3450pub struct OpenTargetEventStream {
3451    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3452}
3453
3454impl std::marker::Unpin for OpenTargetEventStream {}
3455
3456impl futures::stream::FusedStream for OpenTargetEventStream {
3457    fn is_terminated(&self) -> bool {
3458        self.event_receiver.is_terminated()
3459    }
3460}
3461
3462impl futures::Stream for OpenTargetEventStream {
3463    type Item = Result<OpenTargetEvent, fidl::Error>;
3464
3465    fn poll_next(
3466        mut self: std::pin::Pin<&mut Self>,
3467        cx: &mut std::task::Context<'_>,
3468    ) -> std::task::Poll<Option<Self::Item>> {
3469        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3470            &mut self.event_receiver,
3471            cx
3472        )?) {
3473            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEvent::decode(buf))),
3474            None => std::task::Poll::Ready(None),
3475        }
3476    }
3477}
3478
3479#[derive(Debug)]
3480pub enum OpenTargetEvent {
3481    StrictEvent {},
3482    FlexibleEvent {},
3483    #[non_exhaustive]
3484    _UnknownEvent {
3485        /// Ordinal of the event that was sent.
3486        ordinal: u64,
3487    },
3488}
3489
3490impl OpenTargetEvent {
3491    #[allow(irrefutable_let_patterns)]
3492    pub fn into_strict_event(self) -> Option<()> {
3493        if let OpenTargetEvent::StrictEvent {} = self {
3494            Some(())
3495        } else {
3496            None
3497        }
3498    }
3499    #[allow(irrefutable_let_patterns)]
3500    pub fn into_flexible_event(self) -> Option<()> {
3501        if let OpenTargetEvent::FlexibleEvent {} = self {
3502            Some(())
3503        } else {
3504            None
3505        }
3506    }
3507
3508    /// Decodes a message buffer as a [`OpenTargetEvent`].
3509    fn decode(
3510        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3511    ) -> Result<OpenTargetEvent, fidl::Error> {
3512        let (bytes, _handles) = buf.split_mut();
3513        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3514        debug_assert_eq!(tx_header.tx_id, 0);
3515        match tx_header.ordinal {
3516            0x2b291d74321e77a0 => {
3517                let mut out = fidl::new_empty!(
3518                    fidl::encoding::EmptyPayload,
3519                    fidl::encoding::DefaultFuchsiaResourceDialect
3520                );
3521                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3522                Ok((OpenTargetEvent::StrictEvent {}))
3523            }
3524            0x50d4688058898898 => {
3525                let mut out = fidl::new_empty!(
3526                    fidl::encoding::EmptyPayload,
3527                    fidl::encoding::DefaultFuchsiaResourceDialect
3528                );
3529                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3530                Ok((OpenTargetEvent::FlexibleEvent {}))
3531            }
3532            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
3533                Ok(OpenTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
3534            }
3535            _ => Err(fidl::Error::UnknownOrdinal {
3536                ordinal: tx_header.ordinal,
3537                protocol_name: <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3538            }),
3539        }
3540    }
3541}
3542
3543/// A Stream of incoming requests for fidl.clientsuite/OpenTarget.
3544pub struct OpenTargetRequestStream {
3545    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3546    is_terminated: bool,
3547}
3548
3549impl std::marker::Unpin for OpenTargetRequestStream {}
3550
3551impl futures::stream::FusedStream for OpenTargetRequestStream {
3552    fn is_terminated(&self) -> bool {
3553        self.is_terminated
3554    }
3555}
3556
3557impl fidl::endpoints::RequestStream for OpenTargetRequestStream {
3558    type Protocol = OpenTargetMarker;
3559    type ControlHandle = OpenTargetControlHandle;
3560
3561    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3562        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3563    }
3564
3565    fn control_handle(&self) -> Self::ControlHandle {
3566        OpenTargetControlHandle { inner: self.inner.clone() }
3567    }
3568
3569    fn into_inner(
3570        self,
3571    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3572    {
3573        (self.inner, self.is_terminated)
3574    }
3575
3576    fn from_inner(
3577        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3578        is_terminated: bool,
3579    ) -> Self {
3580        Self { inner, is_terminated }
3581    }
3582}
3583
3584impl futures::Stream for OpenTargetRequestStream {
3585    type Item = Result<OpenTargetRequest, fidl::Error>;
3586
3587    fn poll_next(
3588        mut self: std::pin::Pin<&mut Self>,
3589        cx: &mut std::task::Context<'_>,
3590    ) -> std::task::Poll<Option<Self::Item>> {
3591        let this = &mut *self;
3592        if this.inner.check_shutdown(cx) {
3593            this.is_terminated = true;
3594            return std::task::Poll::Ready(None);
3595        }
3596        if this.is_terminated {
3597            panic!("polled OpenTargetRequestStream after completion");
3598        }
3599        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3600            |bytes, handles| {
3601                match this.inner.channel().read_etc(cx, bytes, handles) {
3602                    std::task::Poll::Ready(Ok(())) => {}
3603                    std::task::Poll::Pending => return std::task::Poll::Pending,
3604                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3605                        this.is_terminated = true;
3606                        return std::task::Poll::Ready(None);
3607                    }
3608                    std::task::Poll::Ready(Err(e)) => {
3609                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3610                            e.into(),
3611                        ))))
3612                    }
3613                }
3614
3615                // A message has been received from the channel
3616                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3617
3618                std::task::Poll::Ready(Some(match header.ordinal {
3619                    0x6db0bc21c4aae764 => {
3620                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3621                        let mut req = fidl::new_empty!(
3622                            fidl::encoding::EmptyPayload,
3623                            fidl::encoding::DefaultFuchsiaResourceDialect
3624                        );
3625                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3626                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3627                        Ok(OpenTargetRequest::StrictOneWay { control_handle })
3628                    }
3629                    0xf894a7eb9cc29fc => {
3630                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3631                        let mut req = fidl::new_empty!(
3632                            fidl::encoding::EmptyPayload,
3633                            fidl::encoding::DefaultFuchsiaResourceDialect
3634                        );
3635                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3636                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3637                        Ok(OpenTargetRequest::FlexibleOneWay { control_handle })
3638                    }
3639                    0xdcf4cef19a1c542 => {
3640                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3641                        let mut req = fidl::new_empty!(
3642                            fidl::encoding::EmptyPayload,
3643                            fidl::encoding::DefaultFuchsiaResourceDialect
3644                        );
3645                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3646                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3647                        Ok(OpenTargetRequest::StrictTwoWay {
3648                            responder: OpenTargetStrictTwoWayResponder {
3649                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3650                                tx_id: header.tx_id,
3651                            },
3652                        })
3653                    }
3654                    0x79c7a7803c45e2e3 => {
3655                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3656                        let mut req = fidl::new_empty!(
3657                            fidl::encoding::EmptyPayload,
3658                            fidl::encoding::DefaultFuchsiaResourceDialect
3659                        );
3660                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3661                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3662                        Ok(OpenTargetRequest::StrictTwoWayFields {
3663                            responder: OpenTargetStrictTwoWayFieldsResponder {
3664                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3665                                tx_id: header.tx_id,
3666                            },
3667                        })
3668                    }
3669                    0x54259ed6c262fe88 => {
3670                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3671                        let mut req = fidl::new_empty!(
3672                            fidl::encoding::EmptyPayload,
3673                            fidl::encoding::DefaultFuchsiaResourceDialect
3674                        );
3675                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3676                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3677                        Ok(OpenTargetRequest::StrictTwoWayErr {
3678                            responder: OpenTargetStrictTwoWayErrResponder {
3679                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3680                                tx_id: header.tx_id,
3681                            },
3682                        })
3683                    }
3684                    0x7dbaa8538b552711 => {
3685                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3686                        let mut req = fidl::new_empty!(
3687                            fidl::encoding::EmptyPayload,
3688                            fidl::encoding::DefaultFuchsiaResourceDialect
3689                        );
3690                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3691                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3692                        Ok(OpenTargetRequest::StrictTwoWayFieldsErr {
3693                            responder: OpenTargetStrictTwoWayFieldsErrResponder {
3694                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3695                                tx_id: header.tx_id,
3696                            },
3697                        })
3698                    }
3699                    0x66552e68b99a0587 => {
3700                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3701                        let mut req = fidl::new_empty!(
3702                            fidl::encoding::EmptyPayload,
3703                            fidl::encoding::DefaultFuchsiaResourceDialect
3704                        );
3705                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3706                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3707                        Ok(OpenTargetRequest::FlexibleTwoWay {
3708                            responder: OpenTargetFlexibleTwoWayResponder {
3709                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3710                                tx_id: header.tx_id,
3711                            },
3712                        })
3713                    }
3714                    0x38b95648ac4e2ae4 => {
3715                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3716                        let mut req = fidl::new_empty!(
3717                            fidl::encoding::EmptyPayload,
3718                            fidl::encoding::DefaultFuchsiaResourceDialect
3719                        );
3720                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3721                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3722                        Ok(OpenTargetRequest::FlexibleTwoWayFields {
3723                            responder: OpenTargetFlexibleTwoWayFieldsResponder {
3724                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3725                                tx_id: header.tx_id,
3726                            },
3727                        })
3728                    }
3729                    0x6e144c6e0cf2147a => {
3730                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3731                        let mut req = fidl::new_empty!(
3732                            fidl::encoding::EmptyPayload,
3733                            fidl::encoding::DefaultFuchsiaResourceDialect
3734                        );
3735                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3736                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3737                        Ok(OpenTargetRequest::FlexibleTwoWayErr {
3738                            responder: OpenTargetFlexibleTwoWayErrResponder {
3739                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3740                                tx_id: header.tx_id,
3741                            },
3742                        })
3743                    }
3744                    0xe494147cda8024a => {
3745                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3746                        let mut req = fidl::new_empty!(
3747                            fidl::encoding::EmptyPayload,
3748                            fidl::encoding::DefaultFuchsiaResourceDialect
3749                        );
3750                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3751                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3752                        Ok(OpenTargetRequest::FlexibleTwoWayFieldsErr {
3753                            responder: OpenTargetFlexibleTwoWayFieldsErrResponder {
3754                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3755                                tx_id: header.tx_id,
3756                            },
3757                        })
3758                    }
3759                    _ if header.tx_id == 0
3760                        && header
3761                            .dynamic_flags()
3762                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3763                    {
3764                        Ok(OpenTargetRequest::_UnknownMethod {
3765                            ordinal: header.ordinal,
3766                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3767                            method_type: fidl::MethodType::OneWay,
3768                        })
3769                    }
3770                    _ if header
3771                        .dynamic_flags()
3772                        .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3773                    {
3774                        this.inner.send_framework_err(
3775                            fidl::encoding::FrameworkErr::UnknownMethod,
3776                            header.tx_id,
3777                            header.ordinal,
3778                            header.dynamic_flags(),
3779                            (bytes, handles),
3780                        )?;
3781                        Ok(OpenTargetRequest::_UnknownMethod {
3782                            ordinal: header.ordinal,
3783                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3784                            method_type: fidl::MethodType::TwoWay,
3785                        })
3786                    }
3787                    _ => Err(fidl::Error::UnknownOrdinal {
3788                        ordinal: header.ordinal,
3789                        protocol_name:
3790                            <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3791                    }),
3792                }))
3793            },
3794        )
3795    }
3796}
3797
3798#[derive(Debug)]
3799pub enum OpenTargetRequest {
3800    StrictOneWay {
3801        control_handle: OpenTargetControlHandle,
3802    },
3803    FlexibleOneWay {
3804        control_handle: OpenTargetControlHandle,
3805    },
3806    StrictTwoWay {
3807        responder: OpenTargetStrictTwoWayResponder,
3808    },
3809    StrictTwoWayFields {
3810        responder: OpenTargetStrictTwoWayFieldsResponder,
3811    },
3812    StrictTwoWayErr {
3813        responder: OpenTargetStrictTwoWayErrResponder,
3814    },
3815    StrictTwoWayFieldsErr {
3816        responder: OpenTargetStrictTwoWayFieldsErrResponder,
3817    },
3818    FlexibleTwoWay {
3819        responder: OpenTargetFlexibleTwoWayResponder,
3820    },
3821    FlexibleTwoWayFields {
3822        responder: OpenTargetFlexibleTwoWayFieldsResponder,
3823    },
3824    FlexibleTwoWayErr {
3825        responder: OpenTargetFlexibleTwoWayErrResponder,
3826    },
3827    FlexibleTwoWayFieldsErr {
3828        responder: OpenTargetFlexibleTwoWayFieldsErrResponder,
3829    },
3830    /// An interaction was received which does not match any known method.
3831    #[non_exhaustive]
3832    _UnknownMethod {
3833        /// Ordinal of the method that was called.
3834        ordinal: u64,
3835        control_handle: OpenTargetControlHandle,
3836        method_type: fidl::MethodType,
3837    },
3838}
3839
3840impl OpenTargetRequest {
3841    #[allow(irrefutable_let_patterns)]
3842    pub fn into_strict_one_way(self) -> Option<(OpenTargetControlHandle)> {
3843        if let OpenTargetRequest::StrictOneWay { control_handle } = self {
3844            Some((control_handle))
3845        } else {
3846            None
3847        }
3848    }
3849
3850    #[allow(irrefutable_let_patterns)]
3851    pub fn into_flexible_one_way(self) -> Option<(OpenTargetControlHandle)> {
3852        if let OpenTargetRequest::FlexibleOneWay { control_handle } = self {
3853            Some((control_handle))
3854        } else {
3855            None
3856        }
3857    }
3858
3859    #[allow(irrefutable_let_patterns)]
3860    pub fn into_strict_two_way(self) -> Option<(OpenTargetStrictTwoWayResponder)> {
3861        if let OpenTargetRequest::StrictTwoWay { responder } = self {
3862            Some((responder))
3863        } else {
3864            None
3865        }
3866    }
3867
3868    #[allow(irrefutable_let_patterns)]
3869    pub fn into_strict_two_way_fields(self) -> Option<(OpenTargetStrictTwoWayFieldsResponder)> {
3870        if let OpenTargetRequest::StrictTwoWayFields { responder } = self {
3871            Some((responder))
3872        } else {
3873            None
3874        }
3875    }
3876
3877    #[allow(irrefutable_let_patterns)]
3878    pub fn into_strict_two_way_err(self) -> Option<(OpenTargetStrictTwoWayErrResponder)> {
3879        if let OpenTargetRequest::StrictTwoWayErr { responder } = self {
3880            Some((responder))
3881        } else {
3882            None
3883        }
3884    }
3885
3886    #[allow(irrefutable_let_patterns)]
3887    pub fn into_strict_two_way_fields_err(
3888        self,
3889    ) -> Option<(OpenTargetStrictTwoWayFieldsErrResponder)> {
3890        if let OpenTargetRequest::StrictTwoWayFieldsErr { responder } = self {
3891            Some((responder))
3892        } else {
3893            None
3894        }
3895    }
3896
3897    #[allow(irrefutable_let_patterns)]
3898    pub fn into_flexible_two_way(self) -> Option<(OpenTargetFlexibleTwoWayResponder)> {
3899        if let OpenTargetRequest::FlexibleTwoWay { responder } = self {
3900            Some((responder))
3901        } else {
3902            None
3903        }
3904    }
3905
3906    #[allow(irrefutable_let_patterns)]
3907    pub fn into_flexible_two_way_fields(self) -> Option<(OpenTargetFlexibleTwoWayFieldsResponder)> {
3908        if let OpenTargetRequest::FlexibleTwoWayFields { responder } = self {
3909            Some((responder))
3910        } else {
3911            None
3912        }
3913    }
3914
3915    #[allow(irrefutable_let_patterns)]
3916    pub fn into_flexible_two_way_err(self) -> Option<(OpenTargetFlexibleTwoWayErrResponder)> {
3917        if let OpenTargetRequest::FlexibleTwoWayErr { responder } = self {
3918            Some((responder))
3919        } else {
3920            None
3921        }
3922    }
3923
3924    #[allow(irrefutable_let_patterns)]
3925    pub fn into_flexible_two_way_fields_err(
3926        self,
3927    ) -> Option<(OpenTargetFlexibleTwoWayFieldsErrResponder)> {
3928        if let OpenTargetRequest::FlexibleTwoWayFieldsErr { responder } = self {
3929            Some((responder))
3930        } else {
3931            None
3932        }
3933    }
3934
3935    /// Name of the method defined in FIDL
3936    pub fn method_name(&self) -> &'static str {
3937        match *self {
3938            OpenTargetRequest::StrictOneWay { .. } => "strict_one_way",
3939            OpenTargetRequest::FlexibleOneWay { .. } => "flexible_one_way",
3940            OpenTargetRequest::StrictTwoWay { .. } => "strict_two_way",
3941            OpenTargetRequest::StrictTwoWayFields { .. } => "strict_two_way_fields",
3942            OpenTargetRequest::StrictTwoWayErr { .. } => "strict_two_way_err",
3943            OpenTargetRequest::StrictTwoWayFieldsErr { .. } => "strict_two_way_fields_err",
3944            OpenTargetRequest::FlexibleTwoWay { .. } => "flexible_two_way",
3945            OpenTargetRequest::FlexibleTwoWayFields { .. } => "flexible_two_way_fields",
3946            OpenTargetRequest::FlexibleTwoWayErr { .. } => "flexible_two_way_err",
3947            OpenTargetRequest::FlexibleTwoWayFieldsErr { .. } => "flexible_two_way_fields_err",
3948            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::OneWay, .. } => {
3949                "unknown one-way method"
3950            }
3951            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::TwoWay, .. } => {
3952                "unknown two-way method"
3953            }
3954        }
3955    }
3956}
3957
3958#[derive(Debug, Clone)]
3959pub struct OpenTargetControlHandle {
3960    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3961}
3962
3963impl fidl::endpoints::ControlHandle for OpenTargetControlHandle {
3964    fn shutdown(&self) {
3965        self.inner.shutdown()
3966    }
3967    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
3968        self.inner.shutdown_with_epitaph(status)
3969    }
3970
3971    fn is_closed(&self) -> bool {
3972        self.inner.channel().is_closed()
3973    }
3974    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3975        self.inner.channel().on_closed()
3976    }
3977
3978    #[cfg(target_os = "fuchsia")]
3979    fn signal_peer(
3980        &self,
3981        clear_mask: zx::Signals,
3982        set_mask: zx::Signals,
3983    ) -> Result<(), zx_status::Status> {
3984        use fidl::Peered;
3985        self.inner.channel().signal_peer(clear_mask, set_mask)
3986    }
3987}
3988
3989impl OpenTargetControlHandle {
3990    pub fn send_strict_event(&self) -> Result<(), fidl::Error> {
3991        self.inner.send::<fidl::encoding::EmptyPayload>(
3992            (),
3993            0,
3994            0x2b291d74321e77a0,
3995            fidl::encoding::DynamicFlags::empty(),
3996        )
3997    }
3998
3999    pub fn send_flexible_event(&self) -> Result<(), fidl::Error> {
4000        self.inner.send::<fidl::encoding::EmptyPayload>(
4001            (),
4002            0,
4003            0x50d4688058898898,
4004            fidl::encoding::DynamicFlags::FLEXIBLE,
4005        )
4006    }
4007}
4008
4009#[must_use = "FIDL methods require a response to be sent"]
4010#[derive(Debug)]
4011pub struct OpenTargetStrictTwoWayResponder {
4012    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4013    tx_id: u32,
4014}
4015
4016/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4017/// if the responder is dropped without sending a response, so that the client
4018/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4019impl std::ops::Drop for OpenTargetStrictTwoWayResponder {
4020    fn drop(&mut self) {
4021        self.control_handle.shutdown();
4022        // Safety: drops once, never accessed again
4023        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4024    }
4025}
4026
4027impl fidl::endpoints::Responder for OpenTargetStrictTwoWayResponder {
4028    type ControlHandle = OpenTargetControlHandle;
4029
4030    fn control_handle(&self) -> &OpenTargetControlHandle {
4031        &self.control_handle
4032    }
4033
4034    fn drop_without_shutdown(mut self) {
4035        // Safety: drops once, never accessed again due to mem::forget
4036        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4037        // Prevent Drop from running (which would shut down the channel)
4038        std::mem::forget(self);
4039    }
4040}
4041
4042impl OpenTargetStrictTwoWayResponder {
4043    /// Sends a response to the FIDL transaction.
4044    ///
4045    /// Sets the channel to shutdown if an error occurs.
4046    pub fn send(self) -> Result<(), fidl::Error> {
4047        let _result = self.send_raw();
4048        if _result.is_err() {
4049            self.control_handle.shutdown();
4050        }
4051        self.drop_without_shutdown();
4052        _result
4053    }
4054
4055    /// Similar to "send" but does not shutdown the channel if an error occurs.
4056    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4057        let _result = self.send_raw();
4058        self.drop_without_shutdown();
4059        _result
4060    }
4061
4062    fn send_raw(&self) -> Result<(), fidl::Error> {
4063        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4064            (),
4065            self.tx_id,
4066            0xdcf4cef19a1c542,
4067            fidl::encoding::DynamicFlags::empty(),
4068        )
4069    }
4070}
4071
4072#[must_use = "FIDL methods require a response to be sent"]
4073#[derive(Debug)]
4074pub struct OpenTargetStrictTwoWayFieldsResponder {
4075    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4076    tx_id: u32,
4077}
4078
4079/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4080/// if the responder is dropped without sending a response, so that the client
4081/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4082impl std::ops::Drop for OpenTargetStrictTwoWayFieldsResponder {
4083    fn drop(&mut self) {
4084        self.control_handle.shutdown();
4085        // Safety: drops once, never accessed again
4086        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4087    }
4088}
4089
4090impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsResponder {
4091    type ControlHandle = OpenTargetControlHandle;
4092
4093    fn control_handle(&self) -> &OpenTargetControlHandle {
4094        &self.control_handle
4095    }
4096
4097    fn drop_without_shutdown(mut self) {
4098        // Safety: drops once, never accessed again due to mem::forget
4099        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4100        // Prevent Drop from running (which would shut down the channel)
4101        std::mem::forget(self);
4102    }
4103}
4104
4105impl OpenTargetStrictTwoWayFieldsResponder {
4106    /// Sends a response to the FIDL transaction.
4107    ///
4108    /// Sets the channel to shutdown if an error occurs.
4109    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4110        let _result = self.send_raw(some_field);
4111        if _result.is_err() {
4112            self.control_handle.shutdown();
4113        }
4114        self.drop_without_shutdown();
4115        _result
4116    }
4117
4118    /// Similar to "send" but does not shutdown the channel if an error occurs.
4119    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4120        let _result = self.send_raw(some_field);
4121        self.drop_without_shutdown();
4122        _result
4123    }
4124
4125    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4126        self.control_handle.inner.send::<NonEmptyPayload>(
4127            (some_field,),
4128            self.tx_id,
4129            0x79c7a7803c45e2e3,
4130            fidl::encoding::DynamicFlags::empty(),
4131        )
4132    }
4133}
4134
4135#[must_use = "FIDL methods require a response to be sent"]
4136#[derive(Debug)]
4137pub struct OpenTargetStrictTwoWayErrResponder {
4138    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4139    tx_id: u32,
4140}
4141
4142/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4143/// if the responder is dropped without sending a response, so that the client
4144/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4145impl std::ops::Drop for OpenTargetStrictTwoWayErrResponder {
4146    fn drop(&mut self) {
4147        self.control_handle.shutdown();
4148        // Safety: drops once, never accessed again
4149        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4150    }
4151}
4152
4153impl fidl::endpoints::Responder for OpenTargetStrictTwoWayErrResponder {
4154    type ControlHandle = OpenTargetControlHandle;
4155
4156    fn control_handle(&self) -> &OpenTargetControlHandle {
4157        &self.control_handle
4158    }
4159
4160    fn drop_without_shutdown(mut self) {
4161        // Safety: drops once, never accessed again due to mem::forget
4162        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4163        // Prevent Drop from running (which would shut down the channel)
4164        std::mem::forget(self);
4165    }
4166}
4167
4168impl OpenTargetStrictTwoWayErrResponder {
4169    /// Sends a response to the FIDL transaction.
4170    ///
4171    /// Sets the channel to shutdown if an error occurs.
4172    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4173        let _result = self.send_raw(result);
4174        if _result.is_err() {
4175            self.control_handle.shutdown();
4176        }
4177        self.drop_without_shutdown();
4178        _result
4179    }
4180
4181    /// Similar to "send" but does not shutdown the channel if an error occurs.
4182    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4183        let _result = self.send_raw(result);
4184        self.drop_without_shutdown();
4185        _result
4186    }
4187
4188    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4189        self.control_handle
4190            .inner
4191            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4192                result,
4193                self.tx_id,
4194                0x54259ed6c262fe88,
4195                fidl::encoding::DynamicFlags::empty(),
4196            )
4197    }
4198}
4199
4200#[must_use = "FIDL methods require a response to be sent"]
4201#[derive(Debug)]
4202pub struct OpenTargetStrictTwoWayFieldsErrResponder {
4203    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4204    tx_id: u32,
4205}
4206
4207/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4208/// if the responder is dropped without sending a response, so that the client
4209/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4210impl std::ops::Drop for OpenTargetStrictTwoWayFieldsErrResponder {
4211    fn drop(&mut self) {
4212        self.control_handle.shutdown();
4213        // Safety: drops once, never accessed again
4214        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4215    }
4216}
4217
4218impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsErrResponder {
4219    type ControlHandle = OpenTargetControlHandle;
4220
4221    fn control_handle(&self) -> &OpenTargetControlHandle {
4222        &self.control_handle
4223    }
4224
4225    fn drop_without_shutdown(mut self) {
4226        // Safety: drops once, never accessed again due to mem::forget
4227        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4228        // Prevent Drop from running (which would shut down the channel)
4229        std::mem::forget(self);
4230    }
4231}
4232
4233impl OpenTargetStrictTwoWayFieldsErrResponder {
4234    /// Sends a response to the FIDL transaction.
4235    ///
4236    /// Sets the channel to shutdown if an error occurs.
4237    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4238        let _result = self.send_raw(result);
4239        if _result.is_err() {
4240            self.control_handle.shutdown();
4241        }
4242        self.drop_without_shutdown();
4243        _result
4244    }
4245
4246    /// Similar to "send" but does not shutdown the channel if an error occurs.
4247    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4248        let _result = self.send_raw(result);
4249        self.drop_without_shutdown();
4250        _result
4251    }
4252
4253    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4254        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
4255            result.map(|some_field| (some_field,)),
4256            self.tx_id,
4257            0x7dbaa8538b552711,
4258            fidl::encoding::DynamicFlags::empty(),
4259        )
4260    }
4261}
4262
4263#[must_use = "FIDL methods require a response to be sent"]
4264#[derive(Debug)]
4265pub struct OpenTargetFlexibleTwoWayResponder {
4266    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4267    tx_id: u32,
4268}
4269
4270/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4271/// if the responder is dropped without sending a response, so that the client
4272/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4273impl std::ops::Drop for OpenTargetFlexibleTwoWayResponder {
4274    fn drop(&mut self) {
4275        self.control_handle.shutdown();
4276        // Safety: drops once, never accessed again
4277        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4278    }
4279}
4280
4281impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayResponder {
4282    type ControlHandle = OpenTargetControlHandle;
4283
4284    fn control_handle(&self) -> &OpenTargetControlHandle {
4285        &self.control_handle
4286    }
4287
4288    fn drop_without_shutdown(mut self) {
4289        // Safety: drops once, never accessed again due to mem::forget
4290        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4291        // Prevent Drop from running (which would shut down the channel)
4292        std::mem::forget(self);
4293    }
4294}
4295
4296impl OpenTargetFlexibleTwoWayResponder {
4297    /// Sends a response to the FIDL transaction.
4298    ///
4299    /// Sets the channel to shutdown if an error occurs.
4300    pub fn send(self) -> Result<(), fidl::Error> {
4301        let _result = self.send_raw();
4302        if _result.is_err() {
4303            self.control_handle.shutdown();
4304        }
4305        self.drop_without_shutdown();
4306        _result
4307    }
4308
4309    /// Similar to "send" but does not shutdown the channel if an error occurs.
4310    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4311        let _result = self.send_raw();
4312        self.drop_without_shutdown();
4313        _result
4314    }
4315
4316    fn send_raw(&self) -> Result<(), fidl::Error> {
4317        self.control_handle.inner.send::<fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>>(
4318            fidl::encoding::Flexible::new(()),
4319            self.tx_id,
4320            0x66552e68b99a0587,
4321            fidl::encoding::DynamicFlags::FLEXIBLE,
4322        )
4323    }
4324}
4325
4326#[must_use = "FIDL methods require a response to be sent"]
4327#[derive(Debug)]
4328pub struct OpenTargetFlexibleTwoWayFieldsResponder {
4329    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4330    tx_id: u32,
4331}
4332
4333/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4334/// if the responder is dropped without sending a response, so that the client
4335/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4336impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsResponder {
4337    fn drop(&mut self) {
4338        self.control_handle.shutdown();
4339        // Safety: drops once, never accessed again
4340        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4341    }
4342}
4343
4344impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsResponder {
4345    type ControlHandle = OpenTargetControlHandle;
4346
4347    fn control_handle(&self) -> &OpenTargetControlHandle {
4348        &self.control_handle
4349    }
4350
4351    fn drop_without_shutdown(mut self) {
4352        // Safety: drops once, never accessed again due to mem::forget
4353        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4354        // Prevent Drop from running (which would shut down the channel)
4355        std::mem::forget(self);
4356    }
4357}
4358
4359impl OpenTargetFlexibleTwoWayFieldsResponder {
4360    /// Sends a response to the FIDL transaction.
4361    ///
4362    /// Sets the channel to shutdown if an error occurs.
4363    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4364        let _result = self.send_raw(some_field);
4365        if _result.is_err() {
4366            self.control_handle.shutdown();
4367        }
4368        self.drop_without_shutdown();
4369        _result
4370    }
4371
4372    /// Similar to "send" but does not shutdown the channel if an error occurs.
4373    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4374        let _result = self.send_raw(some_field);
4375        self.drop_without_shutdown();
4376        _result
4377    }
4378
4379    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4380        self.control_handle.inner.send::<fidl::encoding::FlexibleType<NonEmptyPayload>>(
4381            fidl::encoding::Flexible::new((some_field,)),
4382            self.tx_id,
4383            0x38b95648ac4e2ae4,
4384            fidl::encoding::DynamicFlags::FLEXIBLE,
4385        )
4386    }
4387}
4388
4389#[must_use = "FIDL methods require a response to be sent"]
4390#[derive(Debug)]
4391pub struct OpenTargetFlexibleTwoWayErrResponder {
4392    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4393    tx_id: u32,
4394}
4395
4396/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4397/// if the responder is dropped without sending a response, so that the client
4398/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4399impl std::ops::Drop for OpenTargetFlexibleTwoWayErrResponder {
4400    fn drop(&mut self) {
4401        self.control_handle.shutdown();
4402        // Safety: drops once, never accessed again
4403        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4404    }
4405}
4406
4407impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayErrResponder {
4408    type ControlHandle = OpenTargetControlHandle;
4409
4410    fn control_handle(&self) -> &OpenTargetControlHandle {
4411        &self.control_handle
4412    }
4413
4414    fn drop_without_shutdown(mut self) {
4415        // Safety: drops once, never accessed again due to mem::forget
4416        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4417        // Prevent Drop from running (which would shut down the channel)
4418        std::mem::forget(self);
4419    }
4420}
4421
4422impl OpenTargetFlexibleTwoWayErrResponder {
4423    /// Sends a response to the FIDL transaction.
4424    ///
4425    /// Sets the channel to shutdown if an error occurs.
4426    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4427        let _result = self.send_raw(result);
4428        if _result.is_err() {
4429            self.control_handle.shutdown();
4430        }
4431        self.drop_without_shutdown();
4432        _result
4433    }
4434
4435    /// Similar to "send" but does not shutdown the channel if an error occurs.
4436    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4437        let _result = self.send_raw(result);
4438        self.drop_without_shutdown();
4439        _result
4440    }
4441
4442    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4443        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4444            fidl::encoding::EmptyStruct,
4445            i32,
4446        >>(
4447            fidl::encoding::FlexibleResult::new(result),
4448            self.tx_id,
4449            0x6e144c6e0cf2147a,
4450            fidl::encoding::DynamicFlags::FLEXIBLE,
4451        )
4452    }
4453}
4454
4455#[must_use = "FIDL methods require a response to be sent"]
4456#[derive(Debug)]
4457pub struct OpenTargetFlexibleTwoWayFieldsErrResponder {
4458    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4459    tx_id: u32,
4460}
4461
4462/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4463/// if the responder is dropped without sending a response, so that the client
4464/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4465impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsErrResponder {
4466    fn drop(&mut self) {
4467        self.control_handle.shutdown();
4468        // Safety: drops once, never accessed again
4469        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4470    }
4471}
4472
4473impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsErrResponder {
4474    type ControlHandle = OpenTargetControlHandle;
4475
4476    fn control_handle(&self) -> &OpenTargetControlHandle {
4477        &self.control_handle
4478    }
4479
4480    fn drop_without_shutdown(mut self) {
4481        // Safety: drops once, never accessed again due to mem::forget
4482        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4483        // Prevent Drop from running (which would shut down the channel)
4484        std::mem::forget(self);
4485    }
4486}
4487
4488impl OpenTargetFlexibleTwoWayFieldsErrResponder {
4489    /// Sends a response to the FIDL transaction.
4490    ///
4491    /// Sets the channel to shutdown if an error occurs.
4492    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4493        let _result = self.send_raw(result);
4494        if _result.is_err() {
4495            self.control_handle.shutdown();
4496        }
4497        self.drop_without_shutdown();
4498        _result
4499    }
4500
4501    /// Similar to "send" but does not shutdown the channel if an error occurs.
4502    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4503        let _result = self.send_raw(result);
4504        self.drop_without_shutdown();
4505        _result
4506    }
4507
4508    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4509        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>>(
4510            fidl::encoding::FlexibleResult::new(result.map(|some_field| (some_field,))),
4511            self.tx_id,
4512            0xe494147cda8024a,
4513            fidl::encoding::DynamicFlags::FLEXIBLE,
4514        )
4515    }
4516}
4517
4518#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4519pub struct OpenTargetEventReporterMarker;
4520
4521impl fidl::endpoints::ProtocolMarker for OpenTargetEventReporterMarker {
4522    type Proxy = OpenTargetEventReporterProxy;
4523    type RequestStream = OpenTargetEventReporterRequestStream;
4524    #[cfg(target_os = "fuchsia")]
4525    type SynchronousProxy = OpenTargetEventReporterSynchronousProxy;
4526
4527    const DEBUG_NAME: &'static str = "(anonymous) OpenTargetEventReporter";
4528}
4529
4530pub trait OpenTargetEventReporterProxyInterface: Send + Sync {
4531    fn r#report_event(&self, payload: &OpenTargetEventReport) -> Result<(), fidl::Error>;
4532}
4533#[derive(Debug)]
4534#[cfg(target_os = "fuchsia")]
4535pub struct OpenTargetEventReporterSynchronousProxy {
4536    client: fidl::client::sync::Client,
4537}
4538
4539#[cfg(target_os = "fuchsia")]
4540impl fidl::endpoints::SynchronousProxy for OpenTargetEventReporterSynchronousProxy {
4541    type Proxy = OpenTargetEventReporterProxy;
4542    type Protocol = OpenTargetEventReporterMarker;
4543
4544    fn from_channel(inner: fidl::Channel) -> Self {
4545        Self::new(inner)
4546    }
4547
4548    fn into_channel(self) -> fidl::Channel {
4549        self.client.into_channel()
4550    }
4551
4552    fn as_channel(&self) -> &fidl::Channel {
4553        self.client.as_channel()
4554    }
4555}
4556
4557#[cfg(target_os = "fuchsia")]
4558impl OpenTargetEventReporterSynchronousProxy {
4559    pub fn new(channel: fidl::Channel) -> Self {
4560        let protocol_name =
4561            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4562        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
4563    }
4564
4565    pub fn into_channel(self) -> fidl::Channel {
4566        self.client.into_channel()
4567    }
4568
4569    /// Waits until an event arrives and returns it. It is safe for other
4570    /// threads to make concurrent requests while waiting for an event.
4571    pub fn wait_for_event(
4572        &self,
4573        deadline: zx::MonotonicInstant,
4574    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4575        OpenTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
4576    }
4577
4578    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4579        self.client.send::<OpenTargetEventReport>(
4580            payload,
4581            0x70ab38ec0248964a,
4582            fidl::encoding::DynamicFlags::empty(),
4583        )
4584    }
4585}
4586
4587#[derive(Debug, Clone)]
4588pub struct OpenTargetEventReporterProxy {
4589    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
4590}
4591
4592impl fidl::endpoints::Proxy for OpenTargetEventReporterProxy {
4593    type Protocol = OpenTargetEventReporterMarker;
4594
4595    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
4596        Self::new(inner)
4597    }
4598
4599    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
4600        self.client.into_channel().map_err(|client| Self { client })
4601    }
4602
4603    fn as_channel(&self) -> &::fidl::AsyncChannel {
4604        self.client.as_channel()
4605    }
4606}
4607
4608impl OpenTargetEventReporterProxy {
4609    /// Create a new Proxy for fidl.clientsuite/OpenTargetEventReporter.
4610    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
4611        let protocol_name =
4612            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4613        Self { client: fidl::client::Client::new(channel, protocol_name) }
4614    }
4615
4616    /// Get a Stream of events from the remote end of the protocol.
4617    ///
4618    /// # Panics
4619    ///
4620    /// Panics if the event stream was already taken.
4621    pub fn take_event_stream(&self) -> OpenTargetEventReporterEventStream {
4622        OpenTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
4623    }
4624
4625    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4626        OpenTargetEventReporterProxyInterface::r#report_event(self, payload)
4627    }
4628}
4629
4630impl OpenTargetEventReporterProxyInterface for OpenTargetEventReporterProxy {
4631    fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4632        self.client.send::<OpenTargetEventReport>(
4633            payload,
4634            0x70ab38ec0248964a,
4635            fidl::encoding::DynamicFlags::empty(),
4636        )
4637    }
4638}
4639
4640pub struct OpenTargetEventReporterEventStream {
4641    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
4642}
4643
4644impl std::marker::Unpin for OpenTargetEventReporterEventStream {}
4645
4646impl futures::stream::FusedStream for OpenTargetEventReporterEventStream {
4647    fn is_terminated(&self) -> bool {
4648        self.event_receiver.is_terminated()
4649    }
4650}
4651
4652impl futures::Stream for OpenTargetEventReporterEventStream {
4653    type Item = Result<OpenTargetEventReporterEvent, fidl::Error>;
4654
4655    fn poll_next(
4656        mut self: std::pin::Pin<&mut Self>,
4657        cx: &mut std::task::Context<'_>,
4658    ) -> std::task::Poll<Option<Self::Item>> {
4659        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4660            &mut self.event_receiver,
4661            cx
4662        )?) {
4663            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEventReporterEvent::decode(buf))),
4664            None => std::task::Poll::Ready(None),
4665        }
4666    }
4667}
4668
4669#[derive(Debug)]
4670pub enum OpenTargetEventReporterEvent {}
4671
4672impl OpenTargetEventReporterEvent {
4673    /// Decodes a message buffer as a [`OpenTargetEventReporterEvent`].
4674    fn decode(
4675        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4676    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4677        let (bytes, _handles) = buf.split_mut();
4678        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4679        debug_assert_eq!(tx_header.tx_id, 0);
4680        match tx_header.ordinal {
4681            _ => Err(fidl::Error::UnknownOrdinal {
4682                ordinal: tx_header.ordinal,
4683                protocol_name:
4684                    <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4685            }),
4686        }
4687    }
4688}
4689
4690/// A Stream of incoming requests for fidl.clientsuite/OpenTargetEventReporter.
4691pub struct OpenTargetEventReporterRequestStream {
4692    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4693    is_terminated: bool,
4694}
4695
4696impl std::marker::Unpin for OpenTargetEventReporterRequestStream {}
4697
4698impl futures::stream::FusedStream for OpenTargetEventReporterRequestStream {
4699    fn is_terminated(&self) -> bool {
4700        self.is_terminated
4701    }
4702}
4703
4704impl fidl::endpoints::RequestStream for OpenTargetEventReporterRequestStream {
4705    type Protocol = OpenTargetEventReporterMarker;
4706    type ControlHandle = OpenTargetEventReporterControlHandle;
4707
4708    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
4709        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4710    }
4711
4712    fn control_handle(&self) -> Self::ControlHandle {
4713        OpenTargetEventReporterControlHandle { inner: self.inner.clone() }
4714    }
4715
4716    fn into_inner(
4717        self,
4718    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
4719    {
4720        (self.inner, self.is_terminated)
4721    }
4722
4723    fn from_inner(
4724        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4725        is_terminated: bool,
4726    ) -> Self {
4727        Self { inner, is_terminated }
4728    }
4729}
4730
4731impl futures::Stream for OpenTargetEventReporterRequestStream {
4732    type Item = Result<OpenTargetEventReporterRequest, fidl::Error>;
4733
4734    fn poll_next(
4735        mut self: std::pin::Pin<&mut Self>,
4736        cx: &mut std::task::Context<'_>,
4737    ) -> std::task::Poll<Option<Self::Item>> {
4738        let this = &mut *self;
4739        if this.inner.check_shutdown(cx) {
4740            this.is_terminated = true;
4741            return std::task::Poll::Ready(None);
4742        }
4743        if this.is_terminated {
4744            panic!("polled OpenTargetEventReporterRequestStream after completion");
4745        }
4746        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
4747            |bytes, handles| {
4748                match this.inner.channel().read_etc(cx, bytes, handles) {
4749                    std::task::Poll::Ready(Ok(())) => {}
4750                    std::task::Poll::Pending => return std::task::Poll::Pending,
4751                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
4752                        this.is_terminated = true;
4753                        return std::task::Poll::Ready(None);
4754                    }
4755                    std::task::Poll::Ready(Err(e)) => {
4756                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4757                            e.into(),
4758                        ))))
4759                    }
4760                }
4761
4762                // A message has been received from the channel
4763                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4764
4765                std::task::Poll::Ready(Some(match header.ordinal {
4766                0x70ab38ec0248964a => {
4767                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4768                    let mut req = fidl::new_empty!(OpenTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
4769                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<OpenTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
4770                    let control_handle = OpenTargetEventReporterControlHandle {
4771                        inner: this.inner.clone(),
4772                    };
4773                    Ok(OpenTargetEventReporterRequest::ReportEvent {payload: req,
4774                        control_handle,
4775                    })
4776                }
4777                _ => Err(fidl::Error::UnknownOrdinal {
4778                    ordinal: header.ordinal,
4779                    protocol_name: <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4780                }),
4781            }))
4782            },
4783        )
4784    }
4785}
4786
4787#[derive(Debug)]
4788pub enum OpenTargetEventReporterRequest {
4789    ReportEvent {
4790        payload: OpenTargetEventReport,
4791        control_handle: OpenTargetEventReporterControlHandle,
4792    },
4793}
4794
4795impl OpenTargetEventReporterRequest {
4796    #[allow(irrefutable_let_patterns)]
4797    pub fn into_report_event(
4798        self,
4799    ) -> Option<(OpenTargetEventReport, OpenTargetEventReporterControlHandle)> {
4800        if let OpenTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
4801            Some((payload, control_handle))
4802        } else {
4803            None
4804        }
4805    }
4806
4807    /// Name of the method defined in FIDL
4808    pub fn method_name(&self) -> &'static str {
4809        match *self {
4810            OpenTargetEventReporterRequest::ReportEvent { .. } => "report_event",
4811        }
4812    }
4813}
4814
4815#[derive(Debug, Clone)]
4816pub struct OpenTargetEventReporterControlHandle {
4817    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4818}
4819
4820impl fidl::endpoints::ControlHandle for OpenTargetEventReporterControlHandle {
4821    fn shutdown(&self) {
4822        self.inner.shutdown()
4823    }
4824    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4825        self.inner.shutdown_with_epitaph(status)
4826    }
4827
4828    fn is_closed(&self) -> bool {
4829        self.inner.channel().is_closed()
4830    }
4831    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4832        self.inner.channel().on_closed()
4833    }
4834
4835    #[cfg(target_os = "fuchsia")]
4836    fn signal_peer(
4837        &self,
4838        clear_mask: zx::Signals,
4839        set_mask: zx::Signals,
4840    ) -> Result<(), zx_status::Status> {
4841        use fidl::Peered;
4842        self.inner.channel().signal_peer(clear_mask, set_mask)
4843    }
4844}
4845
4846impl OpenTargetEventReporterControlHandle {}
4847
4848#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4849pub struct RunnerMarker;
4850
4851impl fidl::endpoints::ProtocolMarker for RunnerMarker {
4852    type Proxy = RunnerProxy;
4853    type RequestStream = RunnerRequestStream;
4854    #[cfg(target_os = "fuchsia")]
4855    type SynchronousProxy = RunnerSynchronousProxy;
4856
4857    const DEBUG_NAME: &'static str = "fidl.clientsuite.Runner";
4858}
4859impl fidl::endpoints::DiscoverableProtocolMarker for RunnerMarker {}
4860
4861pub trait RunnerProxyInterface: Send + Sync {
4862    type GetVersionResponseFut: std::future::Future<Output = Result<u64, fidl::Error>> + Send;
4863    fn r#get_version(&self) -> Self::GetVersionResponseFut;
4864    type IsTestEnabledResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
4865    fn r#is_test_enabled(&self, test: Test) -> Self::IsTestEnabledResponseFut;
4866    type CheckAliveResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
4867    fn r#check_alive(&self) -> Self::CheckAliveResponseFut;
4868    type GetBindingsPropertiesResponseFut: std::future::Future<Output = Result<BindingsProperties, fidl::Error>>
4869        + Send;
4870    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut;
4871    type CallTwoWayNoPayloadResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4872        + Send;
4873    fn r#call_two_way_no_payload(
4874        &self,
4875        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4876    ) -> Self::CallTwoWayNoPayloadResponseFut;
4877    type CallTwoWayStructPayloadResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
4878        + Send;
4879    fn r#call_two_way_struct_payload(
4880        &self,
4881        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4882    ) -> Self::CallTwoWayStructPayloadResponseFut;
4883    type CallTwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TableResultClassification, fidl::Error>>
4884        + Send;
4885    fn r#call_two_way_table_payload(
4886        &self,
4887        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4888    ) -> Self::CallTwoWayTablePayloadResponseFut;
4889    type CallTwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionResultClassification, fidl::Error>>
4890        + Send;
4891    fn r#call_two_way_union_payload(
4892        &self,
4893        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4894    ) -> Self::CallTwoWayUnionPayloadResponseFut;
4895    type CallTwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
4896        + Send;
4897    fn r#call_two_way_struct_payload_err(
4898        &self,
4899        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4900    ) -> Self::CallTwoWayStructPayloadErrResponseFut;
4901    type CallTwoWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4902        + Send;
4903    fn r#call_two_way_struct_request(
4904        &self,
4905        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4906        request: &NonEmptyPayload,
4907    ) -> Self::CallTwoWayStructRequestResponseFut;
4908    type CallTwoWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4909        + Send;
4910    fn r#call_two_way_table_request(
4911        &self,
4912        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4913        request: &TablePayload,
4914    ) -> Self::CallTwoWayTableRequestResponseFut;
4915    type CallTwoWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4916        + Send;
4917    fn r#call_two_way_union_request(
4918        &self,
4919        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4920        request: &UnionPayload,
4921    ) -> Self::CallTwoWayUnionRequestResponseFut;
4922    type CallOneWayNoRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4923        + Send;
4924    fn r#call_one_way_no_request(
4925        &self,
4926        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4927    ) -> Self::CallOneWayNoRequestResponseFut;
4928    type CallOneWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4929        + Send;
4930    fn r#call_one_way_struct_request(
4931        &self,
4932        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4933        request: &NonEmptyPayload,
4934    ) -> Self::CallOneWayStructRequestResponseFut;
4935    type CallOneWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4936        + Send;
4937    fn r#call_one_way_table_request(
4938        &self,
4939        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4940        request: &TablePayload,
4941    ) -> Self::CallOneWayTableRequestResponseFut;
4942    type CallOneWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4943        + Send;
4944    fn r#call_one_way_union_request(
4945        &self,
4946        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
4947        request: &UnionPayload,
4948    ) -> Self::CallOneWayUnionRequestResponseFut;
4949    type CallStrictOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4950        + Send;
4951    fn r#call_strict_one_way(
4952        &self,
4953        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4954    ) -> Self::CallStrictOneWayResponseFut;
4955    type CallFlexibleOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4956        + Send;
4957    fn r#call_flexible_one_way(
4958        &self,
4959        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4960    ) -> Self::CallFlexibleOneWayResponseFut;
4961    type CallStrictTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4962        + Send;
4963    fn r#call_strict_two_way(
4964        &self,
4965        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4966    ) -> Self::CallStrictTwoWayResponseFut;
4967    type CallStrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
4968        + Send;
4969    fn r#call_strict_two_way_fields(
4970        &self,
4971        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4972    ) -> Self::CallStrictTwoWayFieldsResponseFut;
4973    type CallStrictTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
4974        + Send;
4975    fn r#call_strict_two_way_err(
4976        &self,
4977        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4978    ) -> Self::CallStrictTwoWayErrResponseFut;
4979    type CallStrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
4980        + Send;
4981    fn r#call_strict_two_way_fields_err(
4982        &self,
4983        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4984    ) -> Self::CallStrictTwoWayFieldsErrResponseFut;
4985    type CallFlexibleTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4986        + Send;
4987    fn r#call_flexible_two_way(
4988        &self,
4989        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4990    ) -> Self::CallFlexibleTwoWayResponseFut;
4991    type CallFlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
4992        + Send;
4993    fn r#call_flexible_two_way_fields(
4994        &self,
4995        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
4996    ) -> Self::CallFlexibleTwoWayFieldsResponseFut;
4997    type CallFlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
4998        + Send;
4999    fn r#call_flexible_two_way_err(
5000        &self,
5001        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5002    ) -> Self::CallFlexibleTwoWayErrResponseFut;
5003    type CallFlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5004        + Send;
5005    fn r#call_flexible_two_way_fields_err(
5006        &self,
5007        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5008    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut;
5009    type ReceiveClosedEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
5010        + Send;
5011    fn r#receive_closed_events(
5012        &self,
5013        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5014        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5015    ) -> Self::ReceiveClosedEventsResponseFut;
5016    type ReceiveAjarEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5017    fn r#receive_ajar_events(
5018        &self,
5019        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5020        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5021    ) -> Self::ReceiveAjarEventsResponseFut;
5022    type ReceiveOpenEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5023    fn r#receive_open_events(
5024        &self,
5025        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5026        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5027    ) -> Self::ReceiveOpenEventsResponseFut;
5028}
5029#[derive(Debug)]
5030#[cfg(target_os = "fuchsia")]
5031pub struct RunnerSynchronousProxy {
5032    client: fidl::client::sync::Client,
5033}
5034
5035#[cfg(target_os = "fuchsia")]
5036impl fidl::endpoints::SynchronousProxy for RunnerSynchronousProxy {
5037    type Proxy = RunnerProxy;
5038    type Protocol = RunnerMarker;
5039
5040    fn from_channel(inner: fidl::Channel) -> Self {
5041        Self::new(inner)
5042    }
5043
5044    fn into_channel(self) -> fidl::Channel {
5045        self.client.into_channel()
5046    }
5047
5048    fn as_channel(&self) -> &fidl::Channel {
5049        self.client.as_channel()
5050    }
5051}
5052
5053#[cfg(target_os = "fuchsia")]
5054impl RunnerSynchronousProxy {
5055    pub fn new(channel: fidl::Channel) -> Self {
5056        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5057        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
5058    }
5059
5060    pub fn into_channel(self) -> fidl::Channel {
5061        self.client.into_channel()
5062    }
5063
5064    /// Waits until an event arrives and returns it. It is safe for other
5065    /// threads to make concurrent requests while waiting for an event.
5066    pub fn wait_for_event(
5067        &self,
5068        deadline: zx::MonotonicInstant,
5069    ) -> Result<RunnerEvent, fidl::Error> {
5070        RunnerEvent::decode(self.client.wait_for_event(deadline)?)
5071    }
5072
5073    pub fn r#get_version(&self, ___deadline: zx::MonotonicInstant) -> Result<u64, fidl::Error> {
5074        let _response =
5075            self.client.send_query::<fidl::encoding::EmptyPayload, RunnerGetVersionResponse>(
5076                (),
5077                0x555d1430b913cdd4,
5078                fidl::encoding::DynamicFlags::empty(),
5079                ___deadline,
5080            )?;
5081        Ok(_response.version)
5082    }
5083
5084    pub fn r#is_test_enabled(
5085        &self,
5086        mut test: Test,
5087        ___deadline: zx::MonotonicInstant,
5088    ) -> Result<bool, fidl::Error> {
5089        let _response =
5090            self.client.send_query::<RunnerIsTestEnabledRequest, RunnerIsTestEnabledResponse>(
5091                (test,),
5092                0x755bc493368d7c50,
5093                fidl::encoding::DynamicFlags::empty(),
5094                ___deadline,
5095            )?;
5096        Ok(_response.is_enabled)
5097    }
5098
5099    pub fn r#check_alive(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
5100        let _response =
5101            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
5102                (),
5103                0x5a77b04abdfde130,
5104                fidl::encoding::DynamicFlags::empty(),
5105                ___deadline,
5106            )?;
5107        Ok(_response)
5108    }
5109
5110    pub fn r#get_bindings_properties(
5111        &self,
5112        ___deadline: zx::MonotonicInstant,
5113    ) -> Result<BindingsProperties, fidl::Error> {
5114        let _response =
5115            self.client.send_query::<fidl::encoding::EmptyPayload, BindingsProperties>(
5116                (),
5117                0x76b5610bfd4fa636,
5118                fidl::encoding::DynamicFlags::empty(),
5119                ___deadline,
5120            )?;
5121        Ok(_response)
5122    }
5123
5124    pub fn r#call_two_way_no_payload(
5125        &self,
5126        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5127        ___deadline: zx::MonotonicInstant,
5128    ) -> Result<EmptyResultClassification, fidl::Error> {
5129        let _response =
5130            self.client.send_query::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
5131                (target,),
5132                0x53ac710c20b320a1,
5133                fidl::encoding::DynamicFlags::empty(),
5134                ___deadline,
5135            )?;
5136        Ok(_response)
5137    }
5138
5139    pub fn r#call_two_way_struct_payload(
5140        &self,
5141        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5142        ___deadline: zx::MonotonicInstant,
5143    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5144        let _response = self
5145            .client
5146            .send_query::<RunnerCallTwoWayStructPayloadRequest, NonEmptyResultClassification>(
5147                (target,),
5148                0x24e98c668499b946,
5149                fidl::encoding::DynamicFlags::empty(),
5150                ___deadline,
5151            )?;
5152        Ok(_response)
5153    }
5154
5155    pub fn r#call_two_way_table_payload(
5156        &self,
5157        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5158        ___deadline: zx::MonotonicInstant,
5159    ) -> Result<TableResultClassification, fidl::Error> {
5160        let _response = self
5161            .client
5162            .send_query::<RunnerCallTwoWayTablePayloadRequest, TableResultClassification>(
5163                (target,),
5164                0x72e428e1605b76a,
5165                fidl::encoding::DynamicFlags::empty(),
5166                ___deadline,
5167            )?;
5168        Ok(_response)
5169    }
5170
5171    pub fn r#call_two_way_union_payload(
5172        &self,
5173        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5174        ___deadline: zx::MonotonicInstant,
5175    ) -> Result<UnionResultClassification, fidl::Error> {
5176        let _response = self
5177            .client
5178            .send_query::<RunnerCallTwoWayUnionPayloadRequest, UnionResultClassification>(
5179                (target,),
5180                0x7dc9d67218343860,
5181                fidl::encoding::DynamicFlags::empty(),
5182                ___deadline,
5183            )?;
5184        Ok(_response)
5185    }
5186
5187    pub fn r#call_two_way_struct_payload_err(
5188        &self,
5189        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5190        ___deadline: zx::MonotonicInstant,
5191    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5192        let _response = self.client.send_query::<
5193            RunnerCallTwoWayStructPayloadErrRequest,
5194            NonEmptyResultWithErrorClassification,
5195        >(
5196            (target,),
5197            0x2b07a57942c5f6e5,
5198            fidl::encoding::DynamicFlags::empty(),
5199            ___deadline,
5200        )?;
5201        Ok(_response)
5202    }
5203
5204    pub fn r#call_two_way_struct_request(
5205        &self,
5206        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5207        mut request: &NonEmptyPayload,
5208        ___deadline: zx::MonotonicInstant,
5209    ) -> Result<EmptyResultClassification, fidl::Error> {
5210        let _response = self
5211            .client
5212            .send_query::<RunnerCallTwoWayStructRequestRequest, EmptyResultClassification>(
5213                (target, request),
5214                0x7c00a6ba2e6c9b45,
5215                fidl::encoding::DynamicFlags::empty(),
5216                ___deadline,
5217            )?;
5218        Ok(_response)
5219    }
5220
5221    pub fn r#call_two_way_table_request(
5222        &self,
5223        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5224        mut request: &TablePayload,
5225        ___deadline: zx::MonotonicInstant,
5226    ) -> Result<EmptyResultClassification, fidl::Error> {
5227        let _response = self
5228            .client
5229            .send_query::<RunnerCallTwoWayTableRequestRequest, EmptyResultClassification>(
5230                (target, request),
5231                0x641763237d3885be,
5232                fidl::encoding::DynamicFlags::empty(),
5233                ___deadline,
5234            )?;
5235        Ok(_response)
5236    }
5237
5238    pub fn r#call_two_way_union_request(
5239        &self,
5240        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5241        mut request: &UnionPayload,
5242        ___deadline: zx::MonotonicInstant,
5243    ) -> Result<EmptyResultClassification, fidl::Error> {
5244        let _response = self
5245            .client
5246            .send_query::<RunnerCallTwoWayUnionRequestRequest, EmptyResultClassification>(
5247                (target, request),
5248                0x4be5f061df42619e,
5249                fidl::encoding::DynamicFlags::empty(),
5250                ___deadline,
5251            )?;
5252        Ok(_response)
5253    }
5254
5255    pub fn r#call_one_way_no_request(
5256        &self,
5257        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5258        ___deadline: zx::MonotonicInstant,
5259    ) -> Result<EmptyResultClassification, fidl::Error> {
5260        let _response =
5261            self.client.send_query::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
5262                (target,),
5263                0x24b6eea8cbdccc09,
5264                fidl::encoding::DynamicFlags::empty(),
5265                ___deadline,
5266            )?;
5267        Ok(_response)
5268    }
5269
5270    pub fn r#call_one_way_struct_request(
5271        &self,
5272        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5273        mut request: &NonEmptyPayload,
5274        ___deadline: zx::MonotonicInstant,
5275    ) -> Result<EmptyResultClassification, fidl::Error> {
5276        let _response = self
5277            .client
5278            .send_query::<RunnerCallOneWayStructRequestRequest, EmptyResultClassification>(
5279                (target, request),
5280                0x352a2907a0fcb420,
5281                fidl::encoding::DynamicFlags::empty(),
5282                ___deadline,
5283            )?;
5284        Ok(_response)
5285    }
5286
5287    pub fn r#call_one_way_table_request(
5288        &self,
5289        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5290        mut request: &TablePayload,
5291        ___deadline: zx::MonotonicInstant,
5292    ) -> Result<EmptyResultClassification, fidl::Error> {
5293        let _response = self
5294            .client
5295            .send_query::<RunnerCallOneWayTableRequestRequest, EmptyResultClassification>(
5296                (target, request),
5297                0x734121bf8bf336ef,
5298                fidl::encoding::DynamicFlags::empty(),
5299                ___deadline,
5300            )?;
5301        Ok(_response)
5302    }
5303
5304    pub fn r#call_one_way_union_request(
5305        &self,
5306        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5307        mut request: &UnionPayload,
5308        ___deadline: zx::MonotonicInstant,
5309    ) -> Result<EmptyResultClassification, fidl::Error> {
5310        let _response = self
5311            .client
5312            .send_query::<RunnerCallOneWayUnionRequestRequest, EmptyResultClassification>(
5313                (target, request),
5314                0x9be8e5eb7d50eb6,
5315                fidl::encoding::DynamicFlags::empty(),
5316                ___deadline,
5317            )?;
5318        Ok(_response)
5319    }
5320
5321    pub fn r#call_strict_one_way(
5322        &self,
5323        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5324        ___deadline: zx::MonotonicInstant,
5325    ) -> Result<EmptyResultClassification, fidl::Error> {
5326        let _response =
5327            self.client.send_query::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
5328                (target,),
5329                0x4edd0b6f52c0446b,
5330                fidl::encoding::DynamicFlags::empty(),
5331                ___deadline,
5332            )?;
5333        Ok(_response)
5334    }
5335
5336    pub fn r#call_flexible_one_way(
5337        &self,
5338        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5339        ___deadline: zx::MonotonicInstant,
5340    ) -> Result<EmptyResultClassification, fidl::Error> {
5341        let _response =
5342            self.client.send_query::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
5343                (target,),
5344                0x7253f10a77dfe817,
5345                fidl::encoding::DynamicFlags::empty(),
5346                ___deadline,
5347            )?;
5348        Ok(_response)
5349    }
5350
5351    pub fn r#call_strict_two_way(
5352        &self,
5353        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5354        ___deadline: zx::MonotonicInstant,
5355    ) -> Result<EmptyResultClassification, fidl::Error> {
5356        let _response =
5357            self.client.send_query::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
5358                (target,),
5359                0x1fa9fb7414aedd27,
5360                fidl::encoding::DynamicFlags::empty(),
5361                ___deadline,
5362            )?;
5363        Ok(_response)
5364    }
5365
5366    pub fn r#call_strict_two_way_fields(
5367        &self,
5368        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5369        ___deadline: zx::MonotonicInstant,
5370    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5371        let _response = self
5372            .client
5373            .send_query::<RunnerCallStrictTwoWayFieldsRequest, NonEmptyResultClassification>(
5374                (target,),
5375                0x6f690e00ebf6f123,
5376                fidl::encoding::DynamicFlags::empty(),
5377                ___deadline,
5378            )?;
5379        Ok(_response)
5380    }
5381
5382    pub fn r#call_strict_two_way_err(
5383        &self,
5384        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5385        ___deadline: zx::MonotonicInstant,
5386    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5387        let _response = self
5388            .client
5389            .send_query::<RunnerCallStrictTwoWayErrRequest, EmptyResultWithErrorClassification>(
5390                (target,),
5391                0x51d6bc7cf6cbaf1a,
5392                fidl::encoding::DynamicFlags::empty(),
5393                ___deadline,
5394            )?;
5395        Ok(_response)
5396    }
5397
5398    pub fn r#call_strict_two_way_fields_err(
5399        &self,
5400        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5401        ___deadline: zx::MonotonicInstant,
5402    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5403        let _response = self.client.send_query::<
5404            RunnerCallStrictTwoWayFieldsErrRequest,
5405            NonEmptyResultWithErrorClassification,
5406        >(
5407            (target,),
5408            0x6fa31ced05074c05,
5409            fidl::encoding::DynamicFlags::empty(),
5410            ___deadline,
5411        )?;
5412        Ok(_response)
5413    }
5414
5415    pub fn r#call_flexible_two_way(
5416        &self,
5417        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5418        ___deadline: zx::MonotonicInstant,
5419    ) -> Result<EmptyResultClassification, fidl::Error> {
5420        let _response =
5421            self.client.send_query::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
5422                (target,),
5423                0x411f70724876d49,
5424                fidl::encoding::DynamicFlags::empty(),
5425                ___deadline,
5426            )?;
5427        Ok(_response)
5428    }
5429
5430    pub fn r#call_flexible_two_way_fields(
5431        &self,
5432        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5433        ___deadline: zx::MonotonicInstant,
5434    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5435        let _response = self
5436            .client
5437            .send_query::<RunnerCallFlexibleTwoWayFieldsRequest, NonEmptyResultClassification>(
5438                (target,),
5439                0x330996b623598eed,
5440                fidl::encoding::DynamicFlags::empty(),
5441                ___deadline,
5442            )?;
5443        Ok(_response)
5444    }
5445
5446    pub fn r#call_flexible_two_way_err(
5447        &self,
5448        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5449        ___deadline: zx::MonotonicInstant,
5450    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5451        let _response = self
5452            .client
5453            .send_query::<RunnerCallFlexibleTwoWayErrRequest, EmptyResultWithErrorClassification>(
5454                (target,),
5455                0x5ddbf88a353a2a57,
5456                fidl::encoding::DynamicFlags::empty(),
5457                ___deadline,
5458            )?;
5459        Ok(_response)
5460    }
5461
5462    pub fn r#call_flexible_two_way_fields_err(
5463        &self,
5464        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5465        ___deadline: zx::MonotonicInstant,
5466    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5467        let _response = self.client.send_query::<
5468            RunnerCallFlexibleTwoWayFieldsErrRequest,
5469            NonEmptyResultWithErrorClassification,
5470        >(
5471            (target,),
5472            0x7ae309383b07048e,
5473            fidl::encoding::DynamicFlags::empty(),
5474            ___deadline,
5475        )?;
5476        Ok(_response)
5477    }
5478
5479    pub fn r#receive_closed_events(
5480        &self,
5481        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5482        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5483        ___deadline: zx::MonotonicInstant,
5484    ) -> Result<(), fidl::Error> {
5485        let _response = self
5486            .client
5487            .send_query::<RunnerReceiveClosedEventsRequest, fidl::encoding::EmptyPayload>(
5488                (target, reporter),
5489                0x48da834910571aeb,
5490                fidl::encoding::DynamicFlags::empty(),
5491                ___deadline,
5492            )?;
5493        Ok(_response)
5494    }
5495
5496    pub fn r#receive_ajar_events(
5497        &self,
5498        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5499        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5500        ___deadline: zx::MonotonicInstant,
5501    ) -> Result<(), fidl::Error> {
5502        let _response = self
5503            .client
5504            .send_query::<RunnerReceiveAjarEventsRequest, fidl::encoding::EmptyPayload>(
5505                (target, reporter),
5506                0xc5662b9a9c007a3,
5507                fidl::encoding::DynamicFlags::empty(),
5508                ___deadline,
5509            )?;
5510        Ok(_response)
5511    }
5512
5513    pub fn r#receive_open_events(
5514        &self,
5515        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5516        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5517        ___deadline: zx::MonotonicInstant,
5518    ) -> Result<(), fidl::Error> {
5519        let _response = self
5520            .client
5521            .send_query::<RunnerReceiveOpenEventsRequest, fidl::encoding::EmptyPayload>(
5522                (target, reporter),
5523                0x79a7073fd18edbdf,
5524                fidl::encoding::DynamicFlags::empty(),
5525                ___deadline,
5526            )?;
5527        Ok(_response)
5528    }
5529}
5530
5531#[derive(Debug, Clone)]
5532pub struct RunnerProxy {
5533    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5534}
5535
5536impl fidl::endpoints::Proxy for RunnerProxy {
5537    type Protocol = RunnerMarker;
5538
5539    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5540        Self::new(inner)
5541    }
5542
5543    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5544        self.client.into_channel().map_err(|client| Self { client })
5545    }
5546
5547    fn as_channel(&self) -> &::fidl::AsyncChannel {
5548        self.client.as_channel()
5549    }
5550}
5551
5552impl RunnerProxy {
5553    /// Create a new Proxy for fidl.clientsuite/Runner.
5554    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5555        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5556        Self { client: fidl::client::Client::new(channel, protocol_name) }
5557    }
5558
5559    /// Get a Stream of events from the remote end of the protocol.
5560    ///
5561    /// # Panics
5562    ///
5563    /// Panics if the event stream was already taken.
5564    pub fn take_event_stream(&self) -> RunnerEventStream {
5565        RunnerEventStream { event_receiver: self.client.take_event_receiver() }
5566    }
5567
5568    pub fn r#get_version(
5569        &self,
5570    ) -> fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect> {
5571        RunnerProxyInterface::r#get_version(self)
5572    }
5573
5574    pub fn r#is_test_enabled(
5575        &self,
5576        mut test: Test,
5577    ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
5578        RunnerProxyInterface::r#is_test_enabled(self, test)
5579    }
5580
5581    pub fn r#check_alive(
5582        &self,
5583    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5584        RunnerProxyInterface::r#check_alive(self)
5585    }
5586
5587    pub fn r#get_bindings_properties(
5588        &self,
5589    ) -> fidl::client::QueryResponseFut<
5590        BindingsProperties,
5591        fidl::encoding::DefaultFuchsiaResourceDialect,
5592    > {
5593        RunnerProxyInterface::r#get_bindings_properties(self)
5594    }
5595
5596    pub fn r#call_two_way_no_payload(
5597        &self,
5598        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5599    ) -> fidl::client::QueryResponseFut<
5600        EmptyResultClassification,
5601        fidl::encoding::DefaultFuchsiaResourceDialect,
5602    > {
5603        RunnerProxyInterface::r#call_two_way_no_payload(self, target)
5604    }
5605
5606    pub fn r#call_two_way_struct_payload(
5607        &self,
5608        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5609    ) -> fidl::client::QueryResponseFut<
5610        NonEmptyResultClassification,
5611        fidl::encoding::DefaultFuchsiaResourceDialect,
5612    > {
5613        RunnerProxyInterface::r#call_two_way_struct_payload(self, target)
5614    }
5615
5616    pub fn r#call_two_way_table_payload(
5617        &self,
5618        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5619    ) -> fidl::client::QueryResponseFut<
5620        TableResultClassification,
5621        fidl::encoding::DefaultFuchsiaResourceDialect,
5622    > {
5623        RunnerProxyInterface::r#call_two_way_table_payload(self, target)
5624    }
5625
5626    pub fn r#call_two_way_union_payload(
5627        &self,
5628        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5629    ) -> fidl::client::QueryResponseFut<
5630        UnionResultClassification,
5631        fidl::encoding::DefaultFuchsiaResourceDialect,
5632    > {
5633        RunnerProxyInterface::r#call_two_way_union_payload(self, target)
5634    }
5635
5636    pub fn r#call_two_way_struct_payload_err(
5637        &self,
5638        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5639    ) -> fidl::client::QueryResponseFut<
5640        NonEmptyResultWithErrorClassification,
5641        fidl::encoding::DefaultFuchsiaResourceDialect,
5642    > {
5643        RunnerProxyInterface::r#call_two_way_struct_payload_err(self, target)
5644    }
5645
5646    pub fn r#call_two_way_struct_request(
5647        &self,
5648        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5649        mut request: &NonEmptyPayload,
5650    ) -> fidl::client::QueryResponseFut<
5651        EmptyResultClassification,
5652        fidl::encoding::DefaultFuchsiaResourceDialect,
5653    > {
5654        RunnerProxyInterface::r#call_two_way_struct_request(self, target, request)
5655    }
5656
5657    pub fn r#call_two_way_table_request(
5658        &self,
5659        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5660        mut request: &TablePayload,
5661    ) -> fidl::client::QueryResponseFut<
5662        EmptyResultClassification,
5663        fidl::encoding::DefaultFuchsiaResourceDialect,
5664    > {
5665        RunnerProxyInterface::r#call_two_way_table_request(self, target, request)
5666    }
5667
5668    pub fn r#call_two_way_union_request(
5669        &self,
5670        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5671        mut request: &UnionPayload,
5672    ) -> fidl::client::QueryResponseFut<
5673        EmptyResultClassification,
5674        fidl::encoding::DefaultFuchsiaResourceDialect,
5675    > {
5676        RunnerProxyInterface::r#call_two_way_union_request(self, target, request)
5677    }
5678
5679    pub fn r#call_one_way_no_request(
5680        &self,
5681        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5682    ) -> fidl::client::QueryResponseFut<
5683        EmptyResultClassification,
5684        fidl::encoding::DefaultFuchsiaResourceDialect,
5685    > {
5686        RunnerProxyInterface::r#call_one_way_no_request(self, target)
5687    }
5688
5689    pub fn r#call_one_way_struct_request(
5690        &self,
5691        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5692        mut request: &NonEmptyPayload,
5693    ) -> fidl::client::QueryResponseFut<
5694        EmptyResultClassification,
5695        fidl::encoding::DefaultFuchsiaResourceDialect,
5696    > {
5697        RunnerProxyInterface::r#call_one_way_struct_request(self, target, request)
5698    }
5699
5700    pub fn r#call_one_way_table_request(
5701        &self,
5702        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5703        mut request: &TablePayload,
5704    ) -> fidl::client::QueryResponseFut<
5705        EmptyResultClassification,
5706        fidl::encoding::DefaultFuchsiaResourceDialect,
5707    > {
5708        RunnerProxyInterface::r#call_one_way_table_request(self, target, request)
5709    }
5710
5711    pub fn r#call_one_way_union_request(
5712        &self,
5713        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5714        mut request: &UnionPayload,
5715    ) -> fidl::client::QueryResponseFut<
5716        EmptyResultClassification,
5717        fidl::encoding::DefaultFuchsiaResourceDialect,
5718    > {
5719        RunnerProxyInterface::r#call_one_way_union_request(self, target, request)
5720    }
5721
5722    pub fn r#call_strict_one_way(
5723        &self,
5724        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5725    ) -> fidl::client::QueryResponseFut<
5726        EmptyResultClassification,
5727        fidl::encoding::DefaultFuchsiaResourceDialect,
5728    > {
5729        RunnerProxyInterface::r#call_strict_one_way(self, target)
5730    }
5731
5732    pub fn r#call_flexible_one_way(
5733        &self,
5734        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5735    ) -> fidl::client::QueryResponseFut<
5736        EmptyResultClassification,
5737        fidl::encoding::DefaultFuchsiaResourceDialect,
5738    > {
5739        RunnerProxyInterface::r#call_flexible_one_way(self, target)
5740    }
5741
5742    pub fn r#call_strict_two_way(
5743        &self,
5744        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5745    ) -> fidl::client::QueryResponseFut<
5746        EmptyResultClassification,
5747        fidl::encoding::DefaultFuchsiaResourceDialect,
5748    > {
5749        RunnerProxyInterface::r#call_strict_two_way(self, target)
5750    }
5751
5752    pub fn r#call_strict_two_way_fields(
5753        &self,
5754        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5755    ) -> fidl::client::QueryResponseFut<
5756        NonEmptyResultClassification,
5757        fidl::encoding::DefaultFuchsiaResourceDialect,
5758    > {
5759        RunnerProxyInterface::r#call_strict_two_way_fields(self, target)
5760    }
5761
5762    pub fn r#call_strict_two_way_err(
5763        &self,
5764        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5765    ) -> fidl::client::QueryResponseFut<
5766        EmptyResultWithErrorClassification,
5767        fidl::encoding::DefaultFuchsiaResourceDialect,
5768    > {
5769        RunnerProxyInterface::r#call_strict_two_way_err(self, target)
5770    }
5771
5772    pub fn r#call_strict_two_way_fields_err(
5773        &self,
5774        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5775    ) -> fidl::client::QueryResponseFut<
5776        NonEmptyResultWithErrorClassification,
5777        fidl::encoding::DefaultFuchsiaResourceDialect,
5778    > {
5779        RunnerProxyInterface::r#call_strict_two_way_fields_err(self, target)
5780    }
5781
5782    pub fn r#call_flexible_two_way(
5783        &self,
5784        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5785    ) -> fidl::client::QueryResponseFut<
5786        EmptyResultClassification,
5787        fidl::encoding::DefaultFuchsiaResourceDialect,
5788    > {
5789        RunnerProxyInterface::r#call_flexible_two_way(self, target)
5790    }
5791
5792    pub fn r#call_flexible_two_way_fields(
5793        &self,
5794        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5795    ) -> fidl::client::QueryResponseFut<
5796        NonEmptyResultClassification,
5797        fidl::encoding::DefaultFuchsiaResourceDialect,
5798    > {
5799        RunnerProxyInterface::r#call_flexible_two_way_fields(self, target)
5800    }
5801
5802    pub fn r#call_flexible_two_way_err(
5803        &self,
5804        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5805    ) -> fidl::client::QueryResponseFut<
5806        EmptyResultWithErrorClassification,
5807        fidl::encoding::DefaultFuchsiaResourceDialect,
5808    > {
5809        RunnerProxyInterface::r#call_flexible_two_way_err(self, target)
5810    }
5811
5812    pub fn r#call_flexible_two_way_fields_err(
5813        &self,
5814        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5815    ) -> fidl::client::QueryResponseFut<
5816        NonEmptyResultWithErrorClassification,
5817        fidl::encoding::DefaultFuchsiaResourceDialect,
5818    > {
5819        RunnerProxyInterface::r#call_flexible_two_way_fields_err(self, target)
5820    }
5821
5822    pub fn r#receive_closed_events(
5823        &self,
5824        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5825        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5826    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5827        RunnerProxyInterface::r#receive_closed_events(self, target, reporter)
5828    }
5829
5830    pub fn r#receive_ajar_events(
5831        &self,
5832        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5833        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5834    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5835        RunnerProxyInterface::r#receive_ajar_events(self, target, reporter)
5836    }
5837
5838    pub fn r#receive_open_events(
5839        &self,
5840        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5841        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5842    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5843        RunnerProxyInterface::r#receive_open_events(self, target, reporter)
5844    }
5845}
5846
5847impl RunnerProxyInterface for RunnerProxy {
5848    type GetVersionResponseFut =
5849        fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect>;
5850    fn r#get_version(&self) -> Self::GetVersionResponseFut {
5851        fn _decode(
5852            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5853        ) -> Result<u64, fidl::Error> {
5854            let _response = fidl::client::decode_transaction_body::<
5855                RunnerGetVersionResponse,
5856                fidl::encoding::DefaultFuchsiaResourceDialect,
5857                0x555d1430b913cdd4,
5858            >(_buf?)?;
5859            Ok(_response.version)
5860        }
5861        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, u64>(
5862            (),
5863            0x555d1430b913cdd4,
5864            fidl::encoding::DynamicFlags::empty(),
5865            _decode,
5866        )
5867    }
5868
5869    type IsTestEnabledResponseFut =
5870        fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
5871    fn r#is_test_enabled(&self, mut test: Test) -> Self::IsTestEnabledResponseFut {
5872        fn _decode(
5873            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5874        ) -> Result<bool, fidl::Error> {
5875            let _response = fidl::client::decode_transaction_body::<
5876                RunnerIsTestEnabledResponse,
5877                fidl::encoding::DefaultFuchsiaResourceDialect,
5878                0x755bc493368d7c50,
5879            >(_buf?)?;
5880            Ok(_response.is_enabled)
5881        }
5882        self.client.send_query_and_decode::<RunnerIsTestEnabledRequest, bool>(
5883            (test,),
5884            0x755bc493368d7c50,
5885            fidl::encoding::DynamicFlags::empty(),
5886            _decode,
5887        )
5888    }
5889
5890    type CheckAliveResponseFut =
5891        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
5892    fn r#check_alive(&self) -> Self::CheckAliveResponseFut {
5893        fn _decode(
5894            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5895        ) -> Result<(), fidl::Error> {
5896            let _response = fidl::client::decode_transaction_body::<
5897                fidl::encoding::EmptyPayload,
5898                fidl::encoding::DefaultFuchsiaResourceDialect,
5899                0x5a77b04abdfde130,
5900            >(_buf?)?;
5901            Ok(_response)
5902        }
5903        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
5904            (),
5905            0x5a77b04abdfde130,
5906            fidl::encoding::DynamicFlags::empty(),
5907            _decode,
5908        )
5909    }
5910
5911    type GetBindingsPropertiesResponseFut = fidl::client::QueryResponseFut<
5912        BindingsProperties,
5913        fidl::encoding::DefaultFuchsiaResourceDialect,
5914    >;
5915    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut {
5916        fn _decode(
5917            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5918        ) -> Result<BindingsProperties, fidl::Error> {
5919            let _response = fidl::client::decode_transaction_body::<
5920                BindingsProperties,
5921                fidl::encoding::DefaultFuchsiaResourceDialect,
5922                0x76b5610bfd4fa636,
5923            >(_buf?)?;
5924            Ok(_response)
5925        }
5926        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BindingsProperties>(
5927            (),
5928            0x76b5610bfd4fa636,
5929            fidl::encoding::DynamicFlags::empty(),
5930            _decode,
5931        )
5932    }
5933
5934    type CallTwoWayNoPayloadResponseFut = fidl::client::QueryResponseFut<
5935        EmptyResultClassification,
5936        fidl::encoding::DefaultFuchsiaResourceDialect,
5937    >;
5938    fn r#call_two_way_no_payload(
5939        &self,
5940        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5941    ) -> Self::CallTwoWayNoPayloadResponseFut {
5942        fn _decode(
5943            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5944        ) -> Result<EmptyResultClassification, fidl::Error> {
5945            let _response = fidl::client::decode_transaction_body::<
5946                EmptyResultClassification,
5947                fidl::encoding::DefaultFuchsiaResourceDialect,
5948                0x53ac710c20b320a1,
5949            >(_buf?)?;
5950            Ok(_response)
5951        }
5952        self.client
5953            .send_query_and_decode::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
5954                (target,),
5955                0x53ac710c20b320a1,
5956                fidl::encoding::DynamicFlags::empty(),
5957                _decode,
5958            )
5959    }
5960
5961    type CallTwoWayStructPayloadResponseFut = fidl::client::QueryResponseFut<
5962        NonEmptyResultClassification,
5963        fidl::encoding::DefaultFuchsiaResourceDialect,
5964    >;
5965    fn r#call_two_way_struct_payload(
5966        &self,
5967        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5968    ) -> Self::CallTwoWayStructPayloadResponseFut {
5969        fn _decode(
5970            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
5971        ) -> Result<NonEmptyResultClassification, fidl::Error> {
5972            let _response = fidl::client::decode_transaction_body::<
5973                NonEmptyResultClassification,
5974                fidl::encoding::DefaultFuchsiaResourceDialect,
5975                0x24e98c668499b946,
5976            >(_buf?)?;
5977            Ok(_response)
5978        }
5979        self.client.send_query_and_decode::<
5980            RunnerCallTwoWayStructPayloadRequest,
5981            NonEmptyResultClassification,
5982        >(
5983            (target,),
5984            0x24e98c668499b946,
5985            fidl::encoding::DynamicFlags::empty(),
5986            _decode,
5987        )
5988    }
5989
5990    type CallTwoWayTablePayloadResponseFut = fidl::client::QueryResponseFut<
5991        TableResultClassification,
5992        fidl::encoding::DefaultFuchsiaResourceDialect,
5993    >;
5994    fn r#call_two_way_table_payload(
5995        &self,
5996        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5997    ) -> Self::CallTwoWayTablePayloadResponseFut {
5998        fn _decode(
5999            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6000        ) -> Result<TableResultClassification, fidl::Error> {
6001            let _response = fidl::client::decode_transaction_body::<
6002                TableResultClassification,
6003                fidl::encoding::DefaultFuchsiaResourceDialect,
6004                0x72e428e1605b76a,
6005            >(_buf?)?;
6006            Ok(_response)
6007        }
6008        self.client.send_query_and_decode::<
6009            RunnerCallTwoWayTablePayloadRequest,
6010            TableResultClassification,
6011        >(
6012            (target,),
6013            0x72e428e1605b76a,
6014            fidl::encoding::DynamicFlags::empty(),
6015            _decode,
6016        )
6017    }
6018
6019    type CallTwoWayUnionPayloadResponseFut = fidl::client::QueryResponseFut<
6020        UnionResultClassification,
6021        fidl::encoding::DefaultFuchsiaResourceDialect,
6022    >;
6023    fn r#call_two_way_union_payload(
6024        &self,
6025        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6026    ) -> Self::CallTwoWayUnionPayloadResponseFut {
6027        fn _decode(
6028            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6029        ) -> Result<UnionResultClassification, fidl::Error> {
6030            let _response = fidl::client::decode_transaction_body::<
6031                UnionResultClassification,
6032                fidl::encoding::DefaultFuchsiaResourceDialect,
6033                0x7dc9d67218343860,
6034            >(_buf?)?;
6035            Ok(_response)
6036        }
6037        self.client.send_query_and_decode::<
6038            RunnerCallTwoWayUnionPayloadRequest,
6039            UnionResultClassification,
6040        >(
6041            (target,),
6042            0x7dc9d67218343860,
6043            fidl::encoding::DynamicFlags::empty(),
6044            _decode,
6045        )
6046    }
6047
6048    type CallTwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
6049        NonEmptyResultWithErrorClassification,
6050        fidl::encoding::DefaultFuchsiaResourceDialect,
6051    >;
6052    fn r#call_two_way_struct_payload_err(
6053        &self,
6054        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6055    ) -> Self::CallTwoWayStructPayloadErrResponseFut {
6056        fn _decode(
6057            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6058        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6059            let _response = fidl::client::decode_transaction_body::<
6060                NonEmptyResultWithErrorClassification,
6061                fidl::encoding::DefaultFuchsiaResourceDialect,
6062                0x2b07a57942c5f6e5,
6063            >(_buf?)?;
6064            Ok(_response)
6065        }
6066        self.client.send_query_and_decode::<
6067            RunnerCallTwoWayStructPayloadErrRequest,
6068            NonEmptyResultWithErrorClassification,
6069        >(
6070            (target,),
6071            0x2b07a57942c5f6e5,
6072            fidl::encoding::DynamicFlags::empty(),
6073            _decode,
6074        )
6075    }
6076
6077    type CallTwoWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6078        EmptyResultClassification,
6079        fidl::encoding::DefaultFuchsiaResourceDialect,
6080    >;
6081    fn r#call_two_way_struct_request(
6082        &self,
6083        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6084        mut request: &NonEmptyPayload,
6085    ) -> Self::CallTwoWayStructRequestResponseFut {
6086        fn _decode(
6087            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6088        ) -> Result<EmptyResultClassification, fidl::Error> {
6089            let _response = fidl::client::decode_transaction_body::<
6090                EmptyResultClassification,
6091                fidl::encoding::DefaultFuchsiaResourceDialect,
6092                0x7c00a6ba2e6c9b45,
6093            >(_buf?)?;
6094            Ok(_response)
6095        }
6096        self.client.send_query_and_decode::<
6097            RunnerCallTwoWayStructRequestRequest,
6098            EmptyResultClassification,
6099        >(
6100            (target, request,),
6101            0x7c00a6ba2e6c9b45,
6102            fidl::encoding::DynamicFlags::empty(),
6103            _decode,
6104        )
6105    }
6106
6107    type CallTwoWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6108        EmptyResultClassification,
6109        fidl::encoding::DefaultFuchsiaResourceDialect,
6110    >;
6111    fn r#call_two_way_table_request(
6112        &self,
6113        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6114        mut request: &TablePayload,
6115    ) -> Self::CallTwoWayTableRequestResponseFut {
6116        fn _decode(
6117            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6118        ) -> Result<EmptyResultClassification, fidl::Error> {
6119            let _response = fidl::client::decode_transaction_body::<
6120                EmptyResultClassification,
6121                fidl::encoding::DefaultFuchsiaResourceDialect,
6122                0x641763237d3885be,
6123            >(_buf?)?;
6124            Ok(_response)
6125        }
6126        self.client.send_query_and_decode::<
6127            RunnerCallTwoWayTableRequestRequest,
6128            EmptyResultClassification,
6129        >(
6130            (target, request,),
6131            0x641763237d3885be,
6132            fidl::encoding::DynamicFlags::empty(),
6133            _decode,
6134        )
6135    }
6136
6137    type CallTwoWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6138        EmptyResultClassification,
6139        fidl::encoding::DefaultFuchsiaResourceDialect,
6140    >;
6141    fn r#call_two_way_union_request(
6142        &self,
6143        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6144        mut request: &UnionPayload,
6145    ) -> Self::CallTwoWayUnionRequestResponseFut {
6146        fn _decode(
6147            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6148        ) -> Result<EmptyResultClassification, fidl::Error> {
6149            let _response = fidl::client::decode_transaction_body::<
6150                EmptyResultClassification,
6151                fidl::encoding::DefaultFuchsiaResourceDialect,
6152                0x4be5f061df42619e,
6153            >(_buf?)?;
6154            Ok(_response)
6155        }
6156        self.client.send_query_and_decode::<
6157            RunnerCallTwoWayUnionRequestRequest,
6158            EmptyResultClassification,
6159        >(
6160            (target, request,),
6161            0x4be5f061df42619e,
6162            fidl::encoding::DynamicFlags::empty(),
6163            _decode,
6164        )
6165    }
6166
6167    type CallOneWayNoRequestResponseFut = fidl::client::QueryResponseFut<
6168        EmptyResultClassification,
6169        fidl::encoding::DefaultFuchsiaResourceDialect,
6170    >;
6171    fn r#call_one_way_no_request(
6172        &self,
6173        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6174    ) -> Self::CallOneWayNoRequestResponseFut {
6175        fn _decode(
6176            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6177        ) -> Result<EmptyResultClassification, fidl::Error> {
6178            let _response = fidl::client::decode_transaction_body::<
6179                EmptyResultClassification,
6180                fidl::encoding::DefaultFuchsiaResourceDialect,
6181                0x24b6eea8cbdccc09,
6182            >(_buf?)?;
6183            Ok(_response)
6184        }
6185        self.client
6186            .send_query_and_decode::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
6187                (target,),
6188                0x24b6eea8cbdccc09,
6189                fidl::encoding::DynamicFlags::empty(),
6190                _decode,
6191            )
6192    }
6193
6194    type CallOneWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6195        EmptyResultClassification,
6196        fidl::encoding::DefaultFuchsiaResourceDialect,
6197    >;
6198    fn r#call_one_way_struct_request(
6199        &self,
6200        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6201        mut request: &NonEmptyPayload,
6202    ) -> Self::CallOneWayStructRequestResponseFut {
6203        fn _decode(
6204            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6205        ) -> Result<EmptyResultClassification, fidl::Error> {
6206            let _response = fidl::client::decode_transaction_body::<
6207                EmptyResultClassification,
6208                fidl::encoding::DefaultFuchsiaResourceDialect,
6209                0x352a2907a0fcb420,
6210            >(_buf?)?;
6211            Ok(_response)
6212        }
6213        self.client.send_query_and_decode::<
6214            RunnerCallOneWayStructRequestRequest,
6215            EmptyResultClassification,
6216        >(
6217            (target, request,),
6218            0x352a2907a0fcb420,
6219            fidl::encoding::DynamicFlags::empty(),
6220            _decode,
6221        )
6222    }
6223
6224    type CallOneWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6225        EmptyResultClassification,
6226        fidl::encoding::DefaultFuchsiaResourceDialect,
6227    >;
6228    fn r#call_one_way_table_request(
6229        &self,
6230        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6231        mut request: &TablePayload,
6232    ) -> Self::CallOneWayTableRequestResponseFut {
6233        fn _decode(
6234            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6235        ) -> Result<EmptyResultClassification, fidl::Error> {
6236            let _response = fidl::client::decode_transaction_body::<
6237                EmptyResultClassification,
6238                fidl::encoding::DefaultFuchsiaResourceDialect,
6239                0x734121bf8bf336ef,
6240            >(_buf?)?;
6241            Ok(_response)
6242        }
6243        self.client.send_query_and_decode::<
6244            RunnerCallOneWayTableRequestRequest,
6245            EmptyResultClassification,
6246        >(
6247            (target, request,),
6248            0x734121bf8bf336ef,
6249            fidl::encoding::DynamicFlags::empty(),
6250            _decode,
6251        )
6252    }
6253
6254    type CallOneWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6255        EmptyResultClassification,
6256        fidl::encoding::DefaultFuchsiaResourceDialect,
6257    >;
6258    fn r#call_one_way_union_request(
6259        &self,
6260        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6261        mut request: &UnionPayload,
6262    ) -> Self::CallOneWayUnionRequestResponseFut {
6263        fn _decode(
6264            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6265        ) -> Result<EmptyResultClassification, fidl::Error> {
6266            let _response = fidl::client::decode_transaction_body::<
6267                EmptyResultClassification,
6268                fidl::encoding::DefaultFuchsiaResourceDialect,
6269                0x9be8e5eb7d50eb6,
6270            >(_buf?)?;
6271            Ok(_response)
6272        }
6273        self.client.send_query_and_decode::<
6274            RunnerCallOneWayUnionRequestRequest,
6275            EmptyResultClassification,
6276        >(
6277            (target, request,),
6278            0x9be8e5eb7d50eb6,
6279            fidl::encoding::DynamicFlags::empty(),
6280            _decode,
6281        )
6282    }
6283
6284    type CallStrictOneWayResponseFut = fidl::client::QueryResponseFut<
6285        EmptyResultClassification,
6286        fidl::encoding::DefaultFuchsiaResourceDialect,
6287    >;
6288    fn r#call_strict_one_way(
6289        &self,
6290        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6291    ) -> Self::CallStrictOneWayResponseFut {
6292        fn _decode(
6293            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6294        ) -> Result<EmptyResultClassification, fidl::Error> {
6295            let _response = fidl::client::decode_transaction_body::<
6296                EmptyResultClassification,
6297                fidl::encoding::DefaultFuchsiaResourceDialect,
6298                0x4edd0b6f52c0446b,
6299            >(_buf?)?;
6300            Ok(_response)
6301        }
6302        self.client
6303            .send_query_and_decode::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
6304                (target,),
6305                0x4edd0b6f52c0446b,
6306                fidl::encoding::DynamicFlags::empty(),
6307                _decode,
6308            )
6309    }
6310
6311    type CallFlexibleOneWayResponseFut = fidl::client::QueryResponseFut<
6312        EmptyResultClassification,
6313        fidl::encoding::DefaultFuchsiaResourceDialect,
6314    >;
6315    fn r#call_flexible_one_way(
6316        &self,
6317        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6318    ) -> Self::CallFlexibleOneWayResponseFut {
6319        fn _decode(
6320            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6321        ) -> Result<EmptyResultClassification, fidl::Error> {
6322            let _response = fidl::client::decode_transaction_body::<
6323                EmptyResultClassification,
6324                fidl::encoding::DefaultFuchsiaResourceDialect,
6325                0x7253f10a77dfe817,
6326            >(_buf?)?;
6327            Ok(_response)
6328        }
6329        self.client
6330            .send_query_and_decode::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
6331                (target,),
6332                0x7253f10a77dfe817,
6333                fidl::encoding::DynamicFlags::empty(),
6334                _decode,
6335            )
6336    }
6337
6338    type CallStrictTwoWayResponseFut = fidl::client::QueryResponseFut<
6339        EmptyResultClassification,
6340        fidl::encoding::DefaultFuchsiaResourceDialect,
6341    >;
6342    fn r#call_strict_two_way(
6343        &self,
6344        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6345    ) -> Self::CallStrictTwoWayResponseFut {
6346        fn _decode(
6347            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6348        ) -> Result<EmptyResultClassification, fidl::Error> {
6349            let _response = fidl::client::decode_transaction_body::<
6350                EmptyResultClassification,
6351                fidl::encoding::DefaultFuchsiaResourceDialect,
6352                0x1fa9fb7414aedd27,
6353            >(_buf?)?;
6354            Ok(_response)
6355        }
6356        self.client
6357            .send_query_and_decode::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
6358                (target,),
6359                0x1fa9fb7414aedd27,
6360                fidl::encoding::DynamicFlags::empty(),
6361                _decode,
6362            )
6363    }
6364
6365    type CallStrictTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6366        NonEmptyResultClassification,
6367        fidl::encoding::DefaultFuchsiaResourceDialect,
6368    >;
6369    fn r#call_strict_two_way_fields(
6370        &self,
6371        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6372    ) -> Self::CallStrictTwoWayFieldsResponseFut {
6373        fn _decode(
6374            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6375        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6376            let _response = fidl::client::decode_transaction_body::<
6377                NonEmptyResultClassification,
6378                fidl::encoding::DefaultFuchsiaResourceDialect,
6379                0x6f690e00ebf6f123,
6380            >(_buf?)?;
6381            Ok(_response)
6382        }
6383        self.client.send_query_and_decode::<
6384            RunnerCallStrictTwoWayFieldsRequest,
6385            NonEmptyResultClassification,
6386        >(
6387            (target,),
6388            0x6f690e00ebf6f123,
6389            fidl::encoding::DynamicFlags::empty(),
6390            _decode,
6391        )
6392    }
6393
6394    type CallStrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6395        EmptyResultWithErrorClassification,
6396        fidl::encoding::DefaultFuchsiaResourceDialect,
6397    >;
6398    fn r#call_strict_two_way_err(
6399        &self,
6400        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6401    ) -> Self::CallStrictTwoWayErrResponseFut {
6402        fn _decode(
6403            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6404        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6405            let _response = fidl::client::decode_transaction_body::<
6406                EmptyResultWithErrorClassification,
6407                fidl::encoding::DefaultFuchsiaResourceDialect,
6408                0x51d6bc7cf6cbaf1a,
6409            >(_buf?)?;
6410            Ok(_response)
6411        }
6412        self.client.send_query_and_decode::<
6413            RunnerCallStrictTwoWayErrRequest,
6414            EmptyResultWithErrorClassification,
6415        >(
6416            (target,),
6417            0x51d6bc7cf6cbaf1a,
6418            fidl::encoding::DynamicFlags::empty(),
6419            _decode,
6420        )
6421    }
6422
6423    type CallStrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6424        NonEmptyResultWithErrorClassification,
6425        fidl::encoding::DefaultFuchsiaResourceDialect,
6426    >;
6427    fn r#call_strict_two_way_fields_err(
6428        &self,
6429        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6430    ) -> Self::CallStrictTwoWayFieldsErrResponseFut {
6431        fn _decode(
6432            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6433        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6434            let _response = fidl::client::decode_transaction_body::<
6435                NonEmptyResultWithErrorClassification,
6436                fidl::encoding::DefaultFuchsiaResourceDialect,
6437                0x6fa31ced05074c05,
6438            >(_buf?)?;
6439            Ok(_response)
6440        }
6441        self.client.send_query_and_decode::<
6442            RunnerCallStrictTwoWayFieldsErrRequest,
6443            NonEmptyResultWithErrorClassification,
6444        >(
6445            (target,),
6446            0x6fa31ced05074c05,
6447            fidl::encoding::DynamicFlags::empty(),
6448            _decode,
6449        )
6450    }
6451
6452    type CallFlexibleTwoWayResponseFut = fidl::client::QueryResponseFut<
6453        EmptyResultClassification,
6454        fidl::encoding::DefaultFuchsiaResourceDialect,
6455    >;
6456    fn r#call_flexible_two_way(
6457        &self,
6458        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6459    ) -> Self::CallFlexibleTwoWayResponseFut {
6460        fn _decode(
6461            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6462        ) -> Result<EmptyResultClassification, fidl::Error> {
6463            let _response = fidl::client::decode_transaction_body::<
6464                EmptyResultClassification,
6465                fidl::encoding::DefaultFuchsiaResourceDialect,
6466                0x411f70724876d49,
6467            >(_buf?)?;
6468            Ok(_response)
6469        }
6470        self.client
6471            .send_query_and_decode::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
6472                (target,),
6473                0x411f70724876d49,
6474                fidl::encoding::DynamicFlags::empty(),
6475                _decode,
6476            )
6477    }
6478
6479    type CallFlexibleTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6480        NonEmptyResultClassification,
6481        fidl::encoding::DefaultFuchsiaResourceDialect,
6482    >;
6483    fn r#call_flexible_two_way_fields(
6484        &self,
6485        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6486    ) -> Self::CallFlexibleTwoWayFieldsResponseFut {
6487        fn _decode(
6488            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6489        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6490            let _response = fidl::client::decode_transaction_body::<
6491                NonEmptyResultClassification,
6492                fidl::encoding::DefaultFuchsiaResourceDialect,
6493                0x330996b623598eed,
6494            >(_buf?)?;
6495            Ok(_response)
6496        }
6497        self.client.send_query_and_decode::<
6498            RunnerCallFlexibleTwoWayFieldsRequest,
6499            NonEmptyResultClassification,
6500        >(
6501            (target,),
6502            0x330996b623598eed,
6503            fidl::encoding::DynamicFlags::empty(),
6504            _decode,
6505        )
6506    }
6507
6508    type CallFlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6509        EmptyResultWithErrorClassification,
6510        fidl::encoding::DefaultFuchsiaResourceDialect,
6511    >;
6512    fn r#call_flexible_two_way_err(
6513        &self,
6514        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6515    ) -> Self::CallFlexibleTwoWayErrResponseFut {
6516        fn _decode(
6517            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6518        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6519            let _response = fidl::client::decode_transaction_body::<
6520                EmptyResultWithErrorClassification,
6521                fidl::encoding::DefaultFuchsiaResourceDialect,
6522                0x5ddbf88a353a2a57,
6523            >(_buf?)?;
6524            Ok(_response)
6525        }
6526        self.client.send_query_and_decode::<
6527            RunnerCallFlexibleTwoWayErrRequest,
6528            EmptyResultWithErrorClassification,
6529        >(
6530            (target,),
6531            0x5ddbf88a353a2a57,
6532            fidl::encoding::DynamicFlags::empty(),
6533            _decode,
6534        )
6535    }
6536
6537    type CallFlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6538        NonEmptyResultWithErrorClassification,
6539        fidl::encoding::DefaultFuchsiaResourceDialect,
6540    >;
6541    fn r#call_flexible_two_way_fields_err(
6542        &self,
6543        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6544    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut {
6545        fn _decode(
6546            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6547        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6548            let _response = fidl::client::decode_transaction_body::<
6549                NonEmptyResultWithErrorClassification,
6550                fidl::encoding::DefaultFuchsiaResourceDialect,
6551                0x7ae309383b07048e,
6552            >(_buf?)?;
6553            Ok(_response)
6554        }
6555        self.client.send_query_and_decode::<
6556            RunnerCallFlexibleTwoWayFieldsErrRequest,
6557            NonEmptyResultWithErrorClassification,
6558        >(
6559            (target,),
6560            0x7ae309383b07048e,
6561            fidl::encoding::DynamicFlags::empty(),
6562            _decode,
6563        )
6564    }
6565
6566    type ReceiveClosedEventsResponseFut =
6567        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6568    fn r#receive_closed_events(
6569        &self,
6570        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6571        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
6572    ) -> Self::ReceiveClosedEventsResponseFut {
6573        fn _decode(
6574            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6575        ) -> Result<(), fidl::Error> {
6576            let _response = fidl::client::decode_transaction_body::<
6577                fidl::encoding::EmptyPayload,
6578                fidl::encoding::DefaultFuchsiaResourceDialect,
6579                0x48da834910571aeb,
6580            >(_buf?)?;
6581            Ok(_response)
6582        }
6583        self.client.send_query_and_decode::<RunnerReceiveClosedEventsRequest, ()>(
6584            (target, reporter),
6585            0x48da834910571aeb,
6586            fidl::encoding::DynamicFlags::empty(),
6587            _decode,
6588        )
6589    }
6590
6591    type ReceiveAjarEventsResponseFut =
6592        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6593    fn r#receive_ajar_events(
6594        &self,
6595        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
6596        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
6597    ) -> Self::ReceiveAjarEventsResponseFut {
6598        fn _decode(
6599            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6600        ) -> Result<(), fidl::Error> {
6601            let _response = fidl::client::decode_transaction_body::<
6602                fidl::encoding::EmptyPayload,
6603                fidl::encoding::DefaultFuchsiaResourceDialect,
6604                0xc5662b9a9c007a3,
6605            >(_buf?)?;
6606            Ok(_response)
6607        }
6608        self.client.send_query_and_decode::<RunnerReceiveAjarEventsRequest, ()>(
6609            (target, reporter),
6610            0xc5662b9a9c007a3,
6611            fidl::encoding::DynamicFlags::empty(),
6612            _decode,
6613        )
6614    }
6615
6616    type ReceiveOpenEventsResponseFut =
6617        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6618    fn r#receive_open_events(
6619        &self,
6620        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6621        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
6622    ) -> Self::ReceiveOpenEventsResponseFut {
6623        fn _decode(
6624            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6625        ) -> Result<(), fidl::Error> {
6626            let _response = fidl::client::decode_transaction_body::<
6627                fidl::encoding::EmptyPayload,
6628                fidl::encoding::DefaultFuchsiaResourceDialect,
6629                0x79a7073fd18edbdf,
6630            >(_buf?)?;
6631            Ok(_response)
6632        }
6633        self.client.send_query_and_decode::<RunnerReceiveOpenEventsRequest, ()>(
6634            (target, reporter),
6635            0x79a7073fd18edbdf,
6636            fidl::encoding::DynamicFlags::empty(),
6637            _decode,
6638        )
6639    }
6640}
6641
6642pub struct RunnerEventStream {
6643    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
6644}
6645
6646impl std::marker::Unpin for RunnerEventStream {}
6647
6648impl futures::stream::FusedStream for RunnerEventStream {
6649    fn is_terminated(&self) -> bool {
6650        self.event_receiver.is_terminated()
6651    }
6652}
6653
6654impl futures::Stream for RunnerEventStream {
6655    type Item = Result<RunnerEvent, fidl::Error>;
6656
6657    fn poll_next(
6658        mut self: std::pin::Pin<&mut Self>,
6659        cx: &mut std::task::Context<'_>,
6660    ) -> std::task::Poll<Option<Self::Item>> {
6661        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
6662            &mut self.event_receiver,
6663            cx
6664        )?) {
6665            Some(buf) => std::task::Poll::Ready(Some(RunnerEvent::decode(buf))),
6666            None => std::task::Poll::Ready(None),
6667        }
6668    }
6669}
6670
6671#[derive(Debug)]
6672pub enum RunnerEvent {}
6673
6674impl RunnerEvent {
6675    /// Decodes a message buffer as a [`RunnerEvent`].
6676    fn decode(
6677        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
6678    ) -> Result<RunnerEvent, fidl::Error> {
6679        let (bytes, _handles) = buf.split_mut();
6680        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6681        debug_assert_eq!(tx_header.tx_id, 0);
6682        match tx_header.ordinal {
6683            _ => Err(fidl::Error::UnknownOrdinal {
6684                ordinal: tx_header.ordinal,
6685                protocol_name: <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6686            }),
6687        }
6688    }
6689}
6690
6691/// A Stream of incoming requests for fidl.clientsuite/Runner.
6692pub struct RunnerRequestStream {
6693    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6694    is_terminated: bool,
6695}
6696
6697impl std::marker::Unpin for RunnerRequestStream {}
6698
6699impl futures::stream::FusedStream for RunnerRequestStream {
6700    fn is_terminated(&self) -> bool {
6701        self.is_terminated
6702    }
6703}
6704
6705impl fidl::endpoints::RequestStream for RunnerRequestStream {
6706    type Protocol = RunnerMarker;
6707    type ControlHandle = RunnerControlHandle;
6708
6709    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
6710        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
6711    }
6712
6713    fn control_handle(&self) -> Self::ControlHandle {
6714        RunnerControlHandle { inner: self.inner.clone() }
6715    }
6716
6717    fn into_inner(
6718        self,
6719    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
6720    {
6721        (self.inner, self.is_terminated)
6722    }
6723
6724    fn from_inner(
6725        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6726        is_terminated: bool,
6727    ) -> Self {
6728        Self { inner, is_terminated }
6729    }
6730}
6731
6732impl futures::Stream for RunnerRequestStream {
6733    type Item = Result<RunnerRequest, fidl::Error>;
6734
6735    fn poll_next(
6736        mut self: std::pin::Pin<&mut Self>,
6737        cx: &mut std::task::Context<'_>,
6738    ) -> std::task::Poll<Option<Self::Item>> {
6739        let this = &mut *self;
6740        if this.inner.check_shutdown(cx) {
6741            this.is_terminated = true;
6742            return std::task::Poll::Ready(None);
6743        }
6744        if this.is_terminated {
6745            panic!("polled RunnerRequestStream after completion");
6746        }
6747        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
6748            |bytes, handles| {
6749                match this.inner.channel().read_etc(cx, bytes, handles) {
6750                    std::task::Poll::Ready(Ok(())) => {}
6751                    std::task::Poll::Pending => return std::task::Poll::Pending,
6752                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
6753                        this.is_terminated = true;
6754                        return std::task::Poll::Ready(None);
6755                    }
6756                    std::task::Poll::Ready(Err(e)) => {
6757                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
6758                            e.into(),
6759                        ))))
6760                    }
6761                }
6762
6763                // A message has been received from the channel
6764                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6765
6766                std::task::Poll::Ready(Some(match header.ordinal {
6767                    0x555d1430b913cdd4 => {
6768                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6769                        let mut req = fidl::new_empty!(
6770                            fidl::encoding::EmptyPayload,
6771                            fidl::encoding::DefaultFuchsiaResourceDialect
6772                        );
6773                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6774                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6775                        Ok(RunnerRequest::GetVersion {
6776                            responder: RunnerGetVersionResponder {
6777                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6778                                tx_id: header.tx_id,
6779                            },
6780                        })
6781                    }
6782                    0x755bc493368d7c50 => {
6783                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6784                        let mut req = fidl::new_empty!(
6785                            RunnerIsTestEnabledRequest,
6786                            fidl::encoding::DefaultFuchsiaResourceDialect
6787                        );
6788                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerIsTestEnabledRequest>(&header, _body_bytes, handles, &mut req)?;
6789                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6790                        Ok(RunnerRequest::IsTestEnabled {
6791                            test: req.test,
6792
6793                            responder: RunnerIsTestEnabledResponder {
6794                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6795                                tx_id: header.tx_id,
6796                            },
6797                        })
6798                    }
6799                    0x5a77b04abdfde130 => {
6800                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6801                        let mut req = fidl::new_empty!(
6802                            fidl::encoding::EmptyPayload,
6803                            fidl::encoding::DefaultFuchsiaResourceDialect
6804                        );
6805                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6806                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6807                        Ok(RunnerRequest::CheckAlive {
6808                            responder: RunnerCheckAliveResponder {
6809                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6810                                tx_id: header.tx_id,
6811                            },
6812                        })
6813                    }
6814                    0x76b5610bfd4fa636 => {
6815                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6816                        let mut req = fidl::new_empty!(
6817                            fidl::encoding::EmptyPayload,
6818                            fidl::encoding::DefaultFuchsiaResourceDialect
6819                        );
6820                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6821                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6822                        Ok(RunnerRequest::GetBindingsProperties {
6823                            responder: RunnerGetBindingsPropertiesResponder {
6824                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6825                                tx_id: header.tx_id,
6826                            },
6827                        })
6828                    }
6829                    0x53ac710c20b320a1 => {
6830                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6831                        let mut req = fidl::new_empty!(
6832                            RunnerCallTwoWayNoPayloadRequest,
6833                            fidl::encoding::DefaultFuchsiaResourceDialect
6834                        );
6835                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayNoPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
6836                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6837                        Ok(RunnerRequest::CallTwoWayNoPayload {
6838                            target: req.target,
6839
6840                            responder: RunnerCallTwoWayNoPayloadResponder {
6841                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6842                                tx_id: header.tx_id,
6843                            },
6844                        })
6845                    }
6846                    0x24e98c668499b946 => {
6847                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6848                        let mut req = fidl::new_empty!(
6849                            RunnerCallTwoWayStructPayloadRequest,
6850                            fidl::encoding::DefaultFuchsiaResourceDialect
6851                        );
6852                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
6853                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6854                        Ok(RunnerRequest::CallTwoWayStructPayload {
6855                            target: req.target,
6856
6857                            responder: RunnerCallTwoWayStructPayloadResponder {
6858                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6859                                tx_id: header.tx_id,
6860                            },
6861                        })
6862                    }
6863                    0x72e428e1605b76a => {
6864                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6865                        let mut req = fidl::new_empty!(
6866                            RunnerCallTwoWayTablePayloadRequest,
6867                            fidl::encoding::DefaultFuchsiaResourceDialect
6868                        );
6869                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTablePayloadRequest>(&header, _body_bytes, handles, &mut req)?;
6870                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6871                        Ok(RunnerRequest::CallTwoWayTablePayload {
6872                            target: req.target,
6873
6874                            responder: RunnerCallTwoWayTablePayloadResponder {
6875                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6876                                tx_id: header.tx_id,
6877                            },
6878                        })
6879                    }
6880                    0x7dc9d67218343860 => {
6881                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6882                        let mut req = fidl::new_empty!(
6883                            RunnerCallTwoWayUnionPayloadRequest,
6884                            fidl::encoding::DefaultFuchsiaResourceDialect
6885                        );
6886                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
6887                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6888                        Ok(RunnerRequest::CallTwoWayUnionPayload {
6889                            target: req.target,
6890
6891                            responder: RunnerCallTwoWayUnionPayloadResponder {
6892                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6893                                tx_id: header.tx_id,
6894                            },
6895                        })
6896                    }
6897                    0x2b07a57942c5f6e5 => {
6898                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6899                        let mut req = fidl::new_empty!(
6900                            RunnerCallTwoWayStructPayloadErrRequest,
6901                            fidl::encoding::DefaultFuchsiaResourceDialect
6902                        );
6903                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadErrRequest>(&header, _body_bytes, handles, &mut req)?;
6904                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6905                        Ok(RunnerRequest::CallTwoWayStructPayloadErr {
6906                            target: req.target,
6907
6908                            responder: RunnerCallTwoWayStructPayloadErrResponder {
6909                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6910                                tx_id: header.tx_id,
6911                            },
6912                        })
6913                    }
6914                    0x7c00a6ba2e6c9b45 => {
6915                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6916                        let mut req = fidl::new_empty!(
6917                            RunnerCallTwoWayStructRequestRequest,
6918                            fidl::encoding::DefaultFuchsiaResourceDialect
6919                        );
6920                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
6921                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6922                        Ok(RunnerRequest::CallTwoWayStructRequest {
6923                            target: req.target,
6924                            request: req.request,
6925
6926                            responder: RunnerCallTwoWayStructRequestResponder {
6927                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6928                                tx_id: header.tx_id,
6929                            },
6930                        })
6931                    }
6932                    0x641763237d3885be => {
6933                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6934                        let mut req = fidl::new_empty!(
6935                            RunnerCallTwoWayTableRequestRequest,
6936                            fidl::encoding::DefaultFuchsiaResourceDialect
6937                        );
6938                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
6939                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6940                        Ok(RunnerRequest::CallTwoWayTableRequest {
6941                            target: req.target,
6942                            request: req.request,
6943
6944                            responder: RunnerCallTwoWayTableRequestResponder {
6945                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6946                                tx_id: header.tx_id,
6947                            },
6948                        })
6949                    }
6950                    0x4be5f061df42619e => {
6951                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6952                        let mut req = fidl::new_empty!(
6953                            RunnerCallTwoWayUnionRequestRequest,
6954                            fidl::encoding::DefaultFuchsiaResourceDialect
6955                        );
6956                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
6957                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6958                        Ok(RunnerRequest::CallTwoWayUnionRequest {
6959                            target: req.target,
6960                            request: req.request,
6961
6962                            responder: RunnerCallTwoWayUnionRequestResponder {
6963                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6964                                tx_id: header.tx_id,
6965                            },
6966                        })
6967                    }
6968                    0x24b6eea8cbdccc09 => {
6969                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6970                        let mut req = fidl::new_empty!(
6971                            RunnerCallOneWayNoRequestRequest,
6972                            fidl::encoding::DefaultFuchsiaResourceDialect
6973                        );
6974                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayNoRequestRequest>(&header, _body_bytes, handles, &mut req)?;
6975                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6976                        Ok(RunnerRequest::CallOneWayNoRequest {
6977                            target: req.target,
6978
6979                            responder: RunnerCallOneWayNoRequestResponder {
6980                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6981                                tx_id: header.tx_id,
6982                            },
6983                        })
6984                    }
6985                    0x352a2907a0fcb420 => {
6986                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6987                        let mut req = fidl::new_empty!(
6988                            RunnerCallOneWayStructRequestRequest,
6989                            fidl::encoding::DefaultFuchsiaResourceDialect
6990                        );
6991                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
6992                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6993                        Ok(RunnerRequest::CallOneWayStructRequest {
6994                            target: req.target,
6995                            request: req.request,
6996
6997                            responder: RunnerCallOneWayStructRequestResponder {
6998                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6999                                tx_id: header.tx_id,
7000                            },
7001                        })
7002                    }
7003                    0x734121bf8bf336ef => {
7004                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7005                        let mut req = fidl::new_empty!(
7006                            RunnerCallOneWayTableRequestRequest,
7007                            fidl::encoding::DefaultFuchsiaResourceDialect
7008                        );
7009                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7010                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7011                        Ok(RunnerRequest::CallOneWayTableRequest {
7012                            target: req.target,
7013                            request: req.request,
7014
7015                            responder: RunnerCallOneWayTableRequestResponder {
7016                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7017                                tx_id: header.tx_id,
7018                            },
7019                        })
7020                    }
7021                    0x9be8e5eb7d50eb6 => {
7022                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7023                        let mut req = fidl::new_empty!(
7024                            RunnerCallOneWayUnionRequestRequest,
7025                            fidl::encoding::DefaultFuchsiaResourceDialect
7026                        );
7027                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7028                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7029                        Ok(RunnerRequest::CallOneWayUnionRequest {
7030                            target: req.target,
7031                            request: req.request,
7032
7033                            responder: RunnerCallOneWayUnionRequestResponder {
7034                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7035                                tx_id: header.tx_id,
7036                            },
7037                        })
7038                    }
7039                    0x4edd0b6f52c0446b => {
7040                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7041                        let mut req = fidl::new_empty!(
7042                            RunnerCallStrictOneWayRequest,
7043                            fidl::encoding::DefaultFuchsiaResourceDialect
7044                        );
7045                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7046                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7047                        Ok(RunnerRequest::CallStrictOneWay {
7048                            target: req.target,
7049
7050                            responder: RunnerCallStrictOneWayResponder {
7051                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7052                                tx_id: header.tx_id,
7053                            },
7054                        })
7055                    }
7056                    0x7253f10a77dfe817 => {
7057                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7058                        let mut req = fidl::new_empty!(
7059                            RunnerCallFlexibleOneWayRequest,
7060                            fidl::encoding::DefaultFuchsiaResourceDialect
7061                        );
7062                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7063                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7064                        Ok(RunnerRequest::CallFlexibleOneWay {
7065                            target: req.target,
7066
7067                            responder: RunnerCallFlexibleOneWayResponder {
7068                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7069                                tx_id: header.tx_id,
7070                            },
7071                        })
7072                    }
7073                    0x1fa9fb7414aedd27 => {
7074                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7075                        let mut req = fidl::new_empty!(
7076                            RunnerCallStrictTwoWayRequest,
7077                            fidl::encoding::DefaultFuchsiaResourceDialect
7078                        );
7079                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7080                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7081                        Ok(RunnerRequest::CallStrictTwoWay {
7082                            target: req.target,
7083
7084                            responder: RunnerCallStrictTwoWayResponder {
7085                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7086                                tx_id: header.tx_id,
7087                            },
7088                        })
7089                    }
7090                    0x6f690e00ebf6f123 => {
7091                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7092                        let mut req = fidl::new_empty!(
7093                            RunnerCallStrictTwoWayFieldsRequest,
7094                            fidl::encoding::DefaultFuchsiaResourceDialect
7095                        );
7096                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7097                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7098                        Ok(RunnerRequest::CallStrictTwoWayFields {
7099                            target: req.target,
7100
7101                            responder: RunnerCallStrictTwoWayFieldsResponder {
7102                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7103                                tx_id: header.tx_id,
7104                            },
7105                        })
7106                    }
7107                    0x51d6bc7cf6cbaf1a => {
7108                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7109                        let mut req = fidl::new_empty!(
7110                            RunnerCallStrictTwoWayErrRequest,
7111                            fidl::encoding::DefaultFuchsiaResourceDialect
7112                        );
7113                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7114                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7115                        Ok(RunnerRequest::CallStrictTwoWayErr {
7116                            target: req.target,
7117
7118                            responder: RunnerCallStrictTwoWayErrResponder {
7119                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7120                                tx_id: header.tx_id,
7121                            },
7122                        })
7123                    }
7124                    0x6fa31ced05074c05 => {
7125                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7126                        let mut req = fidl::new_empty!(
7127                            RunnerCallStrictTwoWayFieldsErrRequest,
7128                            fidl::encoding::DefaultFuchsiaResourceDialect
7129                        );
7130                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7131                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7132                        Ok(RunnerRequest::CallStrictTwoWayFieldsErr {
7133                            target: req.target,
7134
7135                            responder: RunnerCallStrictTwoWayFieldsErrResponder {
7136                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7137                                tx_id: header.tx_id,
7138                            },
7139                        })
7140                    }
7141                    0x411f70724876d49 => {
7142                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7143                        let mut req = fidl::new_empty!(
7144                            RunnerCallFlexibleTwoWayRequest,
7145                            fidl::encoding::DefaultFuchsiaResourceDialect
7146                        );
7147                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7148                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7149                        Ok(RunnerRequest::CallFlexibleTwoWay {
7150                            target: req.target,
7151
7152                            responder: RunnerCallFlexibleTwoWayResponder {
7153                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7154                                tx_id: header.tx_id,
7155                            },
7156                        })
7157                    }
7158                    0x330996b623598eed => {
7159                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7160                        let mut req = fidl::new_empty!(
7161                            RunnerCallFlexibleTwoWayFieldsRequest,
7162                            fidl::encoding::DefaultFuchsiaResourceDialect
7163                        );
7164                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7165                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7166                        Ok(RunnerRequest::CallFlexibleTwoWayFields {
7167                            target: req.target,
7168
7169                            responder: RunnerCallFlexibleTwoWayFieldsResponder {
7170                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7171                                tx_id: header.tx_id,
7172                            },
7173                        })
7174                    }
7175                    0x5ddbf88a353a2a57 => {
7176                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7177                        let mut req = fidl::new_empty!(
7178                            RunnerCallFlexibleTwoWayErrRequest,
7179                            fidl::encoding::DefaultFuchsiaResourceDialect
7180                        );
7181                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7182                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7183                        Ok(RunnerRequest::CallFlexibleTwoWayErr {
7184                            target: req.target,
7185
7186                            responder: RunnerCallFlexibleTwoWayErrResponder {
7187                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7188                                tx_id: header.tx_id,
7189                            },
7190                        })
7191                    }
7192                    0x7ae309383b07048e => {
7193                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7194                        let mut req = fidl::new_empty!(
7195                            RunnerCallFlexibleTwoWayFieldsErrRequest,
7196                            fidl::encoding::DefaultFuchsiaResourceDialect
7197                        );
7198                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7199                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7200                        Ok(RunnerRequest::CallFlexibleTwoWayFieldsErr {
7201                            target: req.target,
7202
7203                            responder: RunnerCallFlexibleTwoWayFieldsErrResponder {
7204                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7205                                tx_id: header.tx_id,
7206                            },
7207                        })
7208                    }
7209                    0x48da834910571aeb => {
7210                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7211                        let mut req = fidl::new_empty!(
7212                            RunnerReceiveClosedEventsRequest,
7213                            fidl::encoding::DefaultFuchsiaResourceDialect
7214                        );
7215                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveClosedEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7216                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7217                        Ok(RunnerRequest::ReceiveClosedEvents {
7218                            target: req.target,
7219                            reporter: req.reporter,
7220
7221                            responder: RunnerReceiveClosedEventsResponder {
7222                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7223                                tx_id: header.tx_id,
7224                            },
7225                        })
7226                    }
7227                    0xc5662b9a9c007a3 => {
7228                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7229                        let mut req = fidl::new_empty!(
7230                            RunnerReceiveAjarEventsRequest,
7231                            fidl::encoding::DefaultFuchsiaResourceDialect
7232                        );
7233                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveAjarEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7234                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7235                        Ok(RunnerRequest::ReceiveAjarEvents {
7236                            target: req.target,
7237                            reporter: req.reporter,
7238
7239                            responder: RunnerReceiveAjarEventsResponder {
7240                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7241                                tx_id: header.tx_id,
7242                            },
7243                        })
7244                    }
7245                    0x79a7073fd18edbdf => {
7246                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7247                        let mut req = fidl::new_empty!(
7248                            RunnerReceiveOpenEventsRequest,
7249                            fidl::encoding::DefaultFuchsiaResourceDialect
7250                        );
7251                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveOpenEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7252                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7253                        Ok(RunnerRequest::ReceiveOpenEvents {
7254                            target: req.target,
7255                            reporter: req.reporter,
7256
7257                            responder: RunnerReceiveOpenEventsResponder {
7258                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7259                                tx_id: header.tx_id,
7260                            },
7261                        })
7262                    }
7263                    _ => Err(fidl::Error::UnknownOrdinal {
7264                        ordinal: header.ordinal,
7265                        protocol_name:
7266                            <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
7267                    }),
7268                }))
7269            },
7270        )
7271    }
7272}
7273
7274#[derive(Debug)]
7275pub enum RunnerRequest {
7276    GetVersion {
7277        responder: RunnerGetVersionResponder,
7278    },
7279    IsTestEnabled {
7280        test: Test,
7281        responder: RunnerIsTestEnabledResponder,
7282    },
7283    CheckAlive {
7284        responder: RunnerCheckAliveResponder,
7285    },
7286    GetBindingsProperties {
7287        responder: RunnerGetBindingsPropertiesResponder,
7288    },
7289    CallTwoWayNoPayload {
7290        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7291        responder: RunnerCallTwoWayNoPayloadResponder,
7292    },
7293    CallTwoWayStructPayload {
7294        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7295        responder: RunnerCallTwoWayStructPayloadResponder,
7296    },
7297    CallTwoWayTablePayload {
7298        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7299        responder: RunnerCallTwoWayTablePayloadResponder,
7300    },
7301    CallTwoWayUnionPayload {
7302        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7303        responder: RunnerCallTwoWayUnionPayloadResponder,
7304    },
7305    CallTwoWayStructPayloadErr {
7306        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7307        responder: RunnerCallTwoWayStructPayloadErrResponder,
7308    },
7309    CallTwoWayStructRequest {
7310        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7311        request: NonEmptyPayload,
7312        responder: RunnerCallTwoWayStructRequestResponder,
7313    },
7314    CallTwoWayTableRequest {
7315        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7316        request: TablePayload,
7317        responder: RunnerCallTwoWayTableRequestResponder,
7318    },
7319    CallTwoWayUnionRequest {
7320        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7321        request: UnionPayload,
7322        responder: RunnerCallTwoWayUnionRequestResponder,
7323    },
7324    CallOneWayNoRequest {
7325        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7326        responder: RunnerCallOneWayNoRequestResponder,
7327    },
7328    CallOneWayStructRequest {
7329        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7330        request: NonEmptyPayload,
7331        responder: RunnerCallOneWayStructRequestResponder,
7332    },
7333    CallOneWayTableRequest {
7334        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7335        request: TablePayload,
7336        responder: RunnerCallOneWayTableRequestResponder,
7337    },
7338    CallOneWayUnionRequest {
7339        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7340        request: UnionPayload,
7341        responder: RunnerCallOneWayUnionRequestResponder,
7342    },
7343    CallStrictOneWay {
7344        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7345        responder: RunnerCallStrictOneWayResponder,
7346    },
7347    CallFlexibleOneWay {
7348        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7349        responder: RunnerCallFlexibleOneWayResponder,
7350    },
7351    CallStrictTwoWay {
7352        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7353        responder: RunnerCallStrictTwoWayResponder,
7354    },
7355    CallStrictTwoWayFields {
7356        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7357        responder: RunnerCallStrictTwoWayFieldsResponder,
7358    },
7359    CallStrictTwoWayErr {
7360        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7361        responder: RunnerCallStrictTwoWayErrResponder,
7362    },
7363    CallStrictTwoWayFieldsErr {
7364        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7365        responder: RunnerCallStrictTwoWayFieldsErrResponder,
7366    },
7367    CallFlexibleTwoWay {
7368        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7369        responder: RunnerCallFlexibleTwoWayResponder,
7370    },
7371    CallFlexibleTwoWayFields {
7372        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7373        responder: RunnerCallFlexibleTwoWayFieldsResponder,
7374    },
7375    CallFlexibleTwoWayErr {
7376        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7377        responder: RunnerCallFlexibleTwoWayErrResponder,
7378    },
7379    CallFlexibleTwoWayFieldsErr {
7380        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7381        responder: RunnerCallFlexibleTwoWayFieldsErrResponder,
7382    },
7383    ReceiveClosedEvents {
7384        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7385        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7386        responder: RunnerReceiveClosedEventsResponder,
7387    },
7388    ReceiveAjarEvents {
7389        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
7390        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7391        responder: RunnerReceiveAjarEventsResponder,
7392    },
7393    ReceiveOpenEvents {
7394        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7395        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7396        responder: RunnerReceiveOpenEventsResponder,
7397    },
7398}
7399
7400impl RunnerRequest {
7401    #[allow(irrefutable_let_patterns)]
7402    pub fn into_get_version(self) -> Option<(RunnerGetVersionResponder)> {
7403        if let RunnerRequest::GetVersion { responder } = self {
7404            Some((responder))
7405        } else {
7406            None
7407        }
7408    }
7409
7410    #[allow(irrefutable_let_patterns)]
7411    pub fn into_is_test_enabled(self) -> Option<(Test, RunnerIsTestEnabledResponder)> {
7412        if let RunnerRequest::IsTestEnabled { test, responder } = self {
7413            Some((test, responder))
7414        } else {
7415            None
7416        }
7417    }
7418
7419    #[allow(irrefutable_let_patterns)]
7420    pub fn into_check_alive(self) -> Option<(RunnerCheckAliveResponder)> {
7421        if let RunnerRequest::CheckAlive { responder } = self {
7422            Some((responder))
7423        } else {
7424            None
7425        }
7426    }
7427
7428    #[allow(irrefutable_let_patterns)]
7429    pub fn into_get_bindings_properties(self) -> Option<(RunnerGetBindingsPropertiesResponder)> {
7430        if let RunnerRequest::GetBindingsProperties { responder } = self {
7431            Some((responder))
7432        } else {
7433            None
7434        }
7435    }
7436
7437    #[allow(irrefutable_let_patterns)]
7438    pub fn into_call_two_way_no_payload(
7439        self,
7440    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallTwoWayNoPayloadResponder)>
7441    {
7442        if let RunnerRequest::CallTwoWayNoPayload { target, responder } = self {
7443            Some((target, responder))
7444        } else {
7445            None
7446        }
7447    }
7448
7449    #[allow(irrefutable_let_patterns)]
7450    pub fn into_call_two_way_struct_payload(
7451        self,
7452    ) -> Option<(
7453        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7454        RunnerCallTwoWayStructPayloadResponder,
7455    )> {
7456        if let RunnerRequest::CallTwoWayStructPayload { target, responder } = self {
7457            Some((target, responder))
7458        } else {
7459            None
7460        }
7461    }
7462
7463    #[allow(irrefutable_let_patterns)]
7464    pub fn into_call_two_way_table_payload(
7465        self,
7466    ) -> Option<(
7467        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7468        RunnerCallTwoWayTablePayloadResponder,
7469    )> {
7470        if let RunnerRequest::CallTwoWayTablePayload { target, responder } = self {
7471            Some((target, responder))
7472        } else {
7473            None
7474        }
7475    }
7476
7477    #[allow(irrefutable_let_patterns)]
7478    pub fn into_call_two_way_union_payload(
7479        self,
7480    ) -> Option<(
7481        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7482        RunnerCallTwoWayUnionPayloadResponder,
7483    )> {
7484        if let RunnerRequest::CallTwoWayUnionPayload { target, responder } = self {
7485            Some((target, responder))
7486        } else {
7487            None
7488        }
7489    }
7490
7491    #[allow(irrefutable_let_patterns)]
7492    pub fn into_call_two_way_struct_payload_err(
7493        self,
7494    ) -> Option<(
7495        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7496        RunnerCallTwoWayStructPayloadErrResponder,
7497    )> {
7498        if let RunnerRequest::CallTwoWayStructPayloadErr { target, responder } = self {
7499            Some((target, responder))
7500        } else {
7501            None
7502        }
7503    }
7504
7505    #[allow(irrefutable_let_patterns)]
7506    pub fn into_call_two_way_struct_request(
7507        self,
7508    ) -> Option<(
7509        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7510        NonEmptyPayload,
7511        RunnerCallTwoWayStructRequestResponder,
7512    )> {
7513        if let RunnerRequest::CallTwoWayStructRequest { target, request, responder } = self {
7514            Some((target, request, responder))
7515        } else {
7516            None
7517        }
7518    }
7519
7520    #[allow(irrefutable_let_patterns)]
7521    pub fn into_call_two_way_table_request(
7522        self,
7523    ) -> Option<(
7524        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7525        TablePayload,
7526        RunnerCallTwoWayTableRequestResponder,
7527    )> {
7528        if let RunnerRequest::CallTwoWayTableRequest { target, request, responder } = self {
7529            Some((target, request, responder))
7530        } else {
7531            None
7532        }
7533    }
7534
7535    #[allow(irrefutable_let_patterns)]
7536    pub fn into_call_two_way_union_request(
7537        self,
7538    ) -> Option<(
7539        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7540        UnionPayload,
7541        RunnerCallTwoWayUnionRequestResponder,
7542    )> {
7543        if let RunnerRequest::CallTwoWayUnionRequest { target, request, responder } = self {
7544            Some((target, request, responder))
7545        } else {
7546            None
7547        }
7548    }
7549
7550    #[allow(irrefutable_let_patterns)]
7551    pub fn into_call_one_way_no_request(
7552        self,
7553    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallOneWayNoRequestResponder)>
7554    {
7555        if let RunnerRequest::CallOneWayNoRequest { target, responder } = self {
7556            Some((target, responder))
7557        } else {
7558            None
7559        }
7560    }
7561
7562    #[allow(irrefutable_let_patterns)]
7563    pub fn into_call_one_way_struct_request(
7564        self,
7565    ) -> Option<(
7566        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7567        NonEmptyPayload,
7568        RunnerCallOneWayStructRequestResponder,
7569    )> {
7570        if let RunnerRequest::CallOneWayStructRequest { target, request, responder } = self {
7571            Some((target, request, responder))
7572        } else {
7573            None
7574        }
7575    }
7576
7577    #[allow(irrefutable_let_patterns)]
7578    pub fn into_call_one_way_table_request(
7579        self,
7580    ) -> Option<(
7581        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7582        TablePayload,
7583        RunnerCallOneWayTableRequestResponder,
7584    )> {
7585        if let RunnerRequest::CallOneWayTableRequest { target, request, responder } = self {
7586            Some((target, request, responder))
7587        } else {
7588            None
7589        }
7590    }
7591
7592    #[allow(irrefutable_let_patterns)]
7593    pub fn into_call_one_way_union_request(
7594        self,
7595    ) -> Option<(
7596        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7597        UnionPayload,
7598        RunnerCallOneWayUnionRequestResponder,
7599    )> {
7600        if let RunnerRequest::CallOneWayUnionRequest { target, request, responder } = self {
7601            Some((target, request, responder))
7602        } else {
7603            None
7604        }
7605    }
7606
7607    #[allow(irrefutable_let_patterns)]
7608    pub fn into_call_strict_one_way(
7609        self,
7610    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictOneWayResponder)>
7611    {
7612        if let RunnerRequest::CallStrictOneWay { target, responder } = self {
7613            Some((target, responder))
7614        } else {
7615            None
7616        }
7617    }
7618
7619    #[allow(irrefutable_let_patterns)]
7620    pub fn into_call_flexible_one_way(
7621        self,
7622    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleOneWayResponder)>
7623    {
7624        if let RunnerRequest::CallFlexibleOneWay { target, responder } = self {
7625            Some((target, responder))
7626        } else {
7627            None
7628        }
7629    }
7630
7631    #[allow(irrefutable_let_patterns)]
7632    pub fn into_call_strict_two_way(
7633        self,
7634    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayResponder)>
7635    {
7636        if let RunnerRequest::CallStrictTwoWay { target, responder } = self {
7637            Some((target, responder))
7638        } else {
7639            None
7640        }
7641    }
7642
7643    #[allow(irrefutable_let_patterns)]
7644    pub fn into_call_strict_two_way_fields(
7645        self,
7646    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayFieldsResponder)>
7647    {
7648        if let RunnerRequest::CallStrictTwoWayFields { target, responder } = self {
7649            Some((target, responder))
7650        } else {
7651            None
7652        }
7653    }
7654
7655    #[allow(irrefutable_let_patterns)]
7656    pub fn into_call_strict_two_way_err(
7657        self,
7658    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayErrResponder)>
7659    {
7660        if let RunnerRequest::CallStrictTwoWayErr { target, responder } = self {
7661            Some((target, responder))
7662        } else {
7663            None
7664        }
7665    }
7666
7667    #[allow(irrefutable_let_patterns)]
7668    pub fn into_call_strict_two_way_fields_err(
7669        self,
7670    ) -> Option<(
7671        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7672        RunnerCallStrictTwoWayFieldsErrResponder,
7673    )> {
7674        if let RunnerRequest::CallStrictTwoWayFieldsErr { target, responder } = self {
7675            Some((target, responder))
7676        } else {
7677            None
7678        }
7679    }
7680
7681    #[allow(irrefutable_let_patterns)]
7682    pub fn into_call_flexible_two_way(
7683        self,
7684    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayResponder)>
7685    {
7686        if let RunnerRequest::CallFlexibleTwoWay { target, responder } = self {
7687            Some((target, responder))
7688        } else {
7689            None
7690        }
7691    }
7692
7693    #[allow(irrefutable_let_patterns)]
7694    pub fn into_call_flexible_two_way_fields(
7695        self,
7696    ) -> Option<(
7697        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7698        RunnerCallFlexibleTwoWayFieldsResponder,
7699    )> {
7700        if let RunnerRequest::CallFlexibleTwoWayFields { target, responder } = self {
7701            Some((target, responder))
7702        } else {
7703            None
7704        }
7705    }
7706
7707    #[allow(irrefutable_let_patterns)]
7708    pub fn into_call_flexible_two_way_err(
7709        self,
7710    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayErrResponder)>
7711    {
7712        if let RunnerRequest::CallFlexibleTwoWayErr { target, responder } = self {
7713            Some((target, responder))
7714        } else {
7715            None
7716        }
7717    }
7718
7719    #[allow(irrefutable_let_patterns)]
7720    pub fn into_call_flexible_two_way_fields_err(
7721        self,
7722    ) -> Option<(
7723        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7724        RunnerCallFlexibleTwoWayFieldsErrResponder,
7725    )> {
7726        if let RunnerRequest::CallFlexibleTwoWayFieldsErr { target, responder } = self {
7727            Some((target, responder))
7728        } else {
7729            None
7730        }
7731    }
7732
7733    #[allow(irrefutable_let_patterns)]
7734    pub fn into_receive_closed_events(
7735        self,
7736    ) -> Option<(
7737        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7738        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7739        RunnerReceiveClosedEventsResponder,
7740    )> {
7741        if let RunnerRequest::ReceiveClosedEvents { target, reporter, responder } = self {
7742            Some((target, reporter, responder))
7743        } else {
7744            None
7745        }
7746    }
7747
7748    #[allow(irrefutable_let_patterns)]
7749    pub fn into_receive_ajar_events(
7750        self,
7751    ) -> Option<(
7752        fidl::endpoints::ClientEnd<AjarTargetMarker>,
7753        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7754        RunnerReceiveAjarEventsResponder,
7755    )> {
7756        if let RunnerRequest::ReceiveAjarEvents { target, reporter, responder } = self {
7757            Some((target, reporter, responder))
7758        } else {
7759            None
7760        }
7761    }
7762
7763    #[allow(irrefutable_let_patterns)]
7764    pub fn into_receive_open_events(
7765        self,
7766    ) -> Option<(
7767        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7768        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7769        RunnerReceiveOpenEventsResponder,
7770    )> {
7771        if let RunnerRequest::ReceiveOpenEvents { target, reporter, responder } = self {
7772            Some((target, reporter, responder))
7773        } else {
7774            None
7775        }
7776    }
7777
7778    /// Name of the method defined in FIDL
7779    pub fn method_name(&self) -> &'static str {
7780        match *self {
7781            RunnerRequest::GetVersion { .. } => "get_version",
7782            RunnerRequest::IsTestEnabled { .. } => "is_test_enabled",
7783            RunnerRequest::CheckAlive { .. } => "check_alive",
7784            RunnerRequest::GetBindingsProperties { .. } => "get_bindings_properties",
7785            RunnerRequest::CallTwoWayNoPayload { .. } => "call_two_way_no_payload",
7786            RunnerRequest::CallTwoWayStructPayload { .. } => "call_two_way_struct_payload",
7787            RunnerRequest::CallTwoWayTablePayload { .. } => "call_two_way_table_payload",
7788            RunnerRequest::CallTwoWayUnionPayload { .. } => "call_two_way_union_payload",
7789            RunnerRequest::CallTwoWayStructPayloadErr { .. } => "call_two_way_struct_payload_err",
7790            RunnerRequest::CallTwoWayStructRequest { .. } => "call_two_way_struct_request",
7791            RunnerRequest::CallTwoWayTableRequest { .. } => "call_two_way_table_request",
7792            RunnerRequest::CallTwoWayUnionRequest { .. } => "call_two_way_union_request",
7793            RunnerRequest::CallOneWayNoRequest { .. } => "call_one_way_no_request",
7794            RunnerRequest::CallOneWayStructRequest { .. } => "call_one_way_struct_request",
7795            RunnerRequest::CallOneWayTableRequest { .. } => "call_one_way_table_request",
7796            RunnerRequest::CallOneWayUnionRequest { .. } => "call_one_way_union_request",
7797            RunnerRequest::CallStrictOneWay { .. } => "call_strict_one_way",
7798            RunnerRequest::CallFlexibleOneWay { .. } => "call_flexible_one_way",
7799            RunnerRequest::CallStrictTwoWay { .. } => "call_strict_two_way",
7800            RunnerRequest::CallStrictTwoWayFields { .. } => "call_strict_two_way_fields",
7801            RunnerRequest::CallStrictTwoWayErr { .. } => "call_strict_two_way_err",
7802            RunnerRequest::CallStrictTwoWayFieldsErr { .. } => "call_strict_two_way_fields_err",
7803            RunnerRequest::CallFlexibleTwoWay { .. } => "call_flexible_two_way",
7804            RunnerRequest::CallFlexibleTwoWayFields { .. } => "call_flexible_two_way_fields",
7805            RunnerRequest::CallFlexibleTwoWayErr { .. } => "call_flexible_two_way_err",
7806            RunnerRequest::CallFlexibleTwoWayFieldsErr { .. } => "call_flexible_two_way_fields_err",
7807            RunnerRequest::ReceiveClosedEvents { .. } => "receive_closed_events",
7808            RunnerRequest::ReceiveAjarEvents { .. } => "receive_ajar_events",
7809            RunnerRequest::ReceiveOpenEvents { .. } => "receive_open_events",
7810        }
7811    }
7812}
7813
7814#[derive(Debug, Clone)]
7815pub struct RunnerControlHandle {
7816    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7817}
7818
7819impl fidl::endpoints::ControlHandle for RunnerControlHandle {
7820    fn shutdown(&self) {
7821        self.inner.shutdown()
7822    }
7823    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
7824        self.inner.shutdown_with_epitaph(status)
7825    }
7826
7827    fn is_closed(&self) -> bool {
7828        self.inner.channel().is_closed()
7829    }
7830    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
7831        self.inner.channel().on_closed()
7832    }
7833
7834    #[cfg(target_os = "fuchsia")]
7835    fn signal_peer(
7836        &self,
7837        clear_mask: zx::Signals,
7838        set_mask: zx::Signals,
7839    ) -> Result<(), zx_status::Status> {
7840        use fidl::Peered;
7841        self.inner.channel().signal_peer(clear_mask, set_mask)
7842    }
7843}
7844
7845impl RunnerControlHandle {}
7846
7847#[must_use = "FIDL methods require a response to be sent"]
7848#[derive(Debug)]
7849pub struct RunnerGetVersionResponder {
7850    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
7851    tx_id: u32,
7852}
7853
7854/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
7855/// if the responder is dropped without sending a response, so that the client
7856/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
7857impl std::ops::Drop for RunnerGetVersionResponder {
7858    fn drop(&mut self) {
7859        self.control_handle.shutdown();
7860        // Safety: drops once, never accessed again
7861        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7862    }
7863}
7864
7865impl fidl::endpoints::Responder for RunnerGetVersionResponder {
7866    type ControlHandle = RunnerControlHandle;
7867
7868    fn control_handle(&self) -> &RunnerControlHandle {
7869        &self.control_handle
7870    }
7871
7872    fn drop_without_shutdown(mut self) {
7873        // Safety: drops once, never accessed again due to mem::forget
7874        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7875        // Prevent Drop from running (which would shut down the channel)
7876        std::mem::forget(self);
7877    }
7878}
7879
7880impl RunnerGetVersionResponder {
7881    /// Sends a response to the FIDL transaction.
7882    ///
7883    /// Sets the channel to shutdown if an error occurs.
7884    pub fn send(self, mut version: u64) -> Result<(), fidl::Error> {
7885        let _result = self.send_raw(version);
7886        if _result.is_err() {
7887            self.control_handle.shutdown();
7888        }
7889        self.drop_without_shutdown();
7890        _result
7891    }
7892
7893    /// Similar to "send" but does not shutdown the channel if an error occurs.
7894    pub fn send_no_shutdown_on_err(self, mut version: u64) -> Result<(), fidl::Error> {
7895        let _result = self.send_raw(version);
7896        self.drop_without_shutdown();
7897        _result
7898    }
7899
7900    fn send_raw(&self, mut version: u64) -> Result<(), fidl::Error> {
7901        self.control_handle.inner.send::<RunnerGetVersionResponse>(
7902            (version,),
7903            self.tx_id,
7904            0x555d1430b913cdd4,
7905            fidl::encoding::DynamicFlags::empty(),
7906        )
7907    }
7908}
7909
7910#[must_use = "FIDL methods require a response to be sent"]
7911#[derive(Debug)]
7912pub struct RunnerIsTestEnabledResponder {
7913    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
7914    tx_id: u32,
7915}
7916
7917/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
7918/// if the responder is dropped without sending a response, so that the client
7919/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
7920impl std::ops::Drop for RunnerIsTestEnabledResponder {
7921    fn drop(&mut self) {
7922        self.control_handle.shutdown();
7923        // Safety: drops once, never accessed again
7924        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7925    }
7926}
7927
7928impl fidl::endpoints::Responder for RunnerIsTestEnabledResponder {
7929    type ControlHandle = RunnerControlHandle;
7930
7931    fn control_handle(&self) -> &RunnerControlHandle {
7932        &self.control_handle
7933    }
7934
7935    fn drop_without_shutdown(mut self) {
7936        // Safety: drops once, never accessed again due to mem::forget
7937        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7938        // Prevent Drop from running (which would shut down the channel)
7939        std::mem::forget(self);
7940    }
7941}
7942
7943impl RunnerIsTestEnabledResponder {
7944    /// Sends a response to the FIDL transaction.
7945    ///
7946    /// Sets the channel to shutdown if an error occurs.
7947    pub fn send(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
7948        let _result = self.send_raw(is_enabled);
7949        if _result.is_err() {
7950            self.control_handle.shutdown();
7951        }
7952        self.drop_without_shutdown();
7953        _result
7954    }
7955
7956    /// Similar to "send" but does not shutdown the channel if an error occurs.
7957    pub fn send_no_shutdown_on_err(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
7958        let _result = self.send_raw(is_enabled);
7959        self.drop_without_shutdown();
7960        _result
7961    }
7962
7963    fn send_raw(&self, mut is_enabled: bool) -> Result<(), fidl::Error> {
7964        self.control_handle.inner.send::<RunnerIsTestEnabledResponse>(
7965            (is_enabled,),
7966            self.tx_id,
7967            0x755bc493368d7c50,
7968            fidl::encoding::DynamicFlags::empty(),
7969        )
7970    }
7971}
7972
7973#[must_use = "FIDL methods require a response to be sent"]
7974#[derive(Debug)]
7975pub struct RunnerCheckAliveResponder {
7976    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
7977    tx_id: u32,
7978}
7979
7980/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
7981/// if the responder is dropped without sending a response, so that the client
7982/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
7983impl std::ops::Drop for RunnerCheckAliveResponder {
7984    fn drop(&mut self) {
7985        self.control_handle.shutdown();
7986        // Safety: drops once, never accessed again
7987        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
7988    }
7989}
7990
7991impl fidl::endpoints::Responder for RunnerCheckAliveResponder {
7992    type ControlHandle = RunnerControlHandle;
7993
7994    fn control_handle(&self) -> &RunnerControlHandle {
7995        &self.control_handle
7996    }
7997
7998    fn drop_without_shutdown(mut self) {
7999        // Safety: drops once, never accessed again due to mem::forget
8000        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8001        // Prevent Drop from running (which would shut down the channel)
8002        std::mem::forget(self);
8003    }
8004}
8005
8006impl RunnerCheckAliveResponder {
8007    /// Sends a response to the FIDL transaction.
8008    ///
8009    /// Sets the channel to shutdown if an error occurs.
8010    pub fn send(self) -> Result<(), fidl::Error> {
8011        let _result = self.send_raw();
8012        if _result.is_err() {
8013            self.control_handle.shutdown();
8014        }
8015        self.drop_without_shutdown();
8016        _result
8017    }
8018
8019    /// Similar to "send" but does not shutdown the channel if an error occurs.
8020    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8021        let _result = self.send_raw();
8022        self.drop_without_shutdown();
8023        _result
8024    }
8025
8026    fn send_raw(&self) -> Result<(), fidl::Error> {
8027        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8028            (),
8029            self.tx_id,
8030            0x5a77b04abdfde130,
8031            fidl::encoding::DynamicFlags::empty(),
8032        )
8033    }
8034}
8035
8036#[must_use = "FIDL methods require a response to be sent"]
8037#[derive(Debug)]
8038pub struct RunnerGetBindingsPropertiesResponder {
8039    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8040    tx_id: u32,
8041}
8042
8043/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8044/// if the responder is dropped without sending a response, so that the client
8045/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8046impl std::ops::Drop for RunnerGetBindingsPropertiesResponder {
8047    fn drop(&mut self) {
8048        self.control_handle.shutdown();
8049        // Safety: drops once, never accessed again
8050        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8051    }
8052}
8053
8054impl fidl::endpoints::Responder for RunnerGetBindingsPropertiesResponder {
8055    type ControlHandle = RunnerControlHandle;
8056
8057    fn control_handle(&self) -> &RunnerControlHandle {
8058        &self.control_handle
8059    }
8060
8061    fn drop_without_shutdown(mut self) {
8062        // Safety: drops once, never accessed again due to mem::forget
8063        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8064        // Prevent Drop from running (which would shut down the channel)
8065        std::mem::forget(self);
8066    }
8067}
8068
8069impl RunnerGetBindingsPropertiesResponder {
8070    /// Sends a response to the FIDL transaction.
8071    ///
8072    /// Sets the channel to shutdown if an error occurs.
8073    pub fn send(self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8074        let _result = self.send_raw(payload);
8075        if _result.is_err() {
8076            self.control_handle.shutdown();
8077        }
8078        self.drop_without_shutdown();
8079        _result
8080    }
8081
8082    /// Similar to "send" but does not shutdown the channel if an error occurs.
8083    pub fn send_no_shutdown_on_err(
8084        self,
8085        mut payload: &BindingsProperties,
8086    ) -> Result<(), fidl::Error> {
8087        let _result = self.send_raw(payload);
8088        self.drop_without_shutdown();
8089        _result
8090    }
8091
8092    fn send_raw(&self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8093        self.control_handle.inner.send::<BindingsProperties>(
8094            payload,
8095            self.tx_id,
8096            0x76b5610bfd4fa636,
8097            fidl::encoding::DynamicFlags::empty(),
8098        )
8099    }
8100}
8101
8102#[must_use = "FIDL methods require a response to be sent"]
8103#[derive(Debug)]
8104pub struct RunnerCallTwoWayNoPayloadResponder {
8105    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8106    tx_id: u32,
8107}
8108
8109/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8110/// if the responder is dropped without sending a response, so that the client
8111/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8112impl std::ops::Drop for RunnerCallTwoWayNoPayloadResponder {
8113    fn drop(&mut self) {
8114        self.control_handle.shutdown();
8115        // Safety: drops once, never accessed again
8116        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8117    }
8118}
8119
8120impl fidl::endpoints::Responder for RunnerCallTwoWayNoPayloadResponder {
8121    type ControlHandle = RunnerControlHandle;
8122
8123    fn control_handle(&self) -> &RunnerControlHandle {
8124        &self.control_handle
8125    }
8126
8127    fn drop_without_shutdown(mut self) {
8128        // Safety: drops once, never accessed again due to mem::forget
8129        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8130        // Prevent Drop from running (which would shut down the channel)
8131        std::mem::forget(self);
8132    }
8133}
8134
8135impl RunnerCallTwoWayNoPayloadResponder {
8136    /// Sends a response to the FIDL transaction.
8137    ///
8138    /// Sets the channel to shutdown if an error occurs.
8139    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8140        let _result = self.send_raw(payload);
8141        if _result.is_err() {
8142            self.control_handle.shutdown();
8143        }
8144        self.drop_without_shutdown();
8145        _result
8146    }
8147
8148    /// Similar to "send" but does not shutdown the channel if an error occurs.
8149    pub fn send_no_shutdown_on_err(
8150        self,
8151        mut payload: &EmptyResultClassification,
8152    ) -> Result<(), fidl::Error> {
8153        let _result = self.send_raw(payload);
8154        self.drop_without_shutdown();
8155        _result
8156    }
8157
8158    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8159        self.control_handle.inner.send::<EmptyResultClassification>(
8160            payload,
8161            self.tx_id,
8162            0x53ac710c20b320a1,
8163            fidl::encoding::DynamicFlags::empty(),
8164        )
8165    }
8166}
8167
8168#[must_use = "FIDL methods require a response to be sent"]
8169#[derive(Debug)]
8170pub struct RunnerCallTwoWayStructPayloadResponder {
8171    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8172    tx_id: u32,
8173}
8174
8175/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8176/// if the responder is dropped without sending a response, so that the client
8177/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8178impl std::ops::Drop for RunnerCallTwoWayStructPayloadResponder {
8179    fn drop(&mut self) {
8180        self.control_handle.shutdown();
8181        // Safety: drops once, never accessed again
8182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8183    }
8184}
8185
8186impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadResponder {
8187    type ControlHandle = RunnerControlHandle;
8188
8189    fn control_handle(&self) -> &RunnerControlHandle {
8190        &self.control_handle
8191    }
8192
8193    fn drop_without_shutdown(mut self) {
8194        // Safety: drops once, never accessed again due to mem::forget
8195        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8196        // Prevent Drop from running (which would shut down the channel)
8197        std::mem::forget(self);
8198    }
8199}
8200
8201impl RunnerCallTwoWayStructPayloadResponder {
8202    /// Sends a response to the FIDL transaction.
8203    ///
8204    /// Sets the channel to shutdown if an error occurs.
8205    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8206        let _result = self.send_raw(payload);
8207        if _result.is_err() {
8208            self.control_handle.shutdown();
8209        }
8210        self.drop_without_shutdown();
8211        _result
8212    }
8213
8214    /// Similar to "send" but does not shutdown the channel if an error occurs.
8215    pub fn send_no_shutdown_on_err(
8216        self,
8217        mut payload: &NonEmptyResultClassification,
8218    ) -> Result<(), fidl::Error> {
8219        let _result = self.send_raw(payload);
8220        self.drop_without_shutdown();
8221        _result
8222    }
8223
8224    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8225        self.control_handle.inner.send::<NonEmptyResultClassification>(
8226            payload,
8227            self.tx_id,
8228            0x24e98c668499b946,
8229            fidl::encoding::DynamicFlags::empty(),
8230        )
8231    }
8232}
8233
8234#[must_use = "FIDL methods require a response to be sent"]
8235#[derive(Debug)]
8236pub struct RunnerCallTwoWayTablePayloadResponder {
8237    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8238    tx_id: u32,
8239}
8240
8241/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8242/// if the responder is dropped without sending a response, so that the client
8243/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8244impl std::ops::Drop for RunnerCallTwoWayTablePayloadResponder {
8245    fn drop(&mut self) {
8246        self.control_handle.shutdown();
8247        // Safety: drops once, never accessed again
8248        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8249    }
8250}
8251
8252impl fidl::endpoints::Responder for RunnerCallTwoWayTablePayloadResponder {
8253    type ControlHandle = RunnerControlHandle;
8254
8255    fn control_handle(&self) -> &RunnerControlHandle {
8256        &self.control_handle
8257    }
8258
8259    fn drop_without_shutdown(mut self) {
8260        // Safety: drops once, never accessed again due to mem::forget
8261        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8262        // Prevent Drop from running (which would shut down the channel)
8263        std::mem::forget(self);
8264    }
8265}
8266
8267impl RunnerCallTwoWayTablePayloadResponder {
8268    /// Sends a response to the FIDL transaction.
8269    ///
8270    /// Sets the channel to shutdown if an error occurs.
8271    pub fn send(self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8272        let _result = self.send_raw(payload);
8273        if _result.is_err() {
8274            self.control_handle.shutdown();
8275        }
8276        self.drop_without_shutdown();
8277        _result
8278    }
8279
8280    /// Similar to "send" but does not shutdown the channel if an error occurs.
8281    pub fn send_no_shutdown_on_err(
8282        self,
8283        mut payload: &TableResultClassification,
8284    ) -> Result<(), fidl::Error> {
8285        let _result = self.send_raw(payload);
8286        self.drop_without_shutdown();
8287        _result
8288    }
8289
8290    fn send_raw(&self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8291        self.control_handle.inner.send::<TableResultClassification>(
8292            payload,
8293            self.tx_id,
8294            0x72e428e1605b76a,
8295            fidl::encoding::DynamicFlags::empty(),
8296        )
8297    }
8298}
8299
8300#[must_use = "FIDL methods require a response to be sent"]
8301#[derive(Debug)]
8302pub struct RunnerCallTwoWayUnionPayloadResponder {
8303    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8304    tx_id: u32,
8305}
8306
8307/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8308/// if the responder is dropped without sending a response, so that the client
8309/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8310impl std::ops::Drop for RunnerCallTwoWayUnionPayloadResponder {
8311    fn drop(&mut self) {
8312        self.control_handle.shutdown();
8313        // Safety: drops once, never accessed again
8314        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8315    }
8316}
8317
8318impl fidl::endpoints::Responder for RunnerCallTwoWayUnionPayloadResponder {
8319    type ControlHandle = RunnerControlHandle;
8320
8321    fn control_handle(&self) -> &RunnerControlHandle {
8322        &self.control_handle
8323    }
8324
8325    fn drop_without_shutdown(mut self) {
8326        // Safety: drops once, never accessed again due to mem::forget
8327        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8328        // Prevent Drop from running (which would shut down the channel)
8329        std::mem::forget(self);
8330    }
8331}
8332
8333impl RunnerCallTwoWayUnionPayloadResponder {
8334    /// Sends a response to the FIDL transaction.
8335    ///
8336    /// Sets the channel to shutdown if an error occurs.
8337    pub fn send(self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8338        let _result = self.send_raw(payload);
8339        if _result.is_err() {
8340            self.control_handle.shutdown();
8341        }
8342        self.drop_without_shutdown();
8343        _result
8344    }
8345
8346    /// Similar to "send" but does not shutdown the channel if an error occurs.
8347    pub fn send_no_shutdown_on_err(
8348        self,
8349        mut payload: &UnionResultClassification,
8350    ) -> Result<(), fidl::Error> {
8351        let _result = self.send_raw(payload);
8352        self.drop_without_shutdown();
8353        _result
8354    }
8355
8356    fn send_raw(&self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8357        self.control_handle.inner.send::<UnionResultClassification>(
8358            payload,
8359            self.tx_id,
8360            0x7dc9d67218343860,
8361            fidl::encoding::DynamicFlags::empty(),
8362        )
8363    }
8364}
8365
8366#[must_use = "FIDL methods require a response to be sent"]
8367#[derive(Debug)]
8368pub struct RunnerCallTwoWayStructPayloadErrResponder {
8369    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8370    tx_id: u32,
8371}
8372
8373/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8374/// if the responder is dropped without sending a response, so that the client
8375/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8376impl std::ops::Drop for RunnerCallTwoWayStructPayloadErrResponder {
8377    fn drop(&mut self) {
8378        self.control_handle.shutdown();
8379        // Safety: drops once, never accessed again
8380        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8381    }
8382}
8383
8384impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadErrResponder {
8385    type ControlHandle = RunnerControlHandle;
8386
8387    fn control_handle(&self) -> &RunnerControlHandle {
8388        &self.control_handle
8389    }
8390
8391    fn drop_without_shutdown(mut self) {
8392        // Safety: drops once, never accessed again due to mem::forget
8393        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8394        // Prevent Drop from running (which would shut down the channel)
8395        std::mem::forget(self);
8396    }
8397}
8398
8399impl RunnerCallTwoWayStructPayloadErrResponder {
8400    /// Sends a response to the FIDL transaction.
8401    ///
8402    /// Sets the channel to shutdown if an error occurs.
8403    pub fn send(
8404        self,
8405        mut payload: &NonEmptyResultWithErrorClassification,
8406    ) -> Result<(), fidl::Error> {
8407        let _result = self.send_raw(payload);
8408        if _result.is_err() {
8409            self.control_handle.shutdown();
8410        }
8411        self.drop_without_shutdown();
8412        _result
8413    }
8414
8415    /// Similar to "send" but does not shutdown the channel if an error occurs.
8416    pub fn send_no_shutdown_on_err(
8417        self,
8418        mut payload: &NonEmptyResultWithErrorClassification,
8419    ) -> Result<(), fidl::Error> {
8420        let _result = self.send_raw(payload);
8421        self.drop_without_shutdown();
8422        _result
8423    }
8424
8425    fn send_raw(
8426        &self,
8427        mut payload: &NonEmptyResultWithErrorClassification,
8428    ) -> Result<(), fidl::Error> {
8429        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
8430            payload,
8431            self.tx_id,
8432            0x2b07a57942c5f6e5,
8433            fidl::encoding::DynamicFlags::empty(),
8434        )
8435    }
8436}
8437
8438#[must_use = "FIDL methods require a response to be sent"]
8439#[derive(Debug)]
8440pub struct RunnerCallTwoWayStructRequestResponder {
8441    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8442    tx_id: u32,
8443}
8444
8445/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8446/// if the responder is dropped without sending a response, so that the client
8447/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8448impl std::ops::Drop for RunnerCallTwoWayStructRequestResponder {
8449    fn drop(&mut self) {
8450        self.control_handle.shutdown();
8451        // Safety: drops once, never accessed again
8452        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8453    }
8454}
8455
8456impl fidl::endpoints::Responder for RunnerCallTwoWayStructRequestResponder {
8457    type ControlHandle = RunnerControlHandle;
8458
8459    fn control_handle(&self) -> &RunnerControlHandle {
8460        &self.control_handle
8461    }
8462
8463    fn drop_without_shutdown(mut self) {
8464        // Safety: drops once, never accessed again due to mem::forget
8465        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8466        // Prevent Drop from running (which would shut down the channel)
8467        std::mem::forget(self);
8468    }
8469}
8470
8471impl RunnerCallTwoWayStructRequestResponder {
8472    /// Sends a response to the FIDL transaction.
8473    ///
8474    /// Sets the channel to shutdown if an error occurs.
8475    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8476        let _result = self.send_raw(payload);
8477        if _result.is_err() {
8478            self.control_handle.shutdown();
8479        }
8480        self.drop_without_shutdown();
8481        _result
8482    }
8483
8484    /// Similar to "send" but does not shutdown the channel if an error occurs.
8485    pub fn send_no_shutdown_on_err(
8486        self,
8487        mut payload: &EmptyResultClassification,
8488    ) -> Result<(), fidl::Error> {
8489        let _result = self.send_raw(payload);
8490        self.drop_without_shutdown();
8491        _result
8492    }
8493
8494    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8495        self.control_handle.inner.send::<EmptyResultClassification>(
8496            payload,
8497            self.tx_id,
8498            0x7c00a6ba2e6c9b45,
8499            fidl::encoding::DynamicFlags::empty(),
8500        )
8501    }
8502}
8503
8504#[must_use = "FIDL methods require a response to be sent"]
8505#[derive(Debug)]
8506pub struct RunnerCallTwoWayTableRequestResponder {
8507    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8508    tx_id: u32,
8509}
8510
8511/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8512/// if the responder is dropped without sending a response, so that the client
8513/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8514impl std::ops::Drop for RunnerCallTwoWayTableRequestResponder {
8515    fn drop(&mut self) {
8516        self.control_handle.shutdown();
8517        // Safety: drops once, never accessed again
8518        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8519    }
8520}
8521
8522impl fidl::endpoints::Responder for RunnerCallTwoWayTableRequestResponder {
8523    type ControlHandle = RunnerControlHandle;
8524
8525    fn control_handle(&self) -> &RunnerControlHandle {
8526        &self.control_handle
8527    }
8528
8529    fn drop_without_shutdown(mut self) {
8530        // Safety: drops once, never accessed again due to mem::forget
8531        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8532        // Prevent Drop from running (which would shut down the channel)
8533        std::mem::forget(self);
8534    }
8535}
8536
8537impl RunnerCallTwoWayTableRequestResponder {
8538    /// Sends a response to the FIDL transaction.
8539    ///
8540    /// Sets the channel to shutdown if an error occurs.
8541    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8542        let _result = self.send_raw(payload);
8543        if _result.is_err() {
8544            self.control_handle.shutdown();
8545        }
8546        self.drop_without_shutdown();
8547        _result
8548    }
8549
8550    /// Similar to "send" but does not shutdown the channel if an error occurs.
8551    pub fn send_no_shutdown_on_err(
8552        self,
8553        mut payload: &EmptyResultClassification,
8554    ) -> Result<(), fidl::Error> {
8555        let _result = self.send_raw(payload);
8556        self.drop_without_shutdown();
8557        _result
8558    }
8559
8560    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8561        self.control_handle.inner.send::<EmptyResultClassification>(
8562            payload,
8563            self.tx_id,
8564            0x641763237d3885be,
8565            fidl::encoding::DynamicFlags::empty(),
8566        )
8567    }
8568}
8569
8570#[must_use = "FIDL methods require a response to be sent"]
8571#[derive(Debug)]
8572pub struct RunnerCallTwoWayUnionRequestResponder {
8573    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8574    tx_id: u32,
8575}
8576
8577/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8578/// if the responder is dropped without sending a response, so that the client
8579/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8580impl std::ops::Drop for RunnerCallTwoWayUnionRequestResponder {
8581    fn drop(&mut self) {
8582        self.control_handle.shutdown();
8583        // Safety: drops once, never accessed again
8584        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8585    }
8586}
8587
8588impl fidl::endpoints::Responder for RunnerCallTwoWayUnionRequestResponder {
8589    type ControlHandle = RunnerControlHandle;
8590
8591    fn control_handle(&self) -> &RunnerControlHandle {
8592        &self.control_handle
8593    }
8594
8595    fn drop_without_shutdown(mut self) {
8596        // Safety: drops once, never accessed again due to mem::forget
8597        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8598        // Prevent Drop from running (which would shut down the channel)
8599        std::mem::forget(self);
8600    }
8601}
8602
8603impl RunnerCallTwoWayUnionRequestResponder {
8604    /// Sends a response to the FIDL transaction.
8605    ///
8606    /// Sets the channel to shutdown if an error occurs.
8607    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8608        let _result = self.send_raw(payload);
8609        if _result.is_err() {
8610            self.control_handle.shutdown();
8611        }
8612        self.drop_without_shutdown();
8613        _result
8614    }
8615
8616    /// Similar to "send" but does not shutdown the channel if an error occurs.
8617    pub fn send_no_shutdown_on_err(
8618        self,
8619        mut payload: &EmptyResultClassification,
8620    ) -> Result<(), fidl::Error> {
8621        let _result = self.send_raw(payload);
8622        self.drop_without_shutdown();
8623        _result
8624    }
8625
8626    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8627        self.control_handle.inner.send::<EmptyResultClassification>(
8628            payload,
8629            self.tx_id,
8630            0x4be5f061df42619e,
8631            fidl::encoding::DynamicFlags::empty(),
8632        )
8633    }
8634}
8635
8636#[must_use = "FIDL methods require a response to be sent"]
8637#[derive(Debug)]
8638pub struct RunnerCallOneWayNoRequestResponder {
8639    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8640    tx_id: u32,
8641}
8642
8643/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8644/// if the responder is dropped without sending a response, so that the client
8645/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8646impl std::ops::Drop for RunnerCallOneWayNoRequestResponder {
8647    fn drop(&mut self) {
8648        self.control_handle.shutdown();
8649        // Safety: drops once, never accessed again
8650        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8651    }
8652}
8653
8654impl fidl::endpoints::Responder for RunnerCallOneWayNoRequestResponder {
8655    type ControlHandle = RunnerControlHandle;
8656
8657    fn control_handle(&self) -> &RunnerControlHandle {
8658        &self.control_handle
8659    }
8660
8661    fn drop_without_shutdown(mut self) {
8662        // Safety: drops once, never accessed again due to mem::forget
8663        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8664        // Prevent Drop from running (which would shut down the channel)
8665        std::mem::forget(self);
8666    }
8667}
8668
8669impl RunnerCallOneWayNoRequestResponder {
8670    /// Sends a response to the FIDL transaction.
8671    ///
8672    /// Sets the channel to shutdown if an error occurs.
8673    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8674        let _result = self.send_raw(payload);
8675        if _result.is_err() {
8676            self.control_handle.shutdown();
8677        }
8678        self.drop_without_shutdown();
8679        _result
8680    }
8681
8682    /// Similar to "send" but does not shutdown the channel if an error occurs.
8683    pub fn send_no_shutdown_on_err(
8684        self,
8685        mut payload: &EmptyResultClassification,
8686    ) -> Result<(), fidl::Error> {
8687        let _result = self.send_raw(payload);
8688        self.drop_without_shutdown();
8689        _result
8690    }
8691
8692    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8693        self.control_handle.inner.send::<EmptyResultClassification>(
8694            payload,
8695            self.tx_id,
8696            0x24b6eea8cbdccc09,
8697            fidl::encoding::DynamicFlags::empty(),
8698        )
8699    }
8700}
8701
8702#[must_use = "FIDL methods require a response to be sent"]
8703#[derive(Debug)]
8704pub struct RunnerCallOneWayStructRequestResponder {
8705    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8706    tx_id: u32,
8707}
8708
8709/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8710/// if the responder is dropped without sending a response, so that the client
8711/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8712impl std::ops::Drop for RunnerCallOneWayStructRequestResponder {
8713    fn drop(&mut self) {
8714        self.control_handle.shutdown();
8715        // Safety: drops once, never accessed again
8716        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8717    }
8718}
8719
8720impl fidl::endpoints::Responder for RunnerCallOneWayStructRequestResponder {
8721    type ControlHandle = RunnerControlHandle;
8722
8723    fn control_handle(&self) -> &RunnerControlHandle {
8724        &self.control_handle
8725    }
8726
8727    fn drop_without_shutdown(mut self) {
8728        // Safety: drops once, never accessed again due to mem::forget
8729        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8730        // Prevent Drop from running (which would shut down the channel)
8731        std::mem::forget(self);
8732    }
8733}
8734
8735impl RunnerCallOneWayStructRequestResponder {
8736    /// Sends a response to the FIDL transaction.
8737    ///
8738    /// Sets the channel to shutdown if an error occurs.
8739    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8740        let _result = self.send_raw(payload);
8741        if _result.is_err() {
8742            self.control_handle.shutdown();
8743        }
8744        self.drop_without_shutdown();
8745        _result
8746    }
8747
8748    /// Similar to "send" but does not shutdown the channel if an error occurs.
8749    pub fn send_no_shutdown_on_err(
8750        self,
8751        mut payload: &EmptyResultClassification,
8752    ) -> Result<(), fidl::Error> {
8753        let _result = self.send_raw(payload);
8754        self.drop_without_shutdown();
8755        _result
8756    }
8757
8758    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8759        self.control_handle.inner.send::<EmptyResultClassification>(
8760            payload,
8761            self.tx_id,
8762            0x352a2907a0fcb420,
8763            fidl::encoding::DynamicFlags::empty(),
8764        )
8765    }
8766}
8767
8768#[must_use = "FIDL methods require a response to be sent"]
8769#[derive(Debug)]
8770pub struct RunnerCallOneWayTableRequestResponder {
8771    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8772    tx_id: u32,
8773}
8774
8775/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8776/// if the responder is dropped without sending a response, so that the client
8777/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8778impl std::ops::Drop for RunnerCallOneWayTableRequestResponder {
8779    fn drop(&mut self) {
8780        self.control_handle.shutdown();
8781        // Safety: drops once, never accessed again
8782        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8783    }
8784}
8785
8786impl fidl::endpoints::Responder for RunnerCallOneWayTableRequestResponder {
8787    type ControlHandle = RunnerControlHandle;
8788
8789    fn control_handle(&self) -> &RunnerControlHandle {
8790        &self.control_handle
8791    }
8792
8793    fn drop_without_shutdown(mut self) {
8794        // Safety: drops once, never accessed again due to mem::forget
8795        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8796        // Prevent Drop from running (which would shut down the channel)
8797        std::mem::forget(self);
8798    }
8799}
8800
8801impl RunnerCallOneWayTableRequestResponder {
8802    /// Sends a response to the FIDL transaction.
8803    ///
8804    /// Sets the channel to shutdown if an error occurs.
8805    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8806        let _result = self.send_raw(payload);
8807        if _result.is_err() {
8808            self.control_handle.shutdown();
8809        }
8810        self.drop_without_shutdown();
8811        _result
8812    }
8813
8814    /// Similar to "send" but does not shutdown the channel if an error occurs.
8815    pub fn send_no_shutdown_on_err(
8816        self,
8817        mut payload: &EmptyResultClassification,
8818    ) -> Result<(), fidl::Error> {
8819        let _result = self.send_raw(payload);
8820        self.drop_without_shutdown();
8821        _result
8822    }
8823
8824    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8825        self.control_handle.inner.send::<EmptyResultClassification>(
8826            payload,
8827            self.tx_id,
8828            0x734121bf8bf336ef,
8829            fidl::encoding::DynamicFlags::empty(),
8830        )
8831    }
8832}
8833
8834#[must_use = "FIDL methods require a response to be sent"]
8835#[derive(Debug)]
8836pub struct RunnerCallOneWayUnionRequestResponder {
8837    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8838    tx_id: u32,
8839}
8840
8841/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8842/// if the responder is dropped without sending a response, so that the client
8843/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8844impl std::ops::Drop for RunnerCallOneWayUnionRequestResponder {
8845    fn drop(&mut self) {
8846        self.control_handle.shutdown();
8847        // Safety: drops once, never accessed again
8848        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8849    }
8850}
8851
8852impl fidl::endpoints::Responder for RunnerCallOneWayUnionRequestResponder {
8853    type ControlHandle = RunnerControlHandle;
8854
8855    fn control_handle(&self) -> &RunnerControlHandle {
8856        &self.control_handle
8857    }
8858
8859    fn drop_without_shutdown(mut self) {
8860        // Safety: drops once, never accessed again due to mem::forget
8861        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8862        // Prevent Drop from running (which would shut down the channel)
8863        std::mem::forget(self);
8864    }
8865}
8866
8867impl RunnerCallOneWayUnionRequestResponder {
8868    /// Sends a response to the FIDL transaction.
8869    ///
8870    /// Sets the channel to shutdown if an error occurs.
8871    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8872        let _result = self.send_raw(payload);
8873        if _result.is_err() {
8874            self.control_handle.shutdown();
8875        }
8876        self.drop_without_shutdown();
8877        _result
8878    }
8879
8880    /// Similar to "send" but does not shutdown the channel if an error occurs.
8881    pub fn send_no_shutdown_on_err(
8882        self,
8883        mut payload: &EmptyResultClassification,
8884    ) -> Result<(), fidl::Error> {
8885        let _result = self.send_raw(payload);
8886        self.drop_without_shutdown();
8887        _result
8888    }
8889
8890    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8891        self.control_handle.inner.send::<EmptyResultClassification>(
8892            payload,
8893            self.tx_id,
8894            0x9be8e5eb7d50eb6,
8895            fidl::encoding::DynamicFlags::empty(),
8896        )
8897    }
8898}
8899
8900#[must_use = "FIDL methods require a response to be sent"]
8901#[derive(Debug)]
8902pub struct RunnerCallStrictOneWayResponder {
8903    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8904    tx_id: u32,
8905}
8906
8907/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8908/// if the responder is dropped without sending a response, so that the client
8909/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8910impl std::ops::Drop for RunnerCallStrictOneWayResponder {
8911    fn drop(&mut self) {
8912        self.control_handle.shutdown();
8913        // Safety: drops once, never accessed again
8914        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8915    }
8916}
8917
8918impl fidl::endpoints::Responder for RunnerCallStrictOneWayResponder {
8919    type ControlHandle = RunnerControlHandle;
8920
8921    fn control_handle(&self) -> &RunnerControlHandle {
8922        &self.control_handle
8923    }
8924
8925    fn drop_without_shutdown(mut self) {
8926        // Safety: drops once, never accessed again due to mem::forget
8927        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8928        // Prevent Drop from running (which would shut down the channel)
8929        std::mem::forget(self);
8930    }
8931}
8932
8933impl RunnerCallStrictOneWayResponder {
8934    /// Sends a response to the FIDL transaction.
8935    ///
8936    /// Sets the channel to shutdown if an error occurs.
8937    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8938        let _result = self.send_raw(payload);
8939        if _result.is_err() {
8940            self.control_handle.shutdown();
8941        }
8942        self.drop_without_shutdown();
8943        _result
8944    }
8945
8946    /// Similar to "send" but does not shutdown the channel if an error occurs.
8947    pub fn send_no_shutdown_on_err(
8948        self,
8949        mut payload: &EmptyResultClassification,
8950    ) -> Result<(), fidl::Error> {
8951        let _result = self.send_raw(payload);
8952        self.drop_without_shutdown();
8953        _result
8954    }
8955
8956    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8957        self.control_handle.inner.send::<EmptyResultClassification>(
8958            payload,
8959            self.tx_id,
8960            0x4edd0b6f52c0446b,
8961            fidl::encoding::DynamicFlags::empty(),
8962        )
8963    }
8964}
8965
8966#[must_use = "FIDL methods require a response to be sent"]
8967#[derive(Debug)]
8968pub struct RunnerCallFlexibleOneWayResponder {
8969    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8970    tx_id: u32,
8971}
8972
8973/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8974/// if the responder is dropped without sending a response, so that the client
8975/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8976impl std::ops::Drop for RunnerCallFlexibleOneWayResponder {
8977    fn drop(&mut self) {
8978        self.control_handle.shutdown();
8979        // Safety: drops once, never accessed again
8980        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8981    }
8982}
8983
8984impl fidl::endpoints::Responder for RunnerCallFlexibleOneWayResponder {
8985    type ControlHandle = RunnerControlHandle;
8986
8987    fn control_handle(&self) -> &RunnerControlHandle {
8988        &self.control_handle
8989    }
8990
8991    fn drop_without_shutdown(mut self) {
8992        // Safety: drops once, never accessed again due to mem::forget
8993        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8994        // Prevent Drop from running (which would shut down the channel)
8995        std::mem::forget(self);
8996    }
8997}
8998
8999impl RunnerCallFlexibleOneWayResponder {
9000    /// Sends a response to the FIDL transaction.
9001    ///
9002    /// Sets the channel to shutdown if an error occurs.
9003    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9004        let _result = self.send_raw(payload);
9005        if _result.is_err() {
9006            self.control_handle.shutdown();
9007        }
9008        self.drop_without_shutdown();
9009        _result
9010    }
9011
9012    /// Similar to "send" but does not shutdown the channel if an error occurs.
9013    pub fn send_no_shutdown_on_err(
9014        self,
9015        mut payload: &EmptyResultClassification,
9016    ) -> Result<(), fidl::Error> {
9017        let _result = self.send_raw(payload);
9018        self.drop_without_shutdown();
9019        _result
9020    }
9021
9022    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9023        self.control_handle.inner.send::<EmptyResultClassification>(
9024            payload,
9025            self.tx_id,
9026            0x7253f10a77dfe817,
9027            fidl::encoding::DynamicFlags::empty(),
9028        )
9029    }
9030}
9031
9032#[must_use = "FIDL methods require a response to be sent"]
9033#[derive(Debug)]
9034pub struct RunnerCallStrictTwoWayResponder {
9035    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9036    tx_id: u32,
9037}
9038
9039/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9040/// if the responder is dropped without sending a response, so that the client
9041/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9042impl std::ops::Drop for RunnerCallStrictTwoWayResponder {
9043    fn drop(&mut self) {
9044        self.control_handle.shutdown();
9045        // Safety: drops once, never accessed again
9046        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9047    }
9048}
9049
9050impl fidl::endpoints::Responder for RunnerCallStrictTwoWayResponder {
9051    type ControlHandle = RunnerControlHandle;
9052
9053    fn control_handle(&self) -> &RunnerControlHandle {
9054        &self.control_handle
9055    }
9056
9057    fn drop_without_shutdown(mut self) {
9058        // Safety: drops once, never accessed again due to mem::forget
9059        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9060        // Prevent Drop from running (which would shut down the channel)
9061        std::mem::forget(self);
9062    }
9063}
9064
9065impl RunnerCallStrictTwoWayResponder {
9066    /// Sends a response to the FIDL transaction.
9067    ///
9068    /// Sets the channel to shutdown if an error occurs.
9069    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9070        let _result = self.send_raw(payload);
9071        if _result.is_err() {
9072            self.control_handle.shutdown();
9073        }
9074        self.drop_without_shutdown();
9075        _result
9076    }
9077
9078    /// Similar to "send" but does not shutdown the channel if an error occurs.
9079    pub fn send_no_shutdown_on_err(
9080        self,
9081        mut payload: &EmptyResultClassification,
9082    ) -> Result<(), fidl::Error> {
9083        let _result = self.send_raw(payload);
9084        self.drop_without_shutdown();
9085        _result
9086    }
9087
9088    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9089        self.control_handle.inner.send::<EmptyResultClassification>(
9090            payload,
9091            self.tx_id,
9092            0x1fa9fb7414aedd27,
9093            fidl::encoding::DynamicFlags::empty(),
9094        )
9095    }
9096}
9097
9098#[must_use = "FIDL methods require a response to be sent"]
9099#[derive(Debug)]
9100pub struct RunnerCallStrictTwoWayFieldsResponder {
9101    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9102    tx_id: u32,
9103}
9104
9105/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9106/// if the responder is dropped without sending a response, so that the client
9107/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9108impl std::ops::Drop for RunnerCallStrictTwoWayFieldsResponder {
9109    fn drop(&mut self) {
9110        self.control_handle.shutdown();
9111        // Safety: drops once, never accessed again
9112        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9113    }
9114}
9115
9116impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsResponder {
9117    type ControlHandle = RunnerControlHandle;
9118
9119    fn control_handle(&self) -> &RunnerControlHandle {
9120        &self.control_handle
9121    }
9122
9123    fn drop_without_shutdown(mut self) {
9124        // Safety: drops once, never accessed again due to mem::forget
9125        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9126        // Prevent Drop from running (which would shut down the channel)
9127        std::mem::forget(self);
9128    }
9129}
9130
9131impl RunnerCallStrictTwoWayFieldsResponder {
9132    /// Sends a response to the FIDL transaction.
9133    ///
9134    /// Sets the channel to shutdown if an error occurs.
9135    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9136        let _result = self.send_raw(payload);
9137        if _result.is_err() {
9138            self.control_handle.shutdown();
9139        }
9140        self.drop_without_shutdown();
9141        _result
9142    }
9143
9144    /// Similar to "send" but does not shutdown the channel if an error occurs.
9145    pub fn send_no_shutdown_on_err(
9146        self,
9147        mut payload: &NonEmptyResultClassification,
9148    ) -> Result<(), fidl::Error> {
9149        let _result = self.send_raw(payload);
9150        self.drop_without_shutdown();
9151        _result
9152    }
9153
9154    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9155        self.control_handle.inner.send::<NonEmptyResultClassification>(
9156            payload,
9157            self.tx_id,
9158            0x6f690e00ebf6f123,
9159            fidl::encoding::DynamicFlags::empty(),
9160        )
9161    }
9162}
9163
9164#[must_use = "FIDL methods require a response to be sent"]
9165#[derive(Debug)]
9166pub struct RunnerCallStrictTwoWayErrResponder {
9167    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9168    tx_id: u32,
9169}
9170
9171/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9172/// if the responder is dropped without sending a response, so that the client
9173/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9174impl std::ops::Drop for RunnerCallStrictTwoWayErrResponder {
9175    fn drop(&mut self) {
9176        self.control_handle.shutdown();
9177        // Safety: drops once, never accessed again
9178        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9179    }
9180}
9181
9182impl fidl::endpoints::Responder for RunnerCallStrictTwoWayErrResponder {
9183    type ControlHandle = RunnerControlHandle;
9184
9185    fn control_handle(&self) -> &RunnerControlHandle {
9186        &self.control_handle
9187    }
9188
9189    fn drop_without_shutdown(mut self) {
9190        // Safety: drops once, never accessed again due to mem::forget
9191        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9192        // Prevent Drop from running (which would shut down the channel)
9193        std::mem::forget(self);
9194    }
9195}
9196
9197impl RunnerCallStrictTwoWayErrResponder {
9198    /// Sends a response to the FIDL transaction.
9199    ///
9200    /// Sets the channel to shutdown if an error occurs.
9201    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9202        let _result = self.send_raw(payload);
9203        if _result.is_err() {
9204            self.control_handle.shutdown();
9205        }
9206        self.drop_without_shutdown();
9207        _result
9208    }
9209
9210    /// Similar to "send" but does not shutdown the channel if an error occurs.
9211    pub fn send_no_shutdown_on_err(
9212        self,
9213        mut payload: &EmptyResultWithErrorClassification,
9214    ) -> Result<(), fidl::Error> {
9215        let _result = self.send_raw(payload);
9216        self.drop_without_shutdown();
9217        _result
9218    }
9219
9220    fn send_raw(
9221        &self,
9222        mut payload: &EmptyResultWithErrorClassification,
9223    ) -> Result<(), fidl::Error> {
9224        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9225            payload,
9226            self.tx_id,
9227            0x51d6bc7cf6cbaf1a,
9228            fidl::encoding::DynamicFlags::empty(),
9229        )
9230    }
9231}
9232
9233#[must_use = "FIDL methods require a response to be sent"]
9234#[derive(Debug)]
9235pub struct RunnerCallStrictTwoWayFieldsErrResponder {
9236    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9237    tx_id: u32,
9238}
9239
9240/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9241/// if the responder is dropped without sending a response, so that the client
9242/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9243impl std::ops::Drop for RunnerCallStrictTwoWayFieldsErrResponder {
9244    fn drop(&mut self) {
9245        self.control_handle.shutdown();
9246        // Safety: drops once, never accessed again
9247        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9248    }
9249}
9250
9251impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsErrResponder {
9252    type ControlHandle = RunnerControlHandle;
9253
9254    fn control_handle(&self) -> &RunnerControlHandle {
9255        &self.control_handle
9256    }
9257
9258    fn drop_without_shutdown(mut self) {
9259        // Safety: drops once, never accessed again due to mem::forget
9260        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9261        // Prevent Drop from running (which would shut down the channel)
9262        std::mem::forget(self);
9263    }
9264}
9265
9266impl RunnerCallStrictTwoWayFieldsErrResponder {
9267    /// Sends a response to the FIDL transaction.
9268    ///
9269    /// Sets the channel to shutdown if an error occurs.
9270    pub fn send(
9271        self,
9272        mut payload: &NonEmptyResultWithErrorClassification,
9273    ) -> Result<(), fidl::Error> {
9274        let _result = self.send_raw(payload);
9275        if _result.is_err() {
9276            self.control_handle.shutdown();
9277        }
9278        self.drop_without_shutdown();
9279        _result
9280    }
9281
9282    /// Similar to "send" but does not shutdown the channel if an error occurs.
9283    pub fn send_no_shutdown_on_err(
9284        self,
9285        mut payload: &NonEmptyResultWithErrorClassification,
9286    ) -> Result<(), fidl::Error> {
9287        let _result = self.send_raw(payload);
9288        self.drop_without_shutdown();
9289        _result
9290    }
9291
9292    fn send_raw(
9293        &self,
9294        mut payload: &NonEmptyResultWithErrorClassification,
9295    ) -> Result<(), fidl::Error> {
9296        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9297            payload,
9298            self.tx_id,
9299            0x6fa31ced05074c05,
9300            fidl::encoding::DynamicFlags::empty(),
9301        )
9302    }
9303}
9304
9305#[must_use = "FIDL methods require a response to be sent"]
9306#[derive(Debug)]
9307pub struct RunnerCallFlexibleTwoWayResponder {
9308    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9309    tx_id: u32,
9310}
9311
9312/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9313/// if the responder is dropped without sending a response, so that the client
9314/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9315impl std::ops::Drop for RunnerCallFlexibleTwoWayResponder {
9316    fn drop(&mut self) {
9317        self.control_handle.shutdown();
9318        // Safety: drops once, never accessed again
9319        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9320    }
9321}
9322
9323impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayResponder {
9324    type ControlHandle = RunnerControlHandle;
9325
9326    fn control_handle(&self) -> &RunnerControlHandle {
9327        &self.control_handle
9328    }
9329
9330    fn drop_without_shutdown(mut self) {
9331        // Safety: drops once, never accessed again due to mem::forget
9332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9333        // Prevent Drop from running (which would shut down the channel)
9334        std::mem::forget(self);
9335    }
9336}
9337
9338impl RunnerCallFlexibleTwoWayResponder {
9339    /// Sends a response to the FIDL transaction.
9340    ///
9341    /// Sets the channel to shutdown if an error occurs.
9342    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9343        let _result = self.send_raw(payload);
9344        if _result.is_err() {
9345            self.control_handle.shutdown();
9346        }
9347        self.drop_without_shutdown();
9348        _result
9349    }
9350
9351    /// Similar to "send" but does not shutdown the channel if an error occurs.
9352    pub fn send_no_shutdown_on_err(
9353        self,
9354        mut payload: &EmptyResultClassification,
9355    ) -> Result<(), fidl::Error> {
9356        let _result = self.send_raw(payload);
9357        self.drop_without_shutdown();
9358        _result
9359    }
9360
9361    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9362        self.control_handle.inner.send::<EmptyResultClassification>(
9363            payload,
9364            self.tx_id,
9365            0x411f70724876d49,
9366            fidl::encoding::DynamicFlags::empty(),
9367        )
9368    }
9369}
9370
9371#[must_use = "FIDL methods require a response to be sent"]
9372#[derive(Debug)]
9373pub struct RunnerCallFlexibleTwoWayFieldsResponder {
9374    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9375    tx_id: u32,
9376}
9377
9378/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9379/// if the responder is dropped without sending a response, so that the client
9380/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9381impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsResponder {
9382    fn drop(&mut self) {
9383        self.control_handle.shutdown();
9384        // Safety: drops once, never accessed again
9385        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9386    }
9387}
9388
9389impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsResponder {
9390    type ControlHandle = RunnerControlHandle;
9391
9392    fn control_handle(&self) -> &RunnerControlHandle {
9393        &self.control_handle
9394    }
9395
9396    fn drop_without_shutdown(mut self) {
9397        // Safety: drops once, never accessed again due to mem::forget
9398        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9399        // Prevent Drop from running (which would shut down the channel)
9400        std::mem::forget(self);
9401    }
9402}
9403
9404impl RunnerCallFlexibleTwoWayFieldsResponder {
9405    /// Sends a response to the FIDL transaction.
9406    ///
9407    /// Sets the channel to shutdown if an error occurs.
9408    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9409        let _result = self.send_raw(payload);
9410        if _result.is_err() {
9411            self.control_handle.shutdown();
9412        }
9413        self.drop_without_shutdown();
9414        _result
9415    }
9416
9417    /// Similar to "send" but does not shutdown the channel if an error occurs.
9418    pub fn send_no_shutdown_on_err(
9419        self,
9420        mut payload: &NonEmptyResultClassification,
9421    ) -> Result<(), fidl::Error> {
9422        let _result = self.send_raw(payload);
9423        self.drop_without_shutdown();
9424        _result
9425    }
9426
9427    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9428        self.control_handle.inner.send::<NonEmptyResultClassification>(
9429            payload,
9430            self.tx_id,
9431            0x330996b623598eed,
9432            fidl::encoding::DynamicFlags::empty(),
9433        )
9434    }
9435}
9436
9437#[must_use = "FIDL methods require a response to be sent"]
9438#[derive(Debug)]
9439pub struct RunnerCallFlexibleTwoWayErrResponder {
9440    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9441    tx_id: u32,
9442}
9443
9444/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9445/// if the responder is dropped without sending a response, so that the client
9446/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9447impl std::ops::Drop for RunnerCallFlexibleTwoWayErrResponder {
9448    fn drop(&mut self) {
9449        self.control_handle.shutdown();
9450        // Safety: drops once, never accessed again
9451        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9452    }
9453}
9454
9455impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayErrResponder {
9456    type ControlHandle = RunnerControlHandle;
9457
9458    fn control_handle(&self) -> &RunnerControlHandle {
9459        &self.control_handle
9460    }
9461
9462    fn drop_without_shutdown(mut self) {
9463        // Safety: drops once, never accessed again due to mem::forget
9464        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9465        // Prevent Drop from running (which would shut down the channel)
9466        std::mem::forget(self);
9467    }
9468}
9469
9470impl RunnerCallFlexibleTwoWayErrResponder {
9471    /// Sends a response to the FIDL transaction.
9472    ///
9473    /// Sets the channel to shutdown if an error occurs.
9474    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9475        let _result = self.send_raw(payload);
9476        if _result.is_err() {
9477            self.control_handle.shutdown();
9478        }
9479        self.drop_without_shutdown();
9480        _result
9481    }
9482
9483    /// Similar to "send" but does not shutdown the channel if an error occurs.
9484    pub fn send_no_shutdown_on_err(
9485        self,
9486        mut payload: &EmptyResultWithErrorClassification,
9487    ) -> Result<(), fidl::Error> {
9488        let _result = self.send_raw(payload);
9489        self.drop_without_shutdown();
9490        _result
9491    }
9492
9493    fn send_raw(
9494        &self,
9495        mut payload: &EmptyResultWithErrorClassification,
9496    ) -> Result<(), fidl::Error> {
9497        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9498            payload,
9499            self.tx_id,
9500            0x5ddbf88a353a2a57,
9501            fidl::encoding::DynamicFlags::empty(),
9502        )
9503    }
9504}
9505
9506#[must_use = "FIDL methods require a response to be sent"]
9507#[derive(Debug)]
9508pub struct RunnerCallFlexibleTwoWayFieldsErrResponder {
9509    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9510    tx_id: u32,
9511}
9512
9513/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9514/// if the responder is dropped without sending a response, so that the client
9515/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9516impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsErrResponder {
9517    fn drop(&mut self) {
9518        self.control_handle.shutdown();
9519        // Safety: drops once, never accessed again
9520        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9521    }
9522}
9523
9524impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsErrResponder {
9525    type ControlHandle = RunnerControlHandle;
9526
9527    fn control_handle(&self) -> &RunnerControlHandle {
9528        &self.control_handle
9529    }
9530
9531    fn drop_without_shutdown(mut self) {
9532        // Safety: drops once, never accessed again due to mem::forget
9533        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9534        // Prevent Drop from running (which would shut down the channel)
9535        std::mem::forget(self);
9536    }
9537}
9538
9539impl RunnerCallFlexibleTwoWayFieldsErrResponder {
9540    /// Sends a response to the FIDL transaction.
9541    ///
9542    /// Sets the channel to shutdown if an error occurs.
9543    pub fn send(
9544        self,
9545        mut payload: &NonEmptyResultWithErrorClassification,
9546    ) -> Result<(), fidl::Error> {
9547        let _result = self.send_raw(payload);
9548        if _result.is_err() {
9549            self.control_handle.shutdown();
9550        }
9551        self.drop_without_shutdown();
9552        _result
9553    }
9554
9555    /// Similar to "send" but does not shutdown the channel if an error occurs.
9556    pub fn send_no_shutdown_on_err(
9557        self,
9558        mut payload: &NonEmptyResultWithErrorClassification,
9559    ) -> Result<(), fidl::Error> {
9560        let _result = self.send_raw(payload);
9561        self.drop_without_shutdown();
9562        _result
9563    }
9564
9565    fn send_raw(
9566        &self,
9567        mut payload: &NonEmptyResultWithErrorClassification,
9568    ) -> Result<(), fidl::Error> {
9569        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9570            payload,
9571            self.tx_id,
9572            0x7ae309383b07048e,
9573            fidl::encoding::DynamicFlags::empty(),
9574        )
9575    }
9576}
9577
9578#[must_use = "FIDL methods require a response to be sent"]
9579#[derive(Debug)]
9580pub struct RunnerReceiveClosedEventsResponder {
9581    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9582    tx_id: u32,
9583}
9584
9585/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9586/// if the responder is dropped without sending a response, so that the client
9587/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9588impl std::ops::Drop for RunnerReceiveClosedEventsResponder {
9589    fn drop(&mut self) {
9590        self.control_handle.shutdown();
9591        // Safety: drops once, never accessed again
9592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9593    }
9594}
9595
9596impl fidl::endpoints::Responder for RunnerReceiveClosedEventsResponder {
9597    type ControlHandle = RunnerControlHandle;
9598
9599    fn control_handle(&self) -> &RunnerControlHandle {
9600        &self.control_handle
9601    }
9602
9603    fn drop_without_shutdown(mut self) {
9604        // Safety: drops once, never accessed again due to mem::forget
9605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9606        // Prevent Drop from running (which would shut down the channel)
9607        std::mem::forget(self);
9608    }
9609}
9610
9611impl RunnerReceiveClosedEventsResponder {
9612    /// Sends a response to the FIDL transaction.
9613    ///
9614    /// Sets the channel to shutdown if an error occurs.
9615    pub fn send(self) -> Result<(), fidl::Error> {
9616        let _result = self.send_raw();
9617        if _result.is_err() {
9618            self.control_handle.shutdown();
9619        }
9620        self.drop_without_shutdown();
9621        _result
9622    }
9623
9624    /// Similar to "send" but does not shutdown the channel if an error occurs.
9625    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9626        let _result = self.send_raw();
9627        self.drop_without_shutdown();
9628        _result
9629    }
9630
9631    fn send_raw(&self) -> Result<(), fidl::Error> {
9632        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9633            (),
9634            self.tx_id,
9635            0x48da834910571aeb,
9636            fidl::encoding::DynamicFlags::empty(),
9637        )
9638    }
9639}
9640
9641#[must_use = "FIDL methods require a response to be sent"]
9642#[derive(Debug)]
9643pub struct RunnerReceiveAjarEventsResponder {
9644    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9645    tx_id: u32,
9646}
9647
9648/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9649/// if the responder is dropped without sending a response, so that the client
9650/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9651impl std::ops::Drop for RunnerReceiveAjarEventsResponder {
9652    fn drop(&mut self) {
9653        self.control_handle.shutdown();
9654        // Safety: drops once, never accessed again
9655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9656    }
9657}
9658
9659impl fidl::endpoints::Responder for RunnerReceiveAjarEventsResponder {
9660    type ControlHandle = RunnerControlHandle;
9661
9662    fn control_handle(&self) -> &RunnerControlHandle {
9663        &self.control_handle
9664    }
9665
9666    fn drop_without_shutdown(mut self) {
9667        // Safety: drops once, never accessed again due to mem::forget
9668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9669        // Prevent Drop from running (which would shut down the channel)
9670        std::mem::forget(self);
9671    }
9672}
9673
9674impl RunnerReceiveAjarEventsResponder {
9675    /// Sends a response to the FIDL transaction.
9676    ///
9677    /// Sets the channel to shutdown if an error occurs.
9678    pub fn send(self) -> Result<(), fidl::Error> {
9679        let _result = self.send_raw();
9680        if _result.is_err() {
9681            self.control_handle.shutdown();
9682        }
9683        self.drop_without_shutdown();
9684        _result
9685    }
9686
9687    /// Similar to "send" but does not shutdown the channel if an error occurs.
9688    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9689        let _result = self.send_raw();
9690        self.drop_without_shutdown();
9691        _result
9692    }
9693
9694    fn send_raw(&self) -> Result<(), fidl::Error> {
9695        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9696            (),
9697            self.tx_id,
9698            0xc5662b9a9c007a3,
9699            fidl::encoding::DynamicFlags::empty(),
9700        )
9701    }
9702}
9703
9704#[must_use = "FIDL methods require a response to be sent"]
9705#[derive(Debug)]
9706pub struct RunnerReceiveOpenEventsResponder {
9707    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9708    tx_id: u32,
9709}
9710
9711/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9712/// if the responder is dropped without sending a response, so that the client
9713/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9714impl std::ops::Drop for RunnerReceiveOpenEventsResponder {
9715    fn drop(&mut self) {
9716        self.control_handle.shutdown();
9717        // Safety: drops once, never accessed again
9718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9719    }
9720}
9721
9722impl fidl::endpoints::Responder for RunnerReceiveOpenEventsResponder {
9723    type ControlHandle = RunnerControlHandle;
9724
9725    fn control_handle(&self) -> &RunnerControlHandle {
9726        &self.control_handle
9727    }
9728
9729    fn drop_without_shutdown(mut self) {
9730        // Safety: drops once, never accessed again due to mem::forget
9731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9732        // Prevent Drop from running (which would shut down the channel)
9733        std::mem::forget(self);
9734    }
9735}
9736
9737impl RunnerReceiveOpenEventsResponder {
9738    /// Sends a response to the FIDL transaction.
9739    ///
9740    /// Sets the channel to shutdown if an error occurs.
9741    pub fn send(self) -> Result<(), fidl::Error> {
9742        let _result = self.send_raw();
9743        if _result.is_err() {
9744            self.control_handle.shutdown();
9745        }
9746        self.drop_without_shutdown();
9747        _result
9748    }
9749
9750    /// Similar to "send" but does not shutdown the channel if an error occurs.
9751    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9752        let _result = self.send_raw();
9753        self.drop_without_shutdown();
9754        _result
9755    }
9756
9757    fn send_raw(&self) -> Result<(), fidl::Error> {
9758        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9759            (),
9760            self.tx_id,
9761            0x79a7073fd18edbdf,
9762            fidl::encoding::DynamicFlags::empty(),
9763        )
9764    }
9765}
9766
9767mod internal {
9768    use super::*;
9769
9770    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleOneWayRequest {
9771        type Borrowed<'a> = &'a mut Self;
9772        fn take_or_borrow<'a>(
9773            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
9774        ) -> Self::Borrowed<'a> {
9775            value
9776        }
9777    }
9778
9779    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleOneWayRequest {
9780        type Owned = Self;
9781
9782        #[inline(always)]
9783        fn inline_align(_context: fidl::encoding::Context) -> usize {
9784            4
9785        }
9786
9787        #[inline(always)]
9788        fn inline_size(_context: fidl::encoding::Context) -> usize {
9789            4
9790        }
9791    }
9792
9793    unsafe impl
9794        fidl::encoding::Encode<
9795            RunnerCallFlexibleOneWayRequest,
9796            fidl::encoding::DefaultFuchsiaResourceDialect,
9797        > for &mut RunnerCallFlexibleOneWayRequest
9798    {
9799        #[inline]
9800        unsafe fn encode(
9801            self,
9802            encoder: &mut fidl::encoding::Encoder<
9803                '_,
9804                fidl::encoding::DefaultFuchsiaResourceDialect,
9805            >,
9806            offset: usize,
9807            _depth: fidl::encoding::Depth,
9808        ) -> fidl::Result<()> {
9809            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
9810            // Delegate to tuple encoding.
9811            fidl::encoding::Encode::<RunnerCallFlexibleOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
9812                (
9813                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
9814                ),
9815                encoder, offset, _depth
9816            )
9817        }
9818    }
9819    unsafe impl<
9820            T0: fidl::encoding::Encode<
9821                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9822                fidl::encoding::DefaultFuchsiaResourceDialect,
9823            >,
9824        >
9825        fidl::encoding::Encode<
9826            RunnerCallFlexibleOneWayRequest,
9827            fidl::encoding::DefaultFuchsiaResourceDialect,
9828        > for (T0,)
9829    {
9830        #[inline]
9831        unsafe fn encode(
9832            self,
9833            encoder: &mut fidl::encoding::Encoder<
9834                '_,
9835                fidl::encoding::DefaultFuchsiaResourceDialect,
9836            >,
9837            offset: usize,
9838            depth: fidl::encoding::Depth,
9839        ) -> fidl::Result<()> {
9840            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
9841            // Zero out padding regions. There's no need to apply masks
9842            // because the unmasked parts will be overwritten by fields.
9843            // Write the fields.
9844            self.0.encode(encoder, offset + 0, depth)?;
9845            Ok(())
9846        }
9847    }
9848
9849    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
9850        for RunnerCallFlexibleOneWayRequest
9851    {
9852        #[inline(always)]
9853        fn new_empty() -> Self {
9854            Self {
9855                target: fidl::new_empty!(
9856                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9857                    fidl::encoding::DefaultFuchsiaResourceDialect
9858                ),
9859            }
9860        }
9861
9862        #[inline]
9863        unsafe fn decode(
9864            &mut self,
9865            decoder: &mut fidl::encoding::Decoder<
9866                '_,
9867                fidl::encoding::DefaultFuchsiaResourceDialect,
9868            >,
9869            offset: usize,
9870            _depth: fidl::encoding::Depth,
9871        ) -> fidl::Result<()> {
9872            decoder.debug_check_bounds::<Self>(offset);
9873            // Verify that padding bytes are zero.
9874            fidl::decode!(
9875                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9876                fidl::encoding::DefaultFuchsiaResourceDialect,
9877                &mut self.target,
9878                decoder,
9879                offset + 0,
9880                _depth
9881            )?;
9882            Ok(())
9883        }
9884    }
9885
9886    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayErrRequest {
9887        type Borrowed<'a> = &'a mut Self;
9888        fn take_or_borrow<'a>(
9889            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
9890        ) -> Self::Borrowed<'a> {
9891            value
9892        }
9893    }
9894
9895    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayErrRequest {
9896        type Owned = Self;
9897
9898        #[inline(always)]
9899        fn inline_align(_context: fidl::encoding::Context) -> usize {
9900            4
9901        }
9902
9903        #[inline(always)]
9904        fn inline_size(_context: fidl::encoding::Context) -> usize {
9905            4
9906        }
9907    }
9908
9909    unsafe impl
9910        fidl::encoding::Encode<
9911            RunnerCallFlexibleTwoWayErrRequest,
9912            fidl::encoding::DefaultFuchsiaResourceDialect,
9913        > for &mut RunnerCallFlexibleTwoWayErrRequest
9914    {
9915        #[inline]
9916        unsafe fn encode(
9917            self,
9918            encoder: &mut fidl::encoding::Encoder<
9919                '_,
9920                fidl::encoding::DefaultFuchsiaResourceDialect,
9921            >,
9922            offset: usize,
9923            _depth: fidl::encoding::Depth,
9924        ) -> fidl::Result<()> {
9925            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
9926            // Delegate to tuple encoding.
9927            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
9928                (
9929                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
9930                ),
9931                encoder, offset, _depth
9932            )
9933        }
9934    }
9935    unsafe impl<
9936            T0: fidl::encoding::Encode<
9937                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9938                fidl::encoding::DefaultFuchsiaResourceDialect,
9939            >,
9940        >
9941        fidl::encoding::Encode<
9942            RunnerCallFlexibleTwoWayErrRequest,
9943            fidl::encoding::DefaultFuchsiaResourceDialect,
9944        > for (T0,)
9945    {
9946        #[inline]
9947        unsafe fn encode(
9948            self,
9949            encoder: &mut fidl::encoding::Encoder<
9950                '_,
9951                fidl::encoding::DefaultFuchsiaResourceDialect,
9952            >,
9953            offset: usize,
9954            depth: fidl::encoding::Depth,
9955        ) -> fidl::Result<()> {
9956            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
9957            // Zero out padding regions. There's no need to apply masks
9958            // because the unmasked parts will be overwritten by fields.
9959            // Write the fields.
9960            self.0.encode(encoder, offset + 0, depth)?;
9961            Ok(())
9962        }
9963    }
9964
9965    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
9966        for RunnerCallFlexibleTwoWayErrRequest
9967    {
9968        #[inline(always)]
9969        fn new_empty() -> Self {
9970            Self {
9971                target: fidl::new_empty!(
9972                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9973                    fidl::encoding::DefaultFuchsiaResourceDialect
9974                ),
9975            }
9976        }
9977
9978        #[inline]
9979        unsafe fn decode(
9980            &mut self,
9981            decoder: &mut fidl::encoding::Decoder<
9982                '_,
9983                fidl::encoding::DefaultFuchsiaResourceDialect,
9984            >,
9985            offset: usize,
9986            _depth: fidl::encoding::Depth,
9987        ) -> fidl::Result<()> {
9988            decoder.debug_check_bounds::<Self>(offset);
9989            // Verify that padding bytes are zero.
9990            fidl::decode!(
9991                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9992                fidl::encoding::DefaultFuchsiaResourceDialect,
9993                &mut self.target,
9994                decoder,
9995                offset + 0,
9996                _depth
9997            )?;
9998            Ok(())
9999        }
10000    }
10001
10002    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10003        type Borrowed<'a> = &'a mut Self;
10004        fn take_or_borrow<'a>(
10005            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10006        ) -> Self::Borrowed<'a> {
10007            value
10008        }
10009    }
10010
10011    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10012        type Owned = Self;
10013
10014        #[inline(always)]
10015        fn inline_align(_context: fidl::encoding::Context) -> usize {
10016            4
10017        }
10018
10019        #[inline(always)]
10020        fn inline_size(_context: fidl::encoding::Context) -> usize {
10021            4
10022        }
10023    }
10024
10025    unsafe impl
10026        fidl::encoding::Encode<
10027            RunnerCallFlexibleTwoWayFieldsErrRequest,
10028            fidl::encoding::DefaultFuchsiaResourceDialect,
10029        > for &mut RunnerCallFlexibleTwoWayFieldsErrRequest
10030    {
10031        #[inline]
10032        unsafe fn encode(
10033            self,
10034            encoder: &mut fidl::encoding::Encoder<
10035                '_,
10036                fidl::encoding::DefaultFuchsiaResourceDialect,
10037            >,
10038            offset: usize,
10039            _depth: fidl::encoding::Depth,
10040        ) -> fidl::Result<()> {
10041            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10042            // Delegate to tuple encoding.
10043            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10044                (
10045                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10046                ),
10047                encoder, offset, _depth
10048            )
10049        }
10050    }
10051    unsafe impl<
10052            T0: fidl::encoding::Encode<
10053                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10054                fidl::encoding::DefaultFuchsiaResourceDialect,
10055            >,
10056        >
10057        fidl::encoding::Encode<
10058            RunnerCallFlexibleTwoWayFieldsErrRequest,
10059            fidl::encoding::DefaultFuchsiaResourceDialect,
10060        > for (T0,)
10061    {
10062        #[inline]
10063        unsafe fn encode(
10064            self,
10065            encoder: &mut fidl::encoding::Encoder<
10066                '_,
10067                fidl::encoding::DefaultFuchsiaResourceDialect,
10068            >,
10069            offset: usize,
10070            depth: fidl::encoding::Depth,
10071        ) -> fidl::Result<()> {
10072            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10073            // Zero out padding regions. There's no need to apply masks
10074            // because the unmasked parts will be overwritten by fields.
10075            // Write the fields.
10076            self.0.encode(encoder, offset + 0, depth)?;
10077            Ok(())
10078        }
10079    }
10080
10081    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10082        for RunnerCallFlexibleTwoWayFieldsErrRequest
10083    {
10084        #[inline(always)]
10085        fn new_empty() -> Self {
10086            Self {
10087                target: fidl::new_empty!(
10088                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10089                    fidl::encoding::DefaultFuchsiaResourceDialect
10090                ),
10091            }
10092        }
10093
10094        #[inline]
10095        unsafe fn decode(
10096            &mut self,
10097            decoder: &mut fidl::encoding::Decoder<
10098                '_,
10099                fidl::encoding::DefaultFuchsiaResourceDialect,
10100            >,
10101            offset: usize,
10102            _depth: fidl::encoding::Depth,
10103        ) -> fidl::Result<()> {
10104            decoder.debug_check_bounds::<Self>(offset);
10105            // Verify that padding bytes are zero.
10106            fidl::decode!(
10107                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10108                fidl::encoding::DefaultFuchsiaResourceDialect,
10109                &mut self.target,
10110                decoder,
10111                offset + 0,
10112                _depth
10113            )?;
10114            Ok(())
10115        }
10116    }
10117
10118    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10119        type Borrowed<'a> = &'a mut Self;
10120        fn take_or_borrow<'a>(
10121            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10122        ) -> Self::Borrowed<'a> {
10123            value
10124        }
10125    }
10126
10127    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10128        type Owned = Self;
10129
10130        #[inline(always)]
10131        fn inline_align(_context: fidl::encoding::Context) -> usize {
10132            4
10133        }
10134
10135        #[inline(always)]
10136        fn inline_size(_context: fidl::encoding::Context) -> usize {
10137            4
10138        }
10139    }
10140
10141    unsafe impl
10142        fidl::encoding::Encode<
10143            RunnerCallFlexibleTwoWayFieldsRequest,
10144            fidl::encoding::DefaultFuchsiaResourceDialect,
10145        > for &mut RunnerCallFlexibleTwoWayFieldsRequest
10146    {
10147        #[inline]
10148        unsafe fn encode(
10149            self,
10150            encoder: &mut fidl::encoding::Encoder<
10151                '_,
10152                fidl::encoding::DefaultFuchsiaResourceDialect,
10153            >,
10154            offset: usize,
10155            _depth: fidl::encoding::Depth,
10156        ) -> fidl::Result<()> {
10157            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10158            // Delegate to tuple encoding.
10159            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10160                (
10161                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10162                ),
10163                encoder, offset, _depth
10164            )
10165        }
10166    }
10167    unsafe impl<
10168            T0: fidl::encoding::Encode<
10169                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10170                fidl::encoding::DefaultFuchsiaResourceDialect,
10171            >,
10172        >
10173        fidl::encoding::Encode<
10174            RunnerCallFlexibleTwoWayFieldsRequest,
10175            fidl::encoding::DefaultFuchsiaResourceDialect,
10176        > for (T0,)
10177    {
10178        #[inline]
10179        unsafe fn encode(
10180            self,
10181            encoder: &mut fidl::encoding::Encoder<
10182                '_,
10183                fidl::encoding::DefaultFuchsiaResourceDialect,
10184            >,
10185            offset: usize,
10186            depth: fidl::encoding::Depth,
10187        ) -> fidl::Result<()> {
10188            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10189            // Zero out padding regions. There's no need to apply masks
10190            // because the unmasked parts will be overwritten by fields.
10191            // Write the fields.
10192            self.0.encode(encoder, offset + 0, depth)?;
10193            Ok(())
10194        }
10195    }
10196
10197    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10198        for RunnerCallFlexibleTwoWayFieldsRequest
10199    {
10200        #[inline(always)]
10201        fn new_empty() -> Self {
10202            Self {
10203                target: fidl::new_empty!(
10204                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10205                    fidl::encoding::DefaultFuchsiaResourceDialect
10206                ),
10207            }
10208        }
10209
10210        #[inline]
10211        unsafe fn decode(
10212            &mut self,
10213            decoder: &mut fidl::encoding::Decoder<
10214                '_,
10215                fidl::encoding::DefaultFuchsiaResourceDialect,
10216            >,
10217            offset: usize,
10218            _depth: fidl::encoding::Depth,
10219        ) -> fidl::Result<()> {
10220            decoder.debug_check_bounds::<Self>(offset);
10221            // Verify that padding bytes are zero.
10222            fidl::decode!(
10223                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10224                fidl::encoding::DefaultFuchsiaResourceDialect,
10225                &mut self.target,
10226                decoder,
10227                offset + 0,
10228                _depth
10229            )?;
10230            Ok(())
10231        }
10232    }
10233
10234    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayRequest {
10235        type Borrowed<'a> = &'a mut Self;
10236        fn take_or_borrow<'a>(
10237            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10238        ) -> Self::Borrowed<'a> {
10239            value
10240        }
10241    }
10242
10243    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayRequest {
10244        type Owned = Self;
10245
10246        #[inline(always)]
10247        fn inline_align(_context: fidl::encoding::Context) -> usize {
10248            4
10249        }
10250
10251        #[inline(always)]
10252        fn inline_size(_context: fidl::encoding::Context) -> usize {
10253            4
10254        }
10255    }
10256
10257    unsafe impl
10258        fidl::encoding::Encode<
10259            RunnerCallFlexibleTwoWayRequest,
10260            fidl::encoding::DefaultFuchsiaResourceDialect,
10261        > for &mut RunnerCallFlexibleTwoWayRequest
10262    {
10263        #[inline]
10264        unsafe fn encode(
10265            self,
10266            encoder: &mut fidl::encoding::Encoder<
10267                '_,
10268                fidl::encoding::DefaultFuchsiaResourceDialect,
10269            >,
10270            offset: usize,
10271            _depth: fidl::encoding::Depth,
10272        ) -> fidl::Result<()> {
10273            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10274            // Delegate to tuple encoding.
10275            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10276                (
10277                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10278                ),
10279                encoder, offset, _depth
10280            )
10281        }
10282    }
10283    unsafe impl<
10284            T0: fidl::encoding::Encode<
10285                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10286                fidl::encoding::DefaultFuchsiaResourceDialect,
10287            >,
10288        >
10289        fidl::encoding::Encode<
10290            RunnerCallFlexibleTwoWayRequest,
10291            fidl::encoding::DefaultFuchsiaResourceDialect,
10292        > for (T0,)
10293    {
10294        #[inline]
10295        unsafe fn encode(
10296            self,
10297            encoder: &mut fidl::encoding::Encoder<
10298                '_,
10299                fidl::encoding::DefaultFuchsiaResourceDialect,
10300            >,
10301            offset: usize,
10302            depth: fidl::encoding::Depth,
10303        ) -> fidl::Result<()> {
10304            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10305            // Zero out padding regions. There's no need to apply masks
10306            // because the unmasked parts will be overwritten by fields.
10307            // Write the fields.
10308            self.0.encode(encoder, offset + 0, depth)?;
10309            Ok(())
10310        }
10311    }
10312
10313    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10314        for RunnerCallFlexibleTwoWayRequest
10315    {
10316        #[inline(always)]
10317        fn new_empty() -> Self {
10318            Self {
10319                target: fidl::new_empty!(
10320                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10321                    fidl::encoding::DefaultFuchsiaResourceDialect
10322                ),
10323            }
10324        }
10325
10326        #[inline]
10327        unsafe fn decode(
10328            &mut self,
10329            decoder: &mut fidl::encoding::Decoder<
10330                '_,
10331                fidl::encoding::DefaultFuchsiaResourceDialect,
10332            >,
10333            offset: usize,
10334            _depth: fidl::encoding::Depth,
10335        ) -> fidl::Result<()> {
10336            decoder.debug_check_bounds::<Self>(offset);
10337            // Verify that padding bytes are zero.
10338            fidl::decode!(
10339                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10340                fidl::encoding::DefaultFuchsiaResourceDialect,
10341                &mut self.target,
10342                decoder,
10343                offset + 0,
10344                _depth
10345            )?;
10346            Ok(())
10347        }
10348    }
10349
10350    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayNoRequestRequest {
10351        type Borrowed<'a> = &'a mut Self;
10352        fn take_or_borrow<'a>(
10353            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10354        ) -> Self::Borrowed<'a> {
10355            value
10356        }
10357    }
10358
10359    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayNoRequestRequest {
10360        type Owned = Self;
10361
10362        #[inline(always)]
10363        fn inline_align(_context: fidl::encoding::Context) -> usize {
10364            4
10365        }
10366
10367        #[inline(always)]
10368        fn inline_size(_context: fidl::encoding::Context) -> usize {
10369            4
10370        }
10371    }
10372
10373    unsafe impl
10374        fidl::encoding::Encode<
10375            RunnerCallOneWayNoRequestRequest,
10376            fidl::encoding::DefaultFuchsiaResourceDialect,
10377        > for &mut RunnerCallOneWayNoRequestRequest
10378    {
10379        #[inline]
10380        unsafe fn encode(
10381            self,
10382            encoder: &mut fidl::encoding::Encoder<
10383                '_,
10384                fidl::encoding::DefaultFuchsiaResourceDialect,
10385            >,
10386            offset: usize,
10387            _depth: fidl::encoding::Depth,
10388        ) -> fidl::Result<()> {
10389            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10390            // Delegate to tuple encoding.
10391            fidl::encoding::Encode::<RunnerCallOneWayNoRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10392                (
10393                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10394                ),
10395                encoder, offset, _depth
10396            )
10397        }
10398    }
10399    unsafe impl<
10400            T0: fidl::encoding::Encode<
10401                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10402                fidl::encoding::DefaultFuchsiaResourceDialect,
10403            >,
10404        >
10405        fidl::encoding::Encode<
10406            RunnerCallOneWayNoRequestRequest,
10407            fidl::encoding::DefaultFuchsiaResourceDialect,
10408        > for (T0,)
10409    {
10410        #[inline]
10411        unsafe fn encode(
10412            self,
10413            encoder: &mut fidl::encoding::Encoder<
10414                '_,
10415                fidl::encoding::DefaultFuchsiaResourceDialect,
10416            >,
10417            offset: usize,
10418            depth: fidl::encoding::Depth,
10419        ) -> fidl::Result<()> {
10420            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10421            // Zero out padding regions. There's no need to apply masks
10422            // because the unmasked parts will be overwritten by fields.
10423            // Write the fields.
10424            self.0.encode(encoder, offset + 0, depth)?;
10425            Ok(())
10426        }
10427    }
10428
10429    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10430        for RunnerCallOneWayNoRequestRequest
10431    {
10432        #[inline(always)]
10433        fn new_empty() -> Self {
10434            Self {
10435                target: fidl::new_empty!(
10436                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10437                    fidl::encoding::DefaultFuchsiaResourceDialect
10438                ),
10439            }
10440        }
10441
10442        #[inline]
10443        unsafe fn decode(
10444            &mut self,
10445            decoder: &mut fidl::encoding::Decoder<
10446                '_,
10447                fidl::encoding::DefaultFuchsiaResourceDialect,
10448            >,
10449            offset: usize,
10450            _depth: fidl::encoding::Depth,
10451        ) -> fidl::Result<()> {
10452            decoder.debug_check_bounds::<Self>(offset);
10453            // Verify that padding bytes are zero.
10454            fidl::decode!(
10455                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10456                fidl::encoding::DefaultFuchsiaResourceDialect,
10457                &mut self.target,
10458                decoder,
10459                offset + 0,
10460                _depth
10461            )?;
10462            Ok(())
10463        }
10464    }
10465
10466    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayStructRequestRequest {
10467        type Borrowed<'a> = &'a mut Self;
10468        fn take_or_borrow<'a>(
10469            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10470        ) -> Self::Borrowed<'a> {
10471            value
10472        }
10473    }
10474
10475    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayStructRequestRequest {
10476        type Owned = Self;
10477
10478        #[inline(always)]
10479        fn inline_align(_context: fidl::encoding::Context) -> usize {
10480            4
10481        }
10482
10483        #[inline(always)]
10484        fn inline_size(_context: fidl::encoding::Context) -> usize {
10485            8
10486        }
10487    }
10488
10489    unsafe impl
10490        fidl::encoding::Encode<
10491            RunnerCallOneWayStructRequestRequest,
10492            fidl::encoding::DefaultFuchsiaResourceDialect,
10493        > for &mut RunnerCallOneWayStructRequestRequest
10494    {
10495        #[inline]
10496        unsafe fn encode(
10497            self,
10498            encoder: &mut fidl::encoding::Encoder<
10499                '_,
10500                fidl::encoding::DefaultFuchsiaResourceDialect,
10501            >,
10502            offset: usize,
10503            _depth: fidl::encoding::Depth,
10504        ) -> fidl::Result<()> {
10505            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10506            // Delegate to tuple encoding.
10507            fidl::encoding::Encode::<RunnerCallOneWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10508                (
10509                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10510                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10511                ),
10512                encoder, offset, _depth
10513            )
10514        }
10515    }
10516    unsafe impl<
10517            T0: fidl::encoding::Encode<
10518                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10519                fidl::encoding::DefaultFuchsiaResourceDialect,
10520            >,
10521            T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10522        >
10523        fidl::encoding::Encode<
10524            RunnerCallOneWayStructRequestRequest,
10525            fidl::encoding::DefaultFuchsiaResourceDialect,
10526        > for (T0, T1)
10527    {
10528        #[inline]
10529        unsafe fn encode(
10530            self,
10531            encoder: &mut fidl::encoding::Encoder<
10532                '_,
10533                fidl::encoding::DefaultFuchsiaResourceDialect,
10534            >,
10535            offset: usize,
10536            depth: fidl::encoding::Depth,
10537        ) -> fidl::Result<()> {
10538            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10539            // Zero out padding regions. There's no need to apply masks
10540            // because the unmasked parts will be overwritten by fields.
10541            // Write the fields.
10542            self.0.encode(encoder, offset + 0, depth)?;
10543            self.1.encode(encoder, offset + 4, depth)?;
10544            Ok(())
10545        }
10546    }
10547
10548    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10549        for RunnerCallOneWayStructRequestRequest
10550    {
10551        #[inline(always)]
10552        fn new_empty() -> Self {
10553            Self {
10554                target: fidl::new_empty!(
10555                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10556                    fidl::encoding::DefaultFuchsiaResourceDialect
10557                ),
10558                request: fidl::new_empty!(
10559                    NonEmptyPayload,
10560                    fidl::encoding::DefaultFuchsiaResourceDialect
10561                ),
10562            }
10563        }
10564
10565        #[inline]
10566        unsafe fn decode(
10567            &mut self,
10568            decoder: &mut fidl::encoding::Decoder<
10569                '_,
10570                fidl::encoding::DefaultFuchsiaResourceDialect,
10571            >,
10572            offset: usize,
10573            _depth: fidl::encoding::Depth,
10574        ) -> fidl::Result<()> {
10575            decoder.debug_check_bounds::<Self>(offset);
10576            // Verify that padding bytes are zero.
10577            fidl::decode!(
10578                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10579                fidl::encoding::DefaultFuchsiaResourceDialect,
10580                &mut self.target,
10581                decoder,
10582                offset + 0,
10583                _depth
10584            )?;
10585            fidl::decode!(
10586                NonEmptyPayload,
10587                fidl::encoding::DefaultFuchsiaResourceDialect,
10588                &mut self.request,
10589                decoder,
10590                offset + 4,
10591                _depth
10592            )?;
10593            Ok(())
10594        }
10595    }
10596
10597    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayTableRequestRequest {
10598        type Borrowed<'a> = &'a mut Self;
10599        fn take_or_borrow<'a>(
10600            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10601        ) -> Self::Borrowed<'a> {
10602            value
10603        }
10604    }
10605
10606    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayTableRequestRequest {
10607        type Owned = Self;
10608
10609        #[inline(always)]
10610        fn inline_align(_context: fidl::encoding::Context) -> usize {
10611            8
10612        }
10613
10614        #[inline(always)]
10615        fn inline_size(_context: fidl::encoding::Context) -> usize {
10616            24
10617        }
10618    }
10619
10620    unsafe impl
10621        fidl::encoding::Encode<
10622            RunnerCallOneWayTableRequestRequest,
10623            fidl::encoding::DefaultFuchsiaResourceDialect,
10624        > for &mut RunnerCallOneWayTableRequestRequest
10625    {
10626        #[inline]
10627        unsafe fn encode(
10628            self,
10629            encoder: &mut fidl::encoding::Encoder<
10630                '_,
10631                fidl::encoding::DefaultFuchsiaResourceDialect,
10632            >,
10633            offset: usize,
10634            _depth: fidl::encoding::Depth,
10635        ) -> fidl::Result<()> {
10636            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10637            // Delegate to tuple encoding.
10638            fidl::encoding::Encode::<RunnerCallOneWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10639                (
10640                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10641                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10642                ),
10643                encoder, offset, _depth
10644            )
10645        }
10646    }
10647    unsafe impl<
10648            T0: fidl::encoding::Encode<
10649                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10650                fidl::encoding::DefaultFuchsiaResourceDialect,
10651            >,
10652            T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10653        >
10654        fidl::encoding::Encode<
10655            RunnerCallOneWayTableRequestRequest,
10656            fidl::encoding::DefaultFuchsiaResourceDialect,
10657        > for (T0, T1)
10658    {
10659        #[inline]
10660        unsafe fn encode(
10661            self,
10662            encoder: &mut fidl::encoding::Encoder<
10663                '_,
10664                fidl::encoding::DefaultFuchsiaResourceDialect,
10665            >,
10666            offset: usize,
10667            depth: fidl::encoding::Depth,
10668        ) -> fidl::Result<()> {
10669            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10670            // Zero out padding regions. There's no need to apply masks
10671            // because the unmasked parts will be overwritten by fields.
10672            unsafe {
10673                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10674                (ptr as *mut u64).write_unaligned(0);
10675            }
10676            // Write the fields.
10677            self.0.encode(encoder, offset + 0, depth)?;
10678            self.1.encode(encoder, offset + 8, depth)?;
10679            Ok(())
10680        }
10681    }
10682
10683    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10684        for RunnerCallOneWayTableRequestRequest
10685    {
10686        #[inline(always)]
10687        fn new_empty() -> Self {
10688            Self {
10689                target: fidl::new_empty!(
10690                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10691                    fidl::encoding::DefaultFuchsiaResourceDialect
10692                ),
10693                request: fidl::new_empty!(
10694                    TablePayload,
10695                    fidl::encoding::DefaultFuchsiaResourceDialect
10696                ),
10697            }
10698        }
10699
10700        #[inline]
10701        unsafe fn decode(
10702            &mut self,
10703            decoder: &mut fidl::encoding::Decoder<
10704                '_,
10705                fidl::encoding::DefaultFuchsiaResourceDialect,
10706            >,
10707            offset: usize,
10708            _depth: fidl::encoding::Depth,
10709        ) -> fidl::Result<()> {
10710            decoder.debug_check_bounds::<Self>(offset);
10711            // Verify that padding bytes are zero.
10712            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
10713            let padval = unsafe { (ptr as *const u64).read_unaligned() };
10714            let mask = 0xffffffff00000000u64;
10715            let maskedval = padval & mask;
10716            if maskedval != 0 {
10717                return Err(fidl::Error::NonZeroPadding {
10718                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
10719                });
10720            }
10721            fidl::decode!(
10722                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10723                fidl::encoding::DefaultFuchsiaResourceDialect,
10724                &mut self.target,
10725                decoder,
10726                offset + 0,
10727                _depth
10728            )?;
10729            fidl::decode!(
10730                TablePayload,
10731                fidl::encoding::DefaultFuchsiaResourceDialect,
10732                &mut self.request,
10733                decoder,
10734                offset + 8,
10735                _depth
10736            )?;
10737            Ok(())
10738        }
10739    }
10740
10741    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayUnionRequestRequest {
10742        type Borrowed<'a> = &'a mut Self;
10743        fn take_or_borrow<'a>(
10744            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10745        ) -> Self::Borrowed<'a> {
10746            value
10747        }
10748    }
10749
10750    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayUnionRequestRequest {
10751        type Owned = Self;
10752
10753        #[inline(always)]
10754        fn inline_align(_context: fidl::encoding::Context) -> usize {
10755            8
10756        }
10757
10758        #[inline(always)]
10759        fn inline_size(_context: fidl::encoding::Context) -> usize {
10760            24
10761        }
10762    }
10763
10764    unsafe impl
10765        fidl::encoding::Encode<
10766            RunnerCallOneWayUnionRequestRequest,
10767            fidl::encoding::DefaultFuchsiaResourceDialect,
10768        > for &mut RunnerCallOneWayUnionRequestRequest
10769    {
10770        #[inline]
10771        unsafe fn encode(
10772            self,
10773            encoder: &mut fidl::encoding::Encoder<
10774                '_,
10775                fidl::encoding::DefaultFuchsiaResourceDialect,
10776            >,
10777            offset: usize,
10778            _depth: fidl::encoding::Depth,
10779        ) -> fidl::Result<()> {
10780            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
10781            // Delegate to tuple encoding.
10782            fidl::encoding::Encode::<RunnerCallOneWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10783                (
10784                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10785                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10786                ),
10787                encoder, offset, _depth
10788            )
10789        }
10790    }
10791    unsafe impl<
10792            T0: fidl::encoding::Encode<
10793                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10794                fidl::encoding::DefaultFuchsiaResourceDialect,
10795            >,
10796            T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10797        >
10798        fidl::encoding::Encode<
10799            RunnerCallOneWayUnionRequestRequest,
10800            fidl::encoding::DefaultFuchsiaResourceDialect,
10801        > for (T0, T1)
10802    {
10803        #[inline]
10804        unsafe fn encode(
10805            self,
10806            encoder: &mut fidl::encoding::Encoder<
10807                '_,
10808                fidl::encoding::DefaultFuchsiaResourceDialect,
10809            >,
10810            offset: usize,
10811            depth: fidl::encoding::Depth,
10812        ) -> fidl::Result<()> {
10813            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
10814            // Zero out padding regions. There's no need to apply masks
10815            // because the unmasked parts will be overwritten by fields.
10816            unsafe {
10817                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10818                (ptr as *mut u64).write_unaligned(0);
10819            }
10820            // Write the fields.
10821            self.0.encode(encoder, offset + 0, depth)?;
10822            self.1.encode(encoder, offset + 8, depth)?;
10823            Ok(())
10824        }
10825    }
10826
10827    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10828        for RunnerCallOneWayUnionRequestRequest
10829    {
10830        #[inline(always)]
10831        fn new_empty() -> Self {
10832            Self {
10833                target: fidl::new_empty!(
10834                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10835                    fidl::encoding::DefaultFuchsiaResourceDialect
10836                ),
10837                request: fidl::new_empty!(
10838                    UnionPayload,
10839                    fidl::encoding::DefaultFuchsiaResourceDialect
10840                ),
10841            }
10842        }
10843
10844        #[inline]
10845        unsafe fn decode(
10846            &mut self,
10847            decoder: &mut fidl::encoding::Decoder<
10848                '_,
10849                fidl::encoding::DefaultFuchsiaResourceDialect,
10850            >,
10851            offset: usize,
10852            _depth: fidl::encoding::Depth,
10853        ) -> fidl::Result<()> {
10854            decoder.debug_check_bounds::<Self>(offset);
10855            // Verify that padding bytes are zero.
10856            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
10857            let padval = unsafe { (ptr as *const u64).read_unaligned() };
10858            let mask = 0xffffffff00000000u64;
10859            let maskedval = padval & mask;
10860            if maskedval != 0 {
10861                return Err(fidl::Error::NonZeroPadding {
10862                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
10863                });
10864            }
10865            fidl::decode!(
10866                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10867                fidl::encoding::DefaultFuchsiaResourceDialect,
10868                &mut self.target,
10869                decoder,
10870                offset + 0,
10871                _depth
10872            )?;
10873            fidl::decode!(
10874                UnionPayload,
10875                fidl::encoding::DefaultFuchsiaResourceDialect,
10876                &mut self.request,
10877                decoder,
10878                offset + 8,
10879                _depth
10880            )?;
10881            Ok(())
10882        }
10883    }
10884
10885    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictOneWayRequest {
10886        type Borrowed<'a> = &'a mut Self;
10887        fn take_or_borrow<'a>(
10888            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10889        ) -> Self::Borrowed<'a> {
10890            value
10891        }
10892    }
10893
10894    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictOneWayRequest {
10895        type Owned = Self;
10896
10897        #[inline(always)]
10898        fn inline_align(_context: fidl::encoding::Context) -> usize {
10899            4
10900        }
10901
10902        #[inline(always)]
10903        fn inline_size(_context: fidl::encoding::Context) -> usize {
10904            4
10905        }
10906    }
10907
10908    unsafe impl
10909        fidl::encoding::Encode<
10910            RunnerCallStrictOneWayRequest,
10911            fidl::encoding::DefaultFuchsiaResourceDialect,
10912        > for &mut RunnerCallStrictOneWayRequest
10913    {
10914        #[inline]
10915        unsafe fn encode(
10916            self,
10917            encoder: &mut fidl::encoding::Encoder<
10918                '_,
10919                fidl::encoding::DefaultFuchsiaResourceDialect,
10920            >,
10921            offset: usize,
10922            _depth: fidl::encoding::Depth,
10923        ) -> fidl::Result<()> {
10924            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
10925            // Delegate to tuple encoding.
10926            fidl::encoding::Encode::<RunnerCallStrictOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10927                (
10928                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10929                ),
10930                encoder, offset, _depth
10931            )
10932        }
10933    }
10934    unsafe impl<
10935            T0: fidl::encoding::Encode<
10936                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10937                fidl::encoding::DefaultFuchsiaResourceDialect,
10938            >,
10939        >
10940        fidl::encoding::Encode<
10941            RunnerCallStrictOneWayRequest,
10942            fidl::encoding::DefaultFuchsiaResourceDialect,
10943        > for (T0,)
10944    {
10945        #[inline]
10946        unsafe fn encode(
10947            self,
10948            encoder: &mut fidl::encoding::Encoder<
10949                '_,
10950                fidl::encoding::DefaultFuchsiaResourceDialect,
10951            >,
10952            offset: usize,
10953            depth: fidl::encoding::Depth,
10954        ) -> fidl::Result<()> {
10955            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
10956            // Zero out padding regions. There's no need to apply masks
10957            // because the unmasked parts will be overwritten by fields.
10958            // Write the fields.
10959            self.0.encode(encoder, offset + 0, depth)?;
10960            Ok(())
10961        }
10962    }
10963
10964    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10965        for RunnerCallStrictOneWayRequest
10966    {
10967        #[inline(always)]
10968        fn new_empty() -> Self {
10969            Self {
10970                target: fidl::new_empty!(
10971                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10972                    fidl::encoding::DefaultFuchsiaResourceDialect
10973                ),
10974            }
10975        }
10976
10977        #[inline]
10978        unsafe fn decode(
10979            &mut self,
10980            decoder: &mut fidl::encoding::Decoder<
10981                '_,
10982                fidl::encoding::DefaultFuchsiaResourceDialect,
10983            >,
10984            offset: usize,
10985            _depth: fidl::encoding::Depth,
10986        ) -> fidl::Result<()> {
10987            decoder.debug_check_bounds::<Self>(offset);
10988            // Verify that padding bytes are zero.
10989            fidl::decode!(
10990                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10991                fidl::encoding::DefaultFuchsiaResourceDialect,
10992                &mut self.target,
10993                decoder,
10994                offset + 0,
10995                _depth
10996            )?;
10997            Ok(())
10998        }
10999    }
11000
11001    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayErrRequest {
11002        type Borrowed<'a> = &'a mut Self;
11003        fn take_or_borrow<'a>(
11004            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11005        ) -> Self::Borrowed<'a> {
11006            value
11007        }
11008    }
11009
11010    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayErrRequest {
11011        type Owned = Self;
11012
11013        #[inline(always)]
11014        fn inline_align(_context: fidl::encoding::Context) -> usize {
11015            4
11016        }
11017
11018        #[inline(always)]
11019        fn inline_size(_context: fidl::encoding::Context) -> usize {
11020            4
11021        }
11022    }
11023
11024    unsafe impl
11025        fidl::encoding::Encode<
11026            RunnerCallStrictTwoWayErrRequest,
11027            fidl::encoding::DefaultFuchsiaResourceDialect,
11028        > for &mut RunnerCallStrictTwoWayErrRequest
11029    {
11030        #[inline]
11031        unsafe fn encode(
11032            self,
11033            encoder: &mut fidl::encoding::Encoder<
11034                '_,
11035                fidl::encoding::DefaultFuchsiaResourceDialect,
11036            >,
11037            offset: usize,
11038            _depth: fidl::encoding::Depth,
11039        ) -> fidl::Result<()> {
11040            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11041            // Delegate to tuple encoding.
11042            fidl::encoding::Encode::<RunnerCallStrictTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11043                (
11044                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11045                ),
11046                encoder, offset, _depth
11047            )
11048        }
11049    }
11050    unsafe impl<
11051            T0: fidl::encoding::Encode<
11052                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11053                fidl::encoding::DefaultFuchsiaResourceDialect,
11054            >,
11055        >
11056        fidl::encoding::Encode<
11057            RunnerCallStrictTwoWayErrRequest,
11058            fidl::encoding::DefaultFuchsiaResourceDialect,
11059        > for (T0,)
11060    {
11061        #[inline]
11062        unsafe fn encode(
11063            self,
11064            encoder: &mut fidl::encoding::Encoder<
11065                '_,
11066                fidl::encoding::DefaultFuchsiaResourceDialect,
11067            >,
11068            offset: usize,
11069            depth: fidl::encoding::Depth,
11070        ) -> fidl::Result<()> {
11071            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11072            // Zero out padding regions. There's no need to apply masks
11073            // because the unmasked parts will be overwritten by fields.
11074            // Write the fields.
11075            self.0.encode(encoder, offset + 0, depth)?;
11076            Ok(())
11077        }
11078    }
11079
11080    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11081        for RunnerCallStrictTwoWayErrRequest
11082    {
11083        #[inline(always)]
11084        fn new_empty() -> Self {
11085            Self {
11086                target: fidl::new_empty!(
11087                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11088                    fidl::encoding::DefaultFuchsiaResourceDialect
11089                ),
11090            }
11091        }
11092
11093        #[inline]
11094        unsafe fn decode(
11095            &mut self,
11096            decoder: &mut fidl::encoding::Decoder<
11097                '_,
11098                fidl::encoding::DefaultFuchsiaResourceDialect,
11099            >,
11100            offset: usize,
11101            _depth: fidl::encoding::Depth,
11102        ) -> fidl::Result<()> {
11103            decoder.debug_check_bounds::<Self>(offset);
11104            // Verify that padding bytes are zero.
11105            fidl::decode!(
11106                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11107                fidl::encoding::DefaultFuchsiaResourceDialect,
11108                &mut self.target,
11109                decoder,
11110                offset + 0,
11111                _depth
11112            )?;
11113            Ok(())
11114        }
11115    }
11116
11117    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11118        type Borrowed<'a> = &'a mut Self;
11119        fn take_or_borrow<'a>(
11120            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11121        ) -> Self::Borrowed<'a> {
11122            value
11123        }
11124    }
11125
11126    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11127        type Owned = Self;
11128
11129        #[inline(always)]
11130        fn inline_align(_context: fidl::encoding::Context) -> usize {
11131            4
11132        }
11133
11134        #[inline(always)]
11135        fn inline_size(_context: fidl::encoding::Context) -> usize {
11136            4
11137        }
11138    }
11139
11140    unsafe impl
11141        fidl::encoding::Encode<
11142            RunnerCallStrictTwoWayFieldsErrRequest,
11143            fidl::encoding::DefaultFuchsiaResourceDialect,
11144        > for &mut RunnerCallStrictTwoWayFieldsErrRequest
11145    {
11146        #[inline]
11147        unsafe fn encode(
11148            self,
11149            encoder: &mut fidl::encoding::Encoder<
11150                '_,
11151                fidl::encoding::DefaultFuchsiaResourceDialect,
11152            >,
11153            offset: usize,
11154            _depth: fidl::encoding::Depth,
11155        ) -> fidl::Result<()> {
11156            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11157            // Delegate to tuple encoding.
11158            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11159                (
11160                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11161                ),
11162                encoder, offset, _depth
11163            )
11164        }
11165    }
11166    unsafe impl<
11167            T0: fidl::encoding::Encode<
11168                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11169                fidl::encoding::DefaultFuchsiaResourceDialect,
11170            >,
11171        >
11172        fidl::encoding::Encode<
11173            RunnerCallStrictTwoWayFieldsErrRequest,
11174            fidl::encoding::DefaultFuchsiaResourceDialect,
11175        > for (T0,)
11176    {
11177        #[inline]
11178        unsafe fn encode(
11179            self,
11180            encoder: &mut fidl::encoding::Encoder<
11181                '_,
11182                fidl::encoding::DefaultFuchsiaResourceDialect,
11183            >,
11184            offset: usize,
11185            depth: fidl::encoding::Depth,
11186        ) -> fidl::Result<()> {
11187            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11188            // Zero out padding regions. There's no need to apply masks
11189            // because the unmasked parts will be overwritten by fields.
11190            // Write the fields.
11191            self.0.encode(encoder, offset + 0, depth)?;
11192            Ok(())
11193        }
11194    }
11195
11196    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11197        for RunnerCallStrictTwoWayFieldsErrRequest
11198    {
11199        #[inline(always)]
11200        fn new_empty() -> Self {
11201            Self {
11202                target: fidl::new_empty!(
11203                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11204                    fidl::encoding::DefaultFuchsiaResourceDialect
11205                ),
11206            }
11207        }
11208
11209        #[inline]
11210        unsafe fn decode(
11211            &mut self,
11212            decoder: &mut fidl::encoding::Decoder<
11213                '_,
11214                fidl::encoding::DefaultFuchsiaResourceDialect,
11215            >,
11216            offset: usize,
11217            _depth: fidl::encoding::Depth,
11218        ) -> fidl::Result<()> {
11219            decoder.debug_check_bounds::<Self>(offset);
11220            // Verify that padding bytes are zero.
11221            fidl::decode!(
11222                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11223                fidl::encoding::DefaultFuchsiaResourceDialect,
11224                &mut self.target,
11225                decoder,
11226                offset + 0,
11227                _depth
11228            )?;
11229            Ok(())
11230        }
11231    }
11232
11233    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11234        type Borrowed<'a> = &'a mut Self;
11235        fn take_or_borrow<'a>(
11236            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11237        ) -> Self::Borrowed<'a> {
11238            value
11239        }
11240    }
11241
11242    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11243        type Owned = Self;
11244
11245        #[inline(always)]
11246        fn inline_align(_context: fidl::encoding::Context) -> usize {
11247            4
11248        }
11249
11250        #[inline(always)]
11251        fn inline_size(_context: fidl::encoding::Context) -> usize {
11252            4
11253        }
11254    }
11255
11256    unsafe impl
11257        fidl::encoding::Encode<
11258            RunnerCallStrictTwoWayFieldsRequest,
11259            fidl::encoding::DefaultFuchsiaResourceDialect,
11260        > for &mut RunnerCallStrictTwoWayFieldsRequest
11261    {
11262        #[inline]
11263        unsafe fn encode(
11264            self,
11265            encoder: &mut fidl::encoding::Encoder<
11266                '_,
11267                fidl::encoding::DefaultFuchsiaResourceDialect,
11268            >,
11269            offset: usize,
11270            _depth: fidl::encoding::Depth,
11271        ) -> fidl::Result<()> {
11272            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11273            // Delegate to tuple encoding.
11274            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11275                (
11276                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11277                ),
11278                encoder, offset, _depth
11279            )
11280        }
11281    }
11282    unsafe impl<
11283            T0: fidl::encoding::Encode<
11284                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11285                fidl::encoding::DefaultFuchsiaResourceDialect,
11286            >,
11287        >
11288        fidl::encoding::Encode<
11289            RunnerCallStrictTwoWayFieldsRequest,
11290            fidl::encoding::DefaultFuchsiaResourceDialect,
11291        > for (T0,)
11292    {
11293        #[inline]
11294        unsafe fn encode(
11295            self,
11296            encoder: &mut fidl::encoding::Encoder<
11297                '_,
11298                fidl::encoding::DefaultFuchsiaResourceDialect,
11299            >,
11300            offset: usize,
11301            depth: fidl::encoding::Depth,
11302        ) -> fidl::Result<()> {
11303            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11304            // Zero out padding regions. There's no need to apply masks
11305            // because the unmasked parts will be overwritten by fields.
11306            // Write the fields.
11307            self.0.encode(encoder, offset + 0, depth)?;
11308            Ok(())
11309        }
11310    }
11311
11312    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11313        for RunnerCallStrictTwoWayFieldsRequest
11314    {
11315        #[inline(always)]
11316        fn new_empty() -> Self {
11317            Self {
11318                target: fidl::new_empty!(
11319                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11320                    fidl::encoding::DefaultFuchsiaResourceDialect
11321                ),
11322            }
11323        }
11324
11325        #[inline]
11326        unsafe fn decode(
11327            &mut self,
11328            decoder: &mut fidl::encoding::Decoder<
11329                '_,
11330                fidl::encoding::DefaultFuchsiaResourceDialect,
11331            >,
11332            offset: usize,
11333            _depth: fidl::encoding::Depth,
11334        ) -> fidl::Result<()> {
11335            decoder.debug_check_bounds::<Self>(offset);
11336            // Verify that padding bytes are zero.
11337            fidl::decode!(
11338                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11339                fidl::encoding::DefaultFuchsiaResourceDialect,
11340                &mut self.target,
11341                decoder,
11342                offset + 0,
11343                _depth
11344            )?;
11345            Ok(())
11346        }
11347    }
11348
11349    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayRequest {
11350        type Borrowed<'a> = &'a mut Self;
11351        fn take_or_borrow<'a>(
11352            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11353        ) -> Self::Borrowed<'a> {
11354            value
11355        }
11356    }
11357
11358    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayRequest {
11359        type Owned = Self;
11360
11361        #[inline(always)]
11362        fn inline_align(_context: fidl::encoding::Context) -> usize {
11363            4
11364        }
11365
11366        #[inline(always)]
11367        fn inline_size(_context: fidl::encoding::Context) -> usize {
11368            4
11369        }
11370    }
11371
11372    unsafe impl
11373        fidl::encoding::Encode<
11374            RunnerCallStrictTwoWayRequest,
11375            fidl::encoding::DefaultFuchsiaResourceDialect,
11376        > for &mut RunnerCallStrictTwoWayRequest
11377    {
11378        #[inline]
11379        unsafe fn encode(
11380            self,
11381            encoder: &mut fidl::encoding::Encoder<
11382                '_,
11383                fidl::encoding::DefaultFuchsiaResourceDialect,
11384            >,
11385            offset: usize,
11386            _depth: fidl::encoding::Depth,
11387        ) -> fidl::Result<()> {
11388            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11389            // Delegate to tuple encoding.
11390            fidl::encoding::Encode::<RunnerCallStrictTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11391                (
11392                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11393                ),
11394                encoder, offset, _depth
11395            )
11396        }
11397    }
11398    unsafe impl<
11399            T0: fidl::encoding::Encode<
11400                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11401                fidl::encoding::DefaultFuchsiaResourceDialect,
11402            >,
11403        >
11404        fidl::encoding::Encode<
11405            RunnerCallStrictTwoWayRequest,
11406            fidl::encoding::DefaultFuchsiaResourceDialect,
11407        > for (T0,)
11408    {
11409        #[inline]
11410        unsafe fn encode(
11411            self,
11412            encoder: &mut fidl::encoding::Encoder<
11413                '_,
11414                fidl::encoding::DefaultFuchsiaResourceDialect,
11415            >,
11416            offset: usize,
11417            depth: fidl::encoding::Depth,
11418        ) -> fidl::Result<()> {
11419            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11420            // Zero out padding regions. There's no need to apply masks
11421            // because the unmasked parts will be overwritten by fields.
11422            // Write the fields.
11423            self.0.encode(encoder, offset + 0, depth)?;
11424            Ok(())
11425        }
11426    }
11427
11428    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11429        for RunnerCallStrictTwoWayRequest
11430    {
11431        #[inline(always)]
11432        fn new_empty() -> Self {
11433            Self {
11434                target: fidl::new_empty!(
11435                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11436                    fidl::encoding::DefaultFuchsiaResourceDialect
11437                ),
11438            }
11439        }
11440
11441        #[inline]
11442        unsafe fn decode(
11443            &mut self,
11444            decoder: &mut fidl::encoding::Decoder<
11445                '_,
11446                fidl::encoding::DefaultFuchsiaResourceDialect,
11447            >,
11448            offset: usize,
11449            _depth: fidl::encoding::Depth,
11450        ) -> fidl::Result<()> {
11451            decoder.debug_check_bounds::<Self>(offset);
11452            // Verify that padding bytes are zero.
11453            fidl::decode!(
11454                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11455                fidl::encoding::DefaultFuchsiaResourceDialect,
11456                &mut self.target,
11457                decoder,
11458                offset + 0,
11459                _depth
11460            )?;
11461            Ok(())
11462        }
11463    }
11464
11465    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayNoPayloadRequest {
11466        type Borrowed<'a> = &'a mut Self;
11467        fn take_or_borrow<'a>(
11468            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11469        ) -> Self::Borrowed<'a> {
11470            value
11471        }
11472    }
11473
11474    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayNoPayloadRequest {
11475        type Owned = Self;
11476
11477        #[inline(always)]
11478        fn inline_align(_context: fidl::encoding::Context) -> usize {
11479            4
11480        }
11481
11482        #[inline(always)]
11483        fn inline_size(_context: fidl::encoding::Context) -> usize {
11484            4
11485        }
11486    }
11487
11488    unsafe impl
11489        fidl::encoding::Encode<
11490            RunnerCallTwoWayNoPayloadRequest,
11491            fidl::encoding::DefaultFuchsiaResourceDialect,
11492        > for &mut RunnerCallTwoWayNoPayloadRequest
11493    {
11494        #[inline]
11495        unsafe fn encode(
11496            self,
11497            encoder: &mut fidl::encoding::Encoder<
11498                '_,
11499                fidl::encoding::DefaultFuchsiaResourceDialect,
11500            >,
11501            offset: usize,
11502            _depth: fidl::encoding::Depth,
11503        ) -> fidl::Result<()> {
11504            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11505            // Delegate to tuple encoding.
11506            fidl::encoding::Encode::<RunnerCallTwoWayNoPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11507                (
11508                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11509                ),
11510                encoder, offset, _depth
11511            )
11512        }
11513    }
11514    unsafe impl<
11515            T0: fidl::encoding::Encode<
11516                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11517                fidl::encoding::DefaultFuchsiaResourceDialect,
11518            >,
11519        >
11520        fidl::encoding::Encode<
11521            RunnerCallTwoWayNoPayloadRequest,
11522            fidl::encoding::DefaultFuchsiaResourceDialect,
11523        > for (T0,)
11524    {
11525        #[inline]
11526        unsafe fn encode(
11527            self,
11528            encoder: &mut fidl::encoding::Encoder<
11529                '_,
11530                fidl::encoding::DefaultFuchsiaResourceDialect,
11531            >,
11532            offset: usize,
11533            depth: fidl::encoding::Depth,
11534        ) -> fidl::Result<()> {
11535            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11536            // Zero out padding regions. There's no need to apply masks
11537            // because the unmasked parts will be overwritten by fields.
11538            // Write the fields.
11539            self.0.encode(encoder, offset + 0, depth)?;
11540            Ok(())
11541        }
11542    }
11543
11544    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11545        for RunnerCallTwoWayNoPayloadRequest
11546    {
11547        #[inline(always)]
11548        fn new_empty() -> Self {
11549            Self {
11550                target: fidl::new_empty!(
11551                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11552                    fidl::encoding::DefaultFuchsiaResourceDialect
11553                ),
11554            }
11555        }
11556
11557        #[inline]
11558        unsafe fn decode(
11559            &mut self,
11560            decoder: &mut fidl::encoding::Decoder<
11561                '_,
11562                fidl::encoding::DefaultFuchsiaResourceDialect,
11563            >,
11564            offset: usize,
11565            _depth: fidl::encoding::Depth,
11566        ) -> fidl::Result<()> {
11567            decoder.debug_check_bounds::<Self>(offset);
11568            // Verify that padding bytes are zero.
11569            fidl::decode!(
11570                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11571                fidl::encoding::DefaultFuchsiaResourceDialect,
11572                &mut self.target,
11573                decoder,
11574                offset + 0,
11575                _depth
11576            )?;
11577            Ok(())
11578        }
11579    }
11580
11581    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11582        type Borrowed<'a> = &'a mut Self;
11583        fn take_or_borrow<'a>(
11584            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11585        ) -> Self::Borrowed<'a> {
11586            value
11587        }
11588    }
11589
11590    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11591        type Owned = Self;
11592
11593        #[inline(always)]
11594        fn inline_align(_context: fidl::encoding::Context) -> usize {
11595            4
11596        }
11597
11598        #[inline(always)]
11599        fn inline_size(_context: fidl::encoding::Context) -> usize {
11600            4
11601        }
11602    }
11603
11604    unsafe impl
11605        fidl::encoding::Encode<
11606            RunnerCallTwoWayStructPayloadErrRequest,
11607            fidl::encoding::DefaultFuchsiaResourceDialect,
11608        > for &mut RunnerCallTwoWayStructPayloadErrRequest
11609    {
11610        #[inline]
11611        unsafe fn encode(
11612            self,
11613            encoder: &mut fidl::encoding::Encoder<
11614                '_,
11615                fidl::encoding::DefaultFuchsiaResourceDialect,
11616            >,
11617            offset: usize,
11618            _depth: fidl::encoding::Depth,
11619        ) -> fidl::Result<()> {
11620            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11621            // Delegate to tuple encoding.
11622            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11623                (
11624                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11625                ),
11626                encoder, offset, _depth
11627            )
11628        }
11629    }
11630    unsafe impl<
11631            T0: fidl::encoding::Encode<
11632                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11633                fidl::encoding::DefaultFuchsiaResourceDialect,
11634            >,
11635        >
11636        fidl::encoding::Encode<
11637            RunnerCallTwoWayStructPayloadErrRequest,
11638            fidl::encoding::DefaultFuchsiaResourceDialect,
11639        > for (T0,)
11640    {
11641        #[inline]
11642        unsafe fn encode(
11643            self,
11644            encoder: &mut fidl::encoding::Encoder<
11645                '_,
11646                fidl::encoding::DefaultFuchsiaResourceDialect,
11647            >,
11648            offset: usize,
11649            depth: fidl::encoding::Depth,
11650        ) -> fidl::Result<()> {
11651            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11652            // Zero out padding regions. There's no need to apply masks
11653            // because the unmasked parts will be overwritten by fields.
11654            // Write the fields.
11655            self.0.encode(encoder, offset + 0, depth)?;
11656            Ok(())
11657        }
11658    }
11659
11660    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11661        for RunnerCallTwoWayStructPayloadErrRequest
11662    {
11663        #[inline(always)]
11664        fn new_empty() -> Self {
11665            Self {
11666                target: fidl::new_empty!(
11667                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11668                    fidl::encoding::DefaultFuchsiaResourceDialect
11669                ),
11670            }
11671        }
11672
11673        #[inline]
11674        unsafe fn decode(
11675            &mut self,
11676            decoder: &mut fidl::encoding::Decoder<
11677                '_,
11678                fidl::encoding::DefaultFuchsiaResourceDialect,
11679            >,
11680            offset: usize,
11681            _depth: fidl::encoding::Depth,
11682        ) -> fidl::Result<()> {
11683            decoder.debug_check_bounds::<Self>(offset);
11684            // Verify that padding bytes are zero.
11685            fidl::decode!(
11686                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11687                fidl::encoding::DefaultFuchsiaResourceDialect,
11688                &mut self.target,
11689                decoder,
11690                offset + 0,
11691                _depth
11692            )?;
11693            Ok(())
11694        }
11695    }
11696
11697    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadRequest {
11698        type Borrowed<'a> = &'a mut Self;
11699        fn take_or_borrow<'a>(
11700            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11701        ) -> Self::Borrowed<'a> {
11702            value
11703        }
11704    }
11705
11706    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadRequest {
11707        type Owned = Self;
11708
11709        #[inline(always)]
11710        fn inline_align(_context: fidl::encoding::Context) -> usize {
11711            4
11712        }
11713
11714        #[inline(always)]
11715        fn inline_size(_context: fidl::encoding::Context) -> usize {
11716            4
11717        }
11718    }
11719
11720    unsafe impl
11721        fidl::encoding::Encode<
11722            RunnerCallTwoWayStructPayloadRequest,
11723            fidl::encoding::DefaultFuchsiaResourceDialect,
11724        > for &mut RunnerCallTwoWayStructPayloadRequest
11725    {
11726        #[inline]
11727        unsafe fn encode(
11728            self,
11729            encoder: &mut fidl::encoding::Encoder<
11730                '_,
11731                fidl::encoding::DefaultFuchsiaResourceDialect,
11732            >,
11733            offset: usize,
11734            _depth: fidl::encoding::Depth,
11735        ) -> fidl::Result<()> {
11736            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11737            // Delegate to tuple encoding.
11738            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11739                (
11740                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11741                ),
11742                encoder, offset, _depth
11743            )
11744        }
11745    }
11746    unsafe impl<
11747            T0: fidl::encoding::Encode<
11748                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11749                fidl::encoding::DefaultFuchsiaResourceDialect,
11750            >,
11751        >
11752        fidl::encoding::Encode<
11753            RunnerCallTwoWayStructPayloadRequest,
11754            fidl::encoding::DefaultFuchsiaResourceDialect,
11755        > for (T0,)
11756    {
11757        #[inline]
11758        unsafe fn encode(
11759            self,
11760            encoder: &mut fidl::encoding::Encoder<
11761                '_,
11762                fidl::encoding::DefaultFuchsiaResourceDialect,
11763            >,
11764            offset: usize,
11765            depth: fidl::encoding::Depth,
11766        ) -> fidl::Result<()> {
11767            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11768            // Zero out padding regions. There's no need to apply masks
11769            // because the unmasked parts will be overwritten by fields.
11770            // Write the fields.
11771            self.0.encode(encoder, offset + 0, depth)?;
11772            Ok(())
11773        }
11774    }
11775
11776    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11777        for RunnerCallTwoWayStructPayloadRequest
11778    {
11779        #[inline(always)]
11780        fn new_empty() -> Self {
11781            Self {
11782                target: fidl::new_empty!(
11783                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11784                    fidl::encoding::DefaultFuchsiaResourceDialect
11785                ),
11786            }
11787        }
11788
11789        #[inline]
11790        unsafe fn decode(
11791            &mut self,
11792            decoder: &mut fidl::encoding::Decoder<
11793                '_,
11794                fidl::encoding::DefaultFuchsiaResourceDialect,
11795            >,
11796            offset: usize,
11797            _depth: fidl::encoding::Depth,
11798        ) -> fidl::Result<()> {
11799            decoder.debug_check_bounds::<Self>(offset);
11800            // Verify that padding bytes are zero.
11801            fidl::decode!(
11802                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11803                fidl::encoding::DefaultFuchsiaResourceDialect,
11804                &mut self.target,
11805                decoder,
11806                offset + 0,
11807                _depth
11808            )?;
11809            Ok(())
11810        }
11811    }
11812
11813    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructRequestRequest {
11814        type Borrowed<'a> = &'a mut Self;
11815        fn take_or_borrow<'a>(
11816            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11817        ) -> Self::Borrowed<'a> {
11818            value
11819        }
11820    }
11821
11822    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructRequestRequest {
11823        type Owned = Self;
11824
11825        #[inline(always)]
11826        fn inline_align(_context: fidl::encoding::Context) -> usize {
11827            4
11828        }
11829
11830        #[inline(always)]
11831        fn inline_size(_context: fidl::encoding::Context) -> usize {
11832            8
11833        }
11834    }
11835
11836    unsafe impl
11837        fidl::encoding::Encode<
11838            RunnerCallTwoWayStructRequestRequest,
11839            fidl::encoding::DefaultFuchsiaResourceDialect,
11840        > for &mut RunnerCallTwoWayStructRequestRequest
11841    {
11842        #[inline]
11843        unsafe fn encode(
11844            self,
11845            encoder: &mut fidl::encoding::Encoder<
11846                '_,
11847                fidl::encoding::DefaultFuchsiaResourceDialect,
11848            >,
11849            offset: usize,
11850            _depth: fidl::encoding::Depth,
11851        ) -> fidl::Result<()> {
11852            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
11853            // Delegate to tuple encoding.
11854            fidl::encoding::Encode::<RunnerCallTwoWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11855                (
11856                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11857                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
11858                ),
11859                encoder, offset, _depth
11860            )
11861        }
11862    }
11863    unsafe impl<
11864            T0: fidl::encoding::Encode<
11865                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11866                fidl::encoding::DefaultFuchsiaResourceDialect,
11867            >,
11868            T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
11869        >
11870        fidl::encoding::Encode<
11871            RunnerCallTwoWayStructRequestRequest,
11872            fidl::encoding::DefaultFuchsiaResourceDialect,
11873        > for (T0, T1)
11874    {
11875        #[inline]
11876        unsafe fn encode(
11877            self,
11878            encoder: &mut fidl::encoding::Encoder<
11879                '_,
11880                fidl::encoding::DefaultFuchsiaResourceDialect,
11881            >,
11882            offset: usize,
11883            depth: fidl::encoding::Depth,
11884        ) -> fidl::Result<()> {
11885            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
11886            // Zero out padding regions. There's no need to apply masks
11887            // because the unmasked parts will be overwritten by fields.
11888            // Write the fields.
11889            self.0.encode(encoder, offset + 0, depth)?;
11890            self.1.encode(encoder, offset + 4, depth)?;
11891            Ok(())
11892        }
11893    }
11894
11895    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11896        for RunnerCallTwoWayStructRequestRequest
11897    {
11898        #[inline(always)]
11899        fn new_empty() -> Self {
11900            Self {
11901                target: fidl::new_empty!(
11902                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11903                    fidl::encoding::DefaultFuchsiaResourceDialect
11904                ),
11905                request: fidl::new_empty!(
11906                    NonEmptyPayload,
11907                    fidl::encoding::DefaultFuchsiaResourceDialect
11908                ),
11909            }
11910        }
11911
11912        #[inline]
11913        unsafe fn decode(
11914            &mut self,
11915            decoder: &mut fidl::encoding::Decoder<
11916                '_,
11917                fidl::encoding::DefaultFuchsiaResourceDialect,
11918            >,
11919            offset: usize,
11920            _depth: fidl::encoding::Depth,
11921        ) -> fidl::Result<()> {
11922            decoder.debug_check_bounds::<Self>(offset);
11923            // Verify that padding bytes are zero.
11924            fidl::decode!(
11925                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11926                fidl::encoding::DefaultFuchsiaResourceDialect,
11927                &mut self.target,
11928                decoder,
11929                offset + 0,
11930                _depth
11931            )?;
11932            fidl::decode!(
11933                NonEmptyPayload,
11934                fidl::encoding::DefaultFuchsiaResourceDialect,
11935                &mut self.request,
11936                decoder,
11937                offset + 4,
11938                _depth
11939            )?;
11940            Ok(())
11941        }
11942    }
11943
11944    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTablePayloadRequest {
11945        type Borrowed<'a> = &'a mut Self;
11946        fn take_or_borrow<'a>(
11947            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11948        ) -> Self::Borrowed<'a> {
11949            value
11950        }
11951    }
11952
11953    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTablePayloadRequest {
11954        type Owned = Self;
11955
11956        #[inline(always)]
11957        fn inline_align(_context: fidl::encoding::Context) -> usize {
11958            4
11959        }
11960
11961        #[inline(always)]
11962        fn inline_size(_context: fidl::encoding::Context) -> usize {
11963            4
11964        }
11965    }
11966
11967    unsafe impl
11968        fidl::encoding::Encode<
11969            RunnerCallTwoWayTablePayloadRequest,
11970            fidl::encoding::DefaultFuchsiaResourceDialect,
11971        > for &mut RunnerCallTwoWayTablePayloadRequest
11972    {
11973        #[inline]
11974        unsafe fn encode(
11975            self,
11976            encoder: &mut fidl::encoding::Encoder<
11977                '_,
11978                fidl::encoding::DefaultFuchsiaResourceDialect,
11979            >,
11980            offset: usize,
11981            _depth: fidl::encoding::Depth,
11982        ) -> fidl::Result<()> {
11983            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
11984            // Delegate to tuple encoding.
11985            fidl::encoding::Encode::<RunnerCallTwoWayTablePayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11986                (
11987                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11988                ),
11989                encoder, offset, _depth
11990            )
11991        }
11992    }
11993    unsafe impl<
11994            T0: fidl::encoding::Encode<
11995                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11996                fidl::encoding::DefaultFuchsiaResourceDialect,
11997            >,
11998        >
11999        fidl::encoding::Encode<
12000            RunnerCallTwoWayTablePayloadRequest,
12001            fidl::encoding::DefaultFuchsiaResourceDialect,
12002        > for (T0,)
12003    {
12004        #[inline]
12005        unsafe fn encode(
12006            self,
12007            encoder: &mut fidl::encoding::Encoder<
12008                '_,
12009                fidl::encoding::DefaultFuchsiaResourceDialect,
12010            >,
12011            offset: usize,
12012            depth: fidl::encoding::Depth,
12013        ) -> fidl::Result<()> {
12014            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12015            // Zero out padding regions. There's no need to apply masks
12016            // because the unmasked parts will be overwritten by fields.
12017            // Write the fields.
12018            self.0.encode(encoder, offset + 0, depth)?;
12019            Ok(())
12020        }
12021    }
12022
12023    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12024        for RunnerCallTwoWayTablePayloadRequest
12025    {
12026        #[inline(always)]
12027        fn new_empty() -> Self {
12028            Self {
12029                target: fidl::new_empty!(
12030                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12031                    fidl::encoding::DefaultFuchsiaResourceDialect
12032                ),
12033            }
12034        }
12035
12036        #[inline]
12037        unsafe fn decode(
12038            &mut self,
12039            decoder: &mut fidl::encoding::Decoder<
12040                '_,
12041                fidl::encoding::DefaultFuchsiaResourceDialect,
12042            >,
12043            offset: usize,
12044            _depth: fidl::encoding::Depth,
12045        ) -> fidl::Result<()> {
12046            decoder.debug_check_bounds::<Self>(offset);
12047            // Verify that padding bytes are zero.
12048            fidl::decode!(
12049                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12050                fidl::encoding::DefaultFuchsiaResourceDialect,
12051                &mut self.target,
12052                decoder,
12053                offset + 0,
12054                _depth
12055            )?;
12056            Ok(())
12057        }
12058    }
12059
12060    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTableRequestRequest {
12061        type Borrowed<'a> = &'a mut Self;
12062        fn take_or_borrow<'a>(
12063            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12064        ) -> Self::Borrowed<'a> {
12065            value
12066        }
12067    }
12068
12069    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTableRequestRequest {
12070        type Owned = Self;
12071
12072        #[inline(always)]
12073        fn inline_align(_context: fidl::encoding::Context) -> usize {
12074            8
12075        }
12076
12077        #[inline(always)]
12078        fn inline_size(_context: fidl::encoding::Context) -> usize {
12079            24
12080        }
12081    }
12082
12083    unsafe impl
12084        fidl::encoding::Encode<
12085            RunnerCallTwoWayTableRequestRequest,
12086            fidl::encoding::DefaultFuchsiaResourceDialect,
12087        > for &mut RunnerCallTwoWayTableRequestRequest
12088    {
12089        #[inline]
12090        unsafe fn encode(
12091            self,
12092            encoder: &mut fidl::encoding::Encoder<
12093                '_,
12094                fidl::encoding::DefaultFuchsiaResourceDialect,
12095            >,
12096            offset: usize,
12097            _depth: fidl::encoding::Depth,
12098        ) -> fidl::Result<()> {
12099            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12100            // Delegate to tuple encoding.
12101            fidl::encoding::Encode::<RunnerCallTwoWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12102                (
12103                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12104                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12105                ),
12106                encoder, offset, _depth
12107            )
12108        }
12109    }
12110    unsafe impl<
12111            T0: fidl::encoding::Encode<
12112                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12113                fidl::encoding::DefaultFuchsiaResourceDialect,
12114            >,
12115            T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12116        >
12117        fidl::encoding::Encode<
12118            RunnerCallTwoWayTableRequestRequest,
12119            fidl::encoding::DefaultFuchsiaResourceDialect,
12120        > for (T0, T1)
12121    {
12122        #[inline]
12123        unsafe fn encode(
12124            self,
12125            encoder: &mut fidl::encoding::Encoder<
12126                '_,
12127                fidl::encoding::DefaultFuchsiaResourceDialect,
12128            >,
12129            offset: usize,
12130            depth: fidl::encoding::Depth,
12131        ) -> fidl::Result<()> {
12132            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12133            // Zero out padding regions. There's no need to apply masks
12134            // because the unmasked parts will be overwritten by fields.
12135            unsafe {
12136                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12137                (ptr as *mut u64).write_unaligned(0);
12138            }
12139            // Write the fields.
12140            self.0.encode(encoder, offset + 0, depth)?;
12141            self.1.encode(encoder, offset + 8, depth)?;
12142            Ok(())
12143        }
12144    }
12145
12146    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12147        for RunnerCallTwoWayTableRequestRequest
12148    {
12149        #[inline(always)]
12150        fn new_empty() -> Self {
12151            Self {
12152                target: fidl::new_empty!(
12153                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12154                    fidl::encoding::DefaultFuchsiaResourceDialect
12155                ),
12156                request: fidl::new_empty!(
12157                    TablePayload,
12158                    fidl::encoding::DefaultFuchsiaResourceDialect
12159                ),
12160            }
12161        }
12162
12163        #[inline]
12164        unsafe fn decode(
12165            &mut self,
12166            decoder: &mut fidl::encoding::Decoder<
12167                '_,
12168                fidl::encoding::DefaultFuchsiaResourceDialect,
12169            >,
12170            offset: usize,
12171            _depth: fidl::encoding::Depth,
12172        ) -> fidl::Result<()> {
12173            decoder.debug_check_bounds::<Self>(offset);
12174            // Verify that padding bytes are zero.
12175            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12176            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12177            let mask = 0xffffffff00000000u64;
12178            let maskedval = padval & mask;
12179            if maskedval != 0 {
12180                return Err(fidl::Error::NonZeroPadding {
12181                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12182                });
12183            }
12184            fidl::decode!(
12185                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12186                fidl::encoding::DefaultFuchsiaResourceDialect,
12187                &mut self.target,
12188                decoder,
12189                offset + 0,
12190                _depth
12191            )?;
12192            fidl::decode!(
12193                TablePayload,
12194                fidl::encoding::DefaultFuchsiaResourceDialect,
12195                &mut self.request,
12196                decoder,
12197                offset + 8,
12198                _depth
12199            )?;
12200            Ok(())
12201        }
12202    }
12203
12204    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12205        type Borrowed<'a> = &'a mut Self;
12206        fn take_or_borrow<'a>(
12207            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12208        ) -> Self::Borrowed<'a> {
12209            value
12210        }
12211    }
12212
12213    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12214        type Owned = Self;
12215
12216        #[inline(always)]
12217        fn inline_align(_context: fidl::encoding::Context) -> usize {
12218            4
12219        }
12220
12221        #[inline(always)]
12222        fn inline_size(_context: fidl::encoding::Context) -> usize {
12223            4
12224        }
12225    }
12226
12227    unsafe impl
12228        fidl::encoding::Encode<
12229            RunnerCallTwoWayUnionPayloadRequest,
12230            fidl::encoding::DefaultFuchsiaResourceDialect,
12231        > for &mut RunnerCallTwoWayUnionPayloadRequest
12232    {
12233        #[inline]
12234        unsafe fn encode(
12235            self,
12236            encoder: &mut fidl::encoding::Encoder<
12237                '_,
12238                fidl::encoding::DefaultFuchsiaResourceDialect,
12239            >,
12240            offset: usize,
12241            _depth: fidl::encoding::Depth,
12242        ) -> fidl::Result<()> {
12243            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12244            // Delegate to tuple encoding.
12245            fidl::encoding::Encode::<RunnerCallTwoWayUnionPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12246                (
12247                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12248                ),
12249                encoder, offset, _depth
12250            )
12251        }
12252    }
12253    unsafe impl<
12254            T0: fidl::encoding::Encode<
12255                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12256                fidl::encoding::DefaultFuchsiaResourceDialect,
12257            >,
12258        >
12259        fidl::encoding::Encode<
12260            RunnerCallTwoWayUnionPayloadRequest,
12261            fidl::encoding::DefaultFuchsiaResourceDialect,
12262        > for (T0,)
12263    {
12264        #[inline]
12265        unsafe fn encode(
12266            self,
12267            encoder: &mut fidl::encoding::Encoder<
12268                '_,
12269                fidl::encoding::DefaultFuchsiaResourceDialect,
12270            >,
12271            offset: usize,
12272            depth: fidl::encoding::Depth,
12273        ) -> fidl::Result<()> {
12274            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12275            // Zero out padding regions. There's no need to apply masks
12276            // because the unmasked parts will be overwritten by fields.
12277            // Write the fields.
12278            self.0.encode(encoder, offset + 0, depth)?;
12279            Ok(())
12280        }
12281    }
12282
12283    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12284        for RunnerCallTwoWayUnionPayloadRequest
12285    {
12286        #[inline(always)]
12287        fn new_empty() -> Self {
12288            Self {
12289                target: fidl::new_empty!(
12290                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12291                    fidl::encoding::DefaultFuchsiaResourceDialect
12292                ),
12293            }
12294        }
12295
12296        #[inline]
12297        unsafe fn decode(
12298            &mut self,
12299            decoder: &mut fidl::encoding::Decoder<
12300                '_,
12301                fidl::encoding::DefaultFuchsiaResourceDialect,
12302            >,
12303            offset: usize,
12304            _depth: fidl::encoding::Depth,
12305        ) -> fidl::Result<()> {
12306            decoder.debug_check_bounds::<Self>(offset);
12307            // Verify that padding bytes are zero.
12308            fidl::decode!(
12309                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12310                fidl::encoding::DefaultFuchsiaResourceDialect,
12311                &mut self.target,
12312                decoder,
12313                offset + 0,
12314                _depth
12315            )?;
12316            Ok(())
12317        }
12318    }
12319
12320    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionRequestRequest {
12321        type Borrowed<'a> = &'a mut Self;
12322        fn take_or_borrow<'a>(
12323            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12324        ) -> Self::Borrowed<'a> {
12325            value
12326        }
12327    }
12328
12329    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionRequestRequest {
12330        type Owned = Self;
12331
12332        #[inline(always)]
12333        fn inline_align(_context: fidl::encoding::Context) -> usize {
12334            8
12335        }
12336
12337        #[inline(always)]
12338        fn inline_size(_context: fidl::encoding::Context) -> usize {
12339            24
12340        }
12341    }
12342
12343    unsafe impl
12344        fidl::encoding::Encode<
12345            RunnerCallTwoWayUnionRequestRequest,
12346            fidl::encoding::DefaultFuchsiaResourceDialect,
12347        > for &mut RunnerCallTwoWayUnionRequestRequest
12348    {
12349        #[inline]
12350        unsafe fn encode(
12351            self,
12352            encoder: &mut fidl::encoding::Encoder<
12353                '_,
12354                fidl::encoding::DefaultFuchsiaResourceDialect,
12355            >,
12356            offset: usize,
12357            _depth: fidl::encoding::Depth,
12358        ) -> fidl::Result<()> {
12359            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12360            // Delegate to tuple encoding.
12361            fidl::encoding::Encode::<RunnerCallTwoWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12362                (
12363                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12364                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12365                ),
12366                encoder, offset, _depth
12367            )
12368        }
12369    }
12370    unsafe impl<
12371            T0: fidl::encoding::Encode<
12372                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12373                fidl::encoding::DefaultFuchsiaResourceDialect,
12374            >,
12375            T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12376        >
12377        fidl::encoding::Encode<
12378            RunnerCallTwoWayUnionRequestRequest,
12379            fidl::encoding::DefaultFuchsiaResourceDialect,
12380        > for (T0, T1)
12381    {
12382        #[inline]
12383        unsafe fn encode(
12384            self,
12385            encoder: &mut fidl::encoding::Encoder<
12386                '_,
12387                fidl::encoding::DefaultFuchsiaResourceDialect,
12388            >,
12389            offset: usize,
12390            depth: fidl::encoding::Depth,
12391        ) -> fidl::Result<()> {
12392            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12393            // Zero out padding regions. There's no need to apply masks
12394            // because the unmasked parts will be overwritten by fields.
12395            unsafe {
12396                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12397                (ptr as *mut u64).write_unaligned(0);
12398            }
12399            // Write the fields.
12400            self.0.encode(encoder, offset + 0, depth)?;
12401            self.1.encode(encoder, offset + 8, depth)?;
12402            Ok(())
12403        }
12404    }
12405
12406    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12407        for RunnerCallTwoWayUnionRequestRequest
12408    {
12409        #[inline(always)]
12410        fn new_empty() -> Self {
12411            Self {
12412                target: fidl::new_empty!(
12413                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12414                    fidl::encoding::DefaultFuchsiaResourceDialect
12415                ),
12416                request: fidl::new_empty!(
12417                    UnionPayload,
12418                    fidl::encoding::DefaultFuchsiaResourceDialect
12419                ),
12420            }
12421        }
12422
12423        #[inline]
12424        unsafe fn decode(
12425            &mut self,
12426            decoder: &mut fidl::encoding::Decoder<
12427                '_,
12428                fidl::encoding::DefaultFuchsiaResourceDialect,
12429            >,
12430            offset: usize,
12431            _depth: fidl::encoding::Depth,
12432        ) -> fidl::Result<()> {
12433            decoder.debug_check_bounds::<Self>(offset);
12434            // Verify that padding bytes are zero.
12435            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12436            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12437            let mask = 0xffffffff00000000u64;
12438            let maskedval = padval & mask;
12439            if maskedval != 0 {
12440                return Err(fidl::Error::NonZeroPadding {
12441                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12442                });
12443            }
12444            fidl::decode!(
12445                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12446                fidl::encoding::DefaultFuchsiaResourceDialect,
12447                &mut self.target,
12448                decoder,
12449                offset + 0,
12450                _depth
12451            )?;
12452            fidl::decode!(
12453                UnionPayload,
12454                fidl::encoding::DefaultFuchsiaResourceDialect,
12455                &mut self.request,
12456                decoder,
12457                offset + 8,
12458                _depth
12459            )?;
12460            Ok(())
12461        }
12462    }
12463
12464    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveAjarEventsRequest {
12465        type Borrowed<'a> = &'a mut Self;
12466        fn take_or_borrow<'a>(
12467            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12468        ) -> Self::Borrowed<'a> {
12469            value
12470        }
12471    }
12472
12473    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveAjarEventsRequest {
12474        type Owned = Self;
12475
12476        #[inline(always)]
12477        fn inline_align(_context: fidl::encoding::Context) -> usize {
12478            4
12479        }
12480
12481        #[inline(always)]
12482        fn inline_size(_context: fidl::encoding::Context) -> usize {
12483            8
12484        }
12485    }
12486
12487    unsafe impl
12488        fidl::encoding::Encode<
12489            RunnerReceiveAjarEventsRequest,
12490            fidl::encoding::DefaultFuchsiaResourceDialect,
12491        > for &mut RunnerReceiveAjarEventsRequest
12492    {
12493        #[inline]
12494        unsafe fn encode(
12495            self,
12496            encoder: &mut fidl::encoding::Encoder<
12497                '_,
12498                fidl::encoding::DefaultFuchsiaResourceDialect,
12499            >,
12500            offset: usize,
12501            _depth: fidl::encoding::Depth,
12502        ) -> fidl::Result<()> {
12503            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12504            // Delegate to tuple encoding.
12505            fidl::encoding::Encode::<RunnerReceiveAjarEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12506                (
12507                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12508                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12509                ),
12510                encoder, offset, _depth
12511            )
12512        }
12513    }
12514    unsafe impl<
12515            T0: fidl::encoding::Encode<
12516                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12517                fidl::encoding::DefaultFuchsiaResourceDialect,
12518            >,
12519            T1: fidl::encoding::Encode<
12520                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12521                fidl::encoding::DefaultFuchsiaResourceDialect,
12522            >,
12523        >
12524        fidl::encoding::Encode<
12525            RunnerReceiveAjarEventsRequest,
12526            fidl::encoding::DefaultFuchsiaResourceDialect,
12527        > for (T0, T1)
12528    {
12529        #[inline]
12530        unsafe fn encode(
12531            self,
12532            encoder: &mut fidl::encoding::Encoder<
12533                '_,
12534                fidl::encoding::DefaultFuchsiaResourceDialect,
12535            >,
12536            offset: usize,
12537            depth: fidl::encoding::Depth,
12538        ) -> fidl::Result<()> {
12539            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12540            // Zero out padding regions. There's no need to apply masks
12541            // because the unmasked parts will be overwritten by fields.
12542            // Write the fields.
12543            self.0.encode(encoder, offset + 0, depth)?;
12544            self.1.encode(encoder, offset + 4, depth)?;
12545            Ok(())
12546        }
12547    }
12548
12549    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12550        for RunnerReceiveAjarEventsRequest
12551    {
12552        #[inline(always)]
12553        fn new_empty() -> Self {
12554            Self {
12555                target: fidl::new_empty!(
12556                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12557                    fidl::encoding::DefaultFuchsiaResourceDialect
12558                ),
12559                reporter: fidl::new_empty!(
12560                    fidl::encoding::Endpoint<
12561                        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
12562                    >,
12563                    fidl::encoding::DefaultFuchsiaResourceDialect
12564                ),
12565            }
12566        }
12567
12568        #[inline]
12569        unsafe fn decode(
12570            &mut self,
12571            decoder: &mut fidl::encoding::Decoder<
12572                '_,
12573                fidl::encoding::DefaultFuchsiaResourceDialect,
12574            >,
12575            offset: usize,
12576            _depth: fidl::encoding::Depth,
12577        ) -> fidl::Result<()> {
12578            decoder.debug_check_bounds::<Self>(offset);
12579            // Verify that padding bytes are zero.
12580            fidl::decode!(
12581                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12582                fidl::encoding::DefaultFuchsiaResourceDialect,
12583                &mut self.target,
12584                decoder,
12585                offset + 0,
12586                _depth
12587            )?;
12588            fidl::decode!(
12589                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12590                fidl::encoding::DefaultFuchsiaResourceDialect,
12591                &mut self.reporter,
12592                decoder,
12593                offset + 4,
12594                _depth
12595            )?;
12596            Ok(())
12597        }
12598    }
12599
12600    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveClosedEventsRequest {
12601        type Borrowed<'a> = &'a mut Self;
12602        fn take_or_borrow<'a>(
12603            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12604        ) -> Self::Borrowed<'a> {
12605            value
12606        }
12607    }
12608
12609    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveClosedEventsRequest {
12610        type Owned = Self;
12611
12612        #[inline(always)]
12613        fn inline_align(_context: fidl::encoding::Context) -> usize {
12614            4
12615        }
12616
12617        #[inline(always)]
12618        fn inline_size(_context: fidl::encoding::Context) -> usize {
12619            8
12620        }
12621    }
12622
12623    unsafe impl
12624        fidl::encoding::Encode<
12625            RunnerReceiveClosedEventsRequest,
12626            fidl::encoding::DefaultFuchsiaResourceDialect,
12627        > for &mut RunnerReceiveClosedEventsRequest
12628    {
12629        #[inline]
12630        unsafe fn encode(
12631            self,
12632            encoder: &mut fidl::encoding::Encoder<
12633                '_,
12634                fidl::encoding::DefaultFuchsiaResourceDialect,
12635            >,
12636            offset: usize,
12637            _depth: fidl::encoding::Depth,
12638        ) -> fidl::Result<()> {
12639            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12640            // Delegate to tuple encoding.
12641            fidl::encoding::Encode::<RunnerReceiveClosedEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12642                (
12643                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12644                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12645                ),
12646                encoder, offset, _depth
12647            )
12648        }
12649    }
12650    unsafe impl<
12651            T0: fidl::encoding::Encode<
12652                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12653                fidl::encoding::DefaultFuchsiaResourceDialect,
12654            >,
12655            T1: fidl::encoding::Encode<
12656                fidl::encoding::Endpoint<
12657                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12658                >,
12659                fidl::encoding::DefaultFuchsiaResourceDialect,
12660            >,
12661        >
12662        fidl::encoding::Encode<
12663            RunnerReceiveClosedEventsRequest,
12664            fidl::encoding::DefaultFuchsiaResourceDialect,
12665        > for (T0, T1)
12666    {
12667        #[inline]
12668        unsafe fn encode(
12669            self,
12670            encoder: &mut fidl::encoding::Encoder<
12671                '_,
12672                fidl::encoding::DefaultFuchsiaResourceDialect,
12673            >,
12674            offset: usize,
12675            depth: fidl::encoding::Depth,
12676        ) -> fidl::Result<()> {
12677            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12678            // Zero out padding regions. There's no need to apply masks
12679            // because the unmasked parts will be overwritten by fields.
12680            // Write the fields.
12681            self.0.encode(encoder, offset + 0, depth)?;
12682            self.1.encode(encoder, offset + 4, depth)?;
12683            Ok(())
12684        }
12685    }
12686
12687    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12688        for RunnerReceiveClosedEventsRequest
12689    {
12690        #[inline(always)]
12691        fn new_empty() -> Self {
12692            Self {
12693                target: fidl::new_empty!(
12694                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12695                    fidl::encoding::DefaultFuchsiaResourceDialect
12696                ),
12697                reporter: fidl::new_empty!(
12698                    fidl::encoding::Endpoint<
12699                        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12700                    >,
12701                    fidl::encoding::DefaultFuchsiaResourceDialect
12702                ),
12703            }
12704        }
12705
12706        #[inline]
12707        unsafe fn decode(
12708            &mut self,
12709            decoder: &mut fidl::encoding::Decoder<
12710                '_,
12711                fidl::encoding::DefaultFuchsiaResourceDialect,
12712            >,
12713            offset: usize,
12714            _depth: fidl::encoding::Depth,
12715        ) -> fidl::Result<()> {
12716            decoder.debug_check_bounds::<Self>(offset);
12717            // Verify that padding bytes are zero.
12718            fidl::decode!(
12719                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12720                fidl::encoding::DefaultFuchsiaResourceDialect,
12721                &mut self.target,
12722                decoder,
12723                offset + 0,
12724                _depth
12725            )?;
12726            fidl::decode!(
12727                fidl::encoding::Endpoint<
12728                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12729                >,
12730                fidl::encoding::DefaultFuchsiaResourceDialect,
12731                &mut self.reporter,
12732                decoder,
12733                offset + 4,
12734                _depth
12735            )?;
12736            Ok(())
12737        }
12738    }
12739
12740    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveOpenEventsRequest {
12741        type Borrowed<'a> = &'a mut Self;
12742        fn take_or_borrow<'a>(
12743            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12744        ) -> Self::Borrowed<'a> {
12745            value
12746        }
12747    }
12748
12749    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveOpenEventsRequest {
12750        type Owned = Self;
12751
12752        #[inline(always)]
12753        fn inline_align(_context: fidl::encoding::Context) -> usize {
12754            4
12755        }
12756
12757        #[inline(always)]
12758        fn inline_size(_context: fidl::encoding::Context) -> usize {
12759            8
12760        }
12761    }
12762
12763    unsafe impl
12764        fidl::encoding::Encode<
12765            RunnerReceiveOpenEventsRequest,
12766            fidl::encoding::DefaultFuchsiaResourceDialect,
12767        > for &mut RunnerReceiveOpenEventsRequest
12768    {
12769        #[inline]
12770        unsafe fn encode(
12771            self,
12772            encoder: &mut fidl::encoding::Encoder<
12773                '_,
12774                fidl::encoding::DefaultFuchsiaResourceDialect,
12775            >,
12776            offset: usize,
12777            _depth: fidl::encoding::Depth,
12778        ) -> fidl::Result<()> {
12779            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
12780            // Delegate to tuple encoding.
12781            fidl::encoding::Encode::<RunnerReceiveOpenEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12782                (
12783                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12784                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12785                ),
12786                encoder, offset, _depth
12787            )
12788        }
12789    }
12790    unsafe impl<
12791            T0: fidl::encoding::Encode<
12792                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12793                fidl::encoding::DefaultFuchsiaResourceDialect,
12794            >,
12795            T1: fidl::encoding::Encode<
12796                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
12797                fidl::encoding::DefaultFuchsiaResourceDialect,
12798            >,
12799        >
12800        fidl::encoding::Encode<
12801            RunnerReceiveOpenEventsRequest,
12802            fidl::encoding::DefaultFuchsiaResourceDialect,
12803        > for (T0, T1)
12804    {
12805        #[inline]
12806        unsafe fn encode(
12807            self,
12808            encoder: &mut fidl::encoding::Encoder<
12809                '_,
12810                fidl::encoding::DefaultFuchsiaResourceDialect,
12811            >,
12812            offset: usize,
12813            depth: fidl::encoding::Depth,
12814        ) -> fidl::Result<()> {
12815            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
12816            // Zero out padding regions. There's no need to apply masks
12817            // because the unmasked parts will be overwritten by fields.
12818            // Write the fields.
12819            self.0.encode(encoder, offset + 0, depth)?;
12820            self.1.encode(encoder, offset + 4, depth)?;
12821            Ok(())
12822        }
12823    }
12824
12825    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12826        for RunnerReceiveOpenEventsRequest
12827    {
12828        #[inline(always)]
12829        fn new_empty() -> Self {
12830            Self {
12831                target: fidl::new_empty!(
12832                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12833                    fidl::encoding::DefaultFuchsiaResourceDialect
12834                ),
12835                reporter: fidl::new_empty!(
12836                    fidl::encoding::Endpoint<
12837                        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
12838                    >,
12839                    fidl::encoding::DefaultFuchsiaResourceDialect
12840                ),
12841            }
12842        }
12843
12844        #[inline]
12845        unsafe fn decode(
12846            &mut self,
12847            decoder: &mut fidl::encoding::Decoder<
12848                '_,
12849                fidl::encoding::DefaultFuchsiaResourceDialect,
12850            >,
12851            offset: usize,
12852            _depth: fidl::encoding::Depth,
12853        ) -> fidl::Result<()> {
12854            decoder.debug_check_bounds::<Self>(offset);
12855            // Verify that padding bytes are zero.
12856            fidl::decode!(
12857                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12858                fidl::encoding::DefaultFuchsiaResourceDialect,
12859                &mut self.target,
12860                decoder,
12861                offset + 0,
12862                _depth
12863            )?;
12864            fidl::decode!(
12865                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
12866                fidl::encoding::DefaultFuchsiaResourceDialect,
12867                &mut self.reporter,
12868                decoder,
12869                offset + 4,
12870                _depth
12871            )?;
12872            Ok(())
12873        }
12874    }
12875}