Skip to main content

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        Self { client: fidl::client::sync::Client::new(channel) }
314    }
315
316    pub fn into_channel(self) -> fidl::Channel {
317        self.client.into_channel()
318    }
319
320    /// Waits until an event arrives and returns it. It is safe for other
321    /// threads to make concurrent requests while waiting for an event.
322    pub fn wait_for_event(
323        &self,
324        deadline: zx::MonotonicInstant,
325    ) -> Result<AjarTargetEvent, fidl::Error> {
326        AjarTargetEvent::decode(self.client.wait_for_event::<AjarTargetMarker>(deadline)?)
327    }
328}
329
330#[cfg(target_os = "fuchsia")]
331impl From<AjarTargetSynchronousProxy> for zx::NullableHandle {
332    fn from(value: AjarTargetSynchronousProxy) -> Self {
333        value.into_channel().into()
334    }
335}
336
337#[cfg(target_os = "fuchsia")]
338impl From<fidl::Channel> for AjarTargetSynchronousProxy {
339    fn from(value: fidl::Channel) -> Self {
340        Self::new(value)
341    }
342}
343
344#[cfg(target_os = "fuchsia")]
345impl fidl::endpoints::FromClient for AjarTargetSynchronousProxy {
346    type Protocol = AjarTargetMarker;
347
348    fn from_client(value: fidl::endpoints::ClientEnd<AjarTargetMarker>) -> Self {
349        Self::new(value.into_channel())
350    }
351}
352
353#[derive(Debug, Clone)]
354pub struct AjarTargetProxy {
355    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
356}
357
358impl fidl::endpoints::Proxy for AjarTargetProxy {
359    type Protocol = AjarTargetMarker;
360
361    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
362        Self::new(inner)
363    }
364
365    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
366        self.client.into_channel().map_err(|client| Self { client })
367    }
368
369    fn as_channel(&self) -> &::fidl::AsyncChannel {
370        self.client.as_channel()
371    }
372}
373
374impl AjarTargetProxy {
375    /// Create a new Proxy for fidl.clientsuite/AjarTarget.
376    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
377        let protocol_name = <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
378        Self { client: fidl::client::Client::new(channel, protocol_name) }
379    }
380
381    /// Get a Stream of events from the remote end of the protocol.
382    ///
383    /// # Panics
384    ///
385    /// Panics if the event stream was already taken.
386    pub fn take_event_stream(&self) -> AjarTargetEventStream {
387        AjarTargetEventStream { event_receiver: self.client.take_event_receiver() }
388    }
389}
390
391impl AjarTargetProxyInterface for AjarTargetProxy {}
392
393pub struct AjarTargetEventStream {
394    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
395}
396
397impl std::marker::Unpin for AjarTargetEventStream {}
398
399impl futures::stream::FusedStream for AjarTargetEventStream {
400    fn is_terminated(&self) -> bool {
401        self.event_receiver.is_terminated()
402    }
403}
404
405impl futures::Stream for AjarTargetEventStream {
406    type Item = Result<AjarTargetEvent, fidl::Error>;
407
408    fn poll_next(
409        mut self: std::pin::Pin<&mut Self>,
410        cx: &mut std::task::Context<'_>,
411    ) -> std::task::Poll<Option<Self::Item>> {
412        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
413            &mut self.event_receiver,
414            cx
415        )?) {
416            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEvent::decode(buf))),
417            None => std::task::Poll::Ready(None),
418        }
419    }
420}
421
422#[derive(Debug)]
423pub enum AjarTargetEvent {
424    #[non_exhaustive]
425    _UnknownEvent {
426        /// Ordinal of the event that was sent.
427        ordinal: u64,
428    },
429}
430
431impl AjarTargetEvent {
432    /// Decodes a message buffer as a [`AjarTargetEvent`].
433    fn decode(
434        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
435    ) -> Result<AjarTargetEvent, fidl::Error> {
436        let (bytes, _handles) = buf.split_mut();
437        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
438        debug_assert_eq!(tx_header.tx_id, 0);
439        match tx_header.ordinal {
440            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
441                Ok(AjarTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
442            }
443            _ => Err(fidl::Error::UnknownOrdinal {
444                ordinal: tx_header.ordinal,
445                protocol_name: <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
446            }),
447        }
448    }
449}
450
451/// A Stream of incoming requests for fidl.clientsuite/AjarTarget.
452pub struct AjarTargetRequestStream {
453    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
454    is_terminated: bool,
455}
456
457impl std::marker::Unpin for AjarTargetRequestStream {}
458
459impl futures::stream::FusedStream for AjarTargetRequestStream {
460    fn is_terminated(&self) -> bool {
461        self.is_terminated
462    }
463}
464
465impl fidl::endpoints::RequestStream for AjarTargetRequestStream {
466    type Protocol = AjarTargetMarker;
467    type ControlHandle = AjarTargetControlHandle;
468
469    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
470        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
471    }
472
473    fn control_handle(&self) -> Self::ControlHandle {
474        AjarTargetControlHandle { inner: self.inner.clone() }
475    }
476
477    fn into_inner(
478        self,
479    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
480    {
481        (self.inner, self.is_terminated)
482    }
483
484    fn from_inner(
485        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
486        is_terminated: bool,
487    ) -> Self {
488        Self { inner, is_terminated }
489    }
490}
491
492impl futures::Stream for AjarTargetRequestStream {
493    type Item = Result<AjarTargetRequest, fidl::Error>;
494
495    fn poll_next(
496        mut self: std::pin::Pin<&mut Self>,
497        cx: &mut std::task::Context<'_>,
498    ) -> std::task::Poll<Option<Self::Item>> {
499        let this = &mut *self;
500        if this.inner.check_shutdown(cx) {
501            this.is_terminated = true;
502            return std::task::Poll::Ready(None);
503        }
504        if this.is_terminated {
505            panic!("polled AjarTargetRequestStream after completion");
506        }
507        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
508            |bytes, handles| {
509                match this.inner.channel().read_etc(cx, bytes, handles) {
510                    std::task::Poll::Ready(Ok(())) => {}
511                    std::task::Poll::Pending => return std::task::Poll::Pending,
512                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
513                        this.is_terminated = true;
514                        return std::task::Poll::Ready(None);
515                    }
516                    std::task::Poll::Ready(Err(e)) => {
517                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
518                            e.into(),
519                        ))));
520                    }
521                }
522
523                // A message has been received from the channel
524                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
525
526                std::task::Poll::Ready(Some(match header.ordinal {
527                    _ if header.tx_id == 0
528                        && header
529                            .dynamic_flags()
530                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
531                    {
532                        Ok(AjarTargetRequest::_UnknownMethod {
533                            ordinal: header.ordinal,
534                            control_handle: AjarTargetControlHandle { inner: this.inner.clone() },
535                        })
536                    }
537                    _ => Err(fidl::Error::UnknownOrdinal {
538                        ordinal: header.ordinal,
539                        protocol_name:
540                            <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
541                    }),
542                }))
543            },
544        )
545    }
546}
547
548#[derive(Debug)]
549pub enum AjarTargetRequest {
550    /// An interaction was received which does not match any known method.
551    #[non_exhaustive]
552    _UnknownMethod {
553        /// Ordinal of the method that was called.
554        ordinal: u64,
555        control_handle: AjarTargetControlHandle,
556    },
557}
558
559impl AjarTargetRequest {
560    /// Name of the method defined in FIDL
561    pub fn method_name(&self) -> &'static str {
562        match *self {
563            AjarTargetRequest::_UnknownMethod { .. } => "unknown one-way method",
564        }
565    }
566}
567
568#[derive(Debug, Clone)]
569pub struct AjarTargetControlHandle {
570    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
571}
572
573impl fidl::endpoints::ControlHandle for AjarTargetControlHandle {
574    fn shutdown(&self) {
575        self.inner.shutdown()
576    }
577
578    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
579        self.inner.shutdown_with_epitaph(status)
580    }
581
582    fn is_closed(&self) -> bool {
583        self.inner.channel().is_closed()
584    }
585    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
586        self.inner.channel().on_closed()
587    }
588
589    #[cfg(target_os = "fuchsia")]
590    fn signal_peer(
591        &self,
592        clear_mask: zx::Signals,
593        set_mask: zx::Signals,
594    ) -> Result<(), zx_status::Status> {
595        use fidl::Peered;
596        self.inner.channel().signal_peer(clear_mask, set_mask)
597    }
598}
599
600impl AjarTargetControlHandle {}
601
602#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
603pub struct AjarTargetEventReporterMarker;
604
605impl fidl::endpoints::ProtocolMarker for AjarTargetEventReporterMarker {
606    type Proxy = AjarTargetEventReporterProxy;
607    type RequestStream = AjarTargetEventReporterRequestStream;
608    #[cfg(target_os = "fuchsia")]
609    type SynchronousProxy = AjarTargetEventReporterSynchronousProxy;
610
611    const DEBUG_NAME: &'static str = "(anonymous) AjarTargetEventReporter";
612}
613
614pub trait AjarTargetEventReporterProxyInterface: Send + Sync {
615    fn r#report_event(&self, payload: &AjarTargetEventReport) -> Result<(), fidl::Error>;
616}
617#[derive(Debug)]
618#[cfg(target_os = "fuchsia")]
619pub struct AjarTargetEventReporterSynchronousProxy {
620    client: fidl::client::sync::Client,
621}
622
623#[cfg(target_os = "fuchsia")]
624impl fidl::endpoints::SynchronousProxy for AjarTargetEventReporterSynchronousProxy {
625    type Proxy = AjarTargetEventReporterProxy;
626    type Protocol = AjarTargetEventReporterMarker;
627
628    fn from_channel(inner: fidl::Channel) -> Self {
629        Self::new(inner)
630    }
631
632    fn into_channel(self) -> fidl::Channel {
633        self.client.into_channel()
634    }
635
636    fn as_channel(&self) -> &fidl::Channel {
637        self.client.as_channel()
638    }
639}
640
641#[cfg(target_os = "fuchsia")]
642impl AjarTargetEventReporterSynchronousProxy {
643    pub fn new(channel: fidl::Channel) -> Self {
644        Self { client: fidl::client::sync::Client::new(channel) }
645    }
646
647    pub fn into_channel(self) -> fidl::Channel {
648        self.client.into_channel()
649    }
650
651    /// Waits until an event arrives and returns it. It is safe for other
652    /// threads to make concurrent requests while waiting for an event.
653    pub fn wait_for_event(
654        &self,
655        deadline: zx::MonotonicInstant,
656    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
657        AjarTargetEventReporterEvent::decode(
658            self.client.wait_for_event::<AjarTargetEventReporterMarker>(deadline)?,
659        )
660    }
661
662    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
663        self.client.send::<AjarTargetEventReport>(
664            payload,
665            0x477b93390be99238,
666            fidl::encoding::DynamicFlags::empty(),
667        )
668    }
669}
670
671#[cfg(target_os = "fuchsia")]
672impl From<AjarTargetEventReporterSynchronousProxy> for zx::NullableHandle {
673    fn from(value: AjarTargetEventReporterSynchronousProxy) -> Self {
674        value.into_channel().into()
675    }
676}
677
678#[cfg(target_os = "fuchsia")]
679impl From<fidl::Channel> for AjarTargetEventReporterSynchronousProxy {
680    fn from(value: fidl::Channel) -> Self {
681        Self::new(value)
682    }
683}
684
685#[cfg(target_os = "fuchsia")]
686impl fidl::endpoints::FromClient for AjarTargetEventReporterSynchronousProxy {
687    type Protocol = AjarTargetEventReporterMarker;
688
689    fn from_client(value: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>) -> Self {
690        Self::new(value.into_channel())
691    }
692}
693
694#[derive(Debug, Clone)]
695pub struct AjarTargetEventReporterProxy {
696    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
697}
698
699impl fidl::endpoints::Proxy for AjarTargetEventReporterProxy {
700    type Protocol = AjarTargetEventReporterMarker;
701
702    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
703        Self::new(inner)
704    }
705
706    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
707        self.client.into_channel().map_err(|client| Self { client })
708    }
709
710    fn as_channel(&self) -> &::fidl::AsyncChannel {
711        self.client.as_channel()
712    }
713}
714
715impl AjarTargetEventReporterProxy {
716    /// Create a new Proxy for fidl.clientsuite/AjarTargetEventReporter.
717    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
718        let protocol_name =
719            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
720        Self { client: fidl::client::Client::new(channel, protocol_name) }
721    }
722
723    /// Get a Stream of events from the remote end of the protocol.
724    ///
725    /// # Panics
726    ///
727    /// Panics if the event stream was already taken.
728    pub fn take_event_stream(&self) -> AjarTargetEventReporterEventStream {
729        AjarTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
730    }
731
732    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
733        AjarTargetEventReporterProxyInterface::r#report_event(self, payload)
734    }
735}
736
737impl AjarTargetEventReporterProxyInterface for AjarTargetEventReporterProxy {
738    fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
739        self.client.send::<AjarTargetEventReport>(
740            payload,
741            0x477b93390be99238,
742            fidl::encoding::DynamicFlags::empty(),
743        )
744    }
745}
746
747pub struct AjarTargetEventReporterEventStream {
748    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
749}
750
751impl std::marker::Unpin for AjarTargetEventReporterEventStream {}
752
753impl futures::stream::FusedStream for AjarTargetEventReporterEventStream {
754    fn is_terminated(&self) -> bool {
755        self.event_receiver.is_terminated()
756    }
757}
758
759impl futures::Stream for AjarTargetEventReporterEventStream {
760    type Item = Result<AjarTargetEventReporterEvent, fidl::Error>;
761
762    fn poll_next(
763        mut self: std::pin::Pin<&mut Self>,
764        cx: &mut std::task::Context<'_>,
765    ) -> std::task::Poll<Option<Self::Item>> {
766        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
767            &mut self.event_receiver,
768            cx
769        )?) {
770            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEventReporterEvent::decode(buf))),
771            None => std::task::Poll::Ready(None),
772        }
773    }
774}
775
776#[derive(Debug)]
777pub enum AjarTargetEventReporterEvent {}
778
779impl AjarTargetEventReporterEvent {
780    /// Decodes a message buffer as a [`AjarTargetEventReporterEvent`].
781    fn decode(
782        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
783    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
784        let (bytes, _handles) = buf.split_mut();
785        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
786        debug_assert_eq!(tx_header.tx_id, 0);
787        match tx_header.ordinal {
788            _ => Err(fidl::Error::UnknownOrdinal {
789                ordinal: tx_header.ordinal,
790                protocol_name:
791                    <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
792            }),
793        }
794    }
795}
796
797/// A Stream of incoming requests for fidl.clientsuite/AjarTargetEventReporter.
798pub struct AjarTargetEventReporterRequestStream {
799    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
800    is_terminated: bool,
801}
802
803impl std::marker::Unpin for AjarTargetEventReporterRequestStream {}
804
805impl futures::stream::FusedStream for AjarTargetEventReporterRequestStream {
806    fn is_terminated(&self) -> bool {
807        self.is_terminated
808    }
809}
810
811impl fidl::endpoints::RequestStream for AjarTargetEventReporterRequestStream {
812    type Protocol = AjarTargetEventReporterMarker;
813    type ControlHandle = AjarTargetEventReporterControlHandle;
814
815    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
816        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
817    }
818
819    fn control_handle(&self) -> Self::ControlHandle {
820        AjarTargetEventReporterControlHandle { inner: self.inner.clone() }
821    }
822
823    fn into_inner(
824        self,
825    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
826    {
827        (self.inner, self.is_terminated)
828    }
829
830    fn from_inner(
831        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
832        is_terminated: bool,
833    ) -> Self {
834        Self { inner, is_terminated }
835    }
836}
837
838impl futures::Stream for AjarTargetEventReporterRequestStream {
839    type Item = Result<AjarTargetEventReporterRequest, fidl::Error>;
840
841    fn poll_next(
842        mut self: std::pin::Pin<&mut Self>,
843        cx: &mut std::task::Context<'_>,
844    ) -> std::task::Poll<Option<Self::Item>> {
845        let this = &mut *self;
846        if this.inner.check_shutdown(cx) {
847            this.is_terminated = true;
848            return std::task::Poll::Ready(None);
849        }
850        if this.is_terminated {
851            panic!("polled AjarTargetEventReporterRequestStream after completion");
852        }
853        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
854            |bytes, handles| {
855                match this.inner.channel().read_etc(cx, bytes, handles) {
856                    std::task::Poll::Ready(Ok(())) => {}
857                    std::task::Poll::Pending => return std::task::Poll::Pending,
858                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
859                        this.is_terminated = true;
860                        return std::task::Poll::Ready(None);
861                    }
862                    std::task::Poll::Ready(Err(e)) => {
863                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
864                            e.into(),
865                        ))));
866                    }
867                }
868
869                // A message has been received from the channel
870                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
871
872                std::task::Poll::Ready(Some(match header.ordinal {
873                0x477b93390be99238 => {
874                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
875                    let mut req = fidl::new_empty!(AjarTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
876                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<AjarTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
877                    let control_handle = AjarTargetEventReporterControlHandle {
878                        inner: this.inner.clone(),
879                    };
880                    Ok(AjarTargetEventReporterRequest::ReportEvent {payload: req,
881                        control_handle,
882                    })
883                }
884                _ => Err(fidl::Error::UnknownOrdinal {
885                    ordinal: header.ordinal,
886                    protocol_name: <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
887                }),
888            }))
889            },
890        )
891    }
892}
893
894#[derive(Debug)]
895pub enum AjarTargetEventReporterRequest {
896    ReportEvent {
897        payload: AjarTargetEventReport,
898        control_handle: AjarTargetEventReporterControlHandle,
899    },
900}
901
902impl AjarTargetEventReporterRequest {
903    #[allow(irrefutable_let_patterns)]
904    pub fn into_report_event(
905        self,
906    ) -> Option<(AjarTargetEventReport, AjarTargetEventReporterControlHandle)> {
907        if let AjarTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
908            Some((payload, control_handle))
909        } else {
910            None
911        }
912    }
913
914    /// Name of the method defined in FIDL
915    pub fn method_name(&self) -> &'static str {
916        match *self {
917            AjarTargetEventReporterRequest::ReportEvent { .. } => "report_event",
918        }
919    }
920}
921
922#[derive(Debug, Clone)]
923pub struct AjarTargetEventReporterControlHandle {
924    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
925}
926
927impl fidl::endpoints::ControlHandle for AjarTargetEventReporterControlHandle {
928    fn shutdown(&self) {
929        self.inner.shutdown()
930    }
931
932    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
933        self.inner.shutdown_with_epitaph(status)
934    }
935
936    fn is_closed(&self) -> bool {
937        self.inner.channel().is_closed()
938    }
939    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
940        self.inner.channel().on_closed()
941    }
942
943    #[cfg(target_os = "fuchsia")]
944    fn signal_peer(
945        &self,
946        clear_mask: zx::Signals,
947        set_mask: zx::Signals,
948    ) -> Result<(), zx_status::Status> {
949        use fidl::Peered;
950        self.inner.channel().signal_peer(clear_mask, set_mask)
951    }
952}
953
954impl AjarTargetEventReporterControlHandle {}
955
956#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
957pub struct ClosedTargetMarker;
958
959impl fidl::endpoints::ProtocolMarker for ClosedTargetMarker {
960    type Proxy = ClosedTargetProxy;
961    type RequestStream = ClosedTargetRequestStream;
962    #[cfg(target_os = "fuchsia")]
963    type SynchronousProxy = ClosedTargetSynchronousProxy;
964
965    const DEBUG_NAME: &'static str = "(anonymous) ClosedTarget";
966}
967pub type ClosedTargetTwoWayStructPayloadErrResult = Result<i32, i32>;
968
969pub trait ClosedTargetProxyInterface: Send + Sync {
970    type TwoWayNoPayloadResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
971    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut;
972    type TwoWayStructPayloadResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
973        + Send;
974    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut;
975    type TwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TablePayload, fidl::Error>>
976        + Send;
977    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut;
978    type TwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionPayload, fidl::Error>>
979        + Send;
980    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut;
981    type TwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error>>
982        + Send;
983    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut;
984    type TwoWayStructRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
985        + Send;
986    fn r#two_way_struct_request(&self, some_field: i32) -> Self::TwoWayStructRequestResponseFut;
987    type TwoWayTableRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
988    fn r#two_way_table_request(
989        &self,
990        payload: &TablePayload,
991    ) -> Self::TwoWayTableRequestResponseFut;
992    type TwoWayUnionRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
993    fn r#two_way_union_request(
994        &self,
995        payload: &UnionPayload,
996    ) -> Self::TwoWayUnionRequestResponseFut;
997    fn r#one_way_no_request(&self) -> Result<(), fidl::Error>;
998    fn r#one_way_struct_request(&self, some_field: i32) -> Result<(), fidl::Error>;
999    fn r#one_way_table_request(&self, payload: &TablePayload) -> Result<(), fidl::Error>;
1000    fn r#one_way_union_request(&self, payload: &UnionPayload) -> Result<(), fidl::Error>;
1001}
1002#[derive(Debug)]
1003#[cfg(target_os = "fuchsia")]
1004pub struct ClosedTargetSynchronousProxy {
1005    client: fidl::client::sync::Client,
1006}
1007
1008#[cfg(target_os = "fuchsia")]
1009impl fidl::endpoints::SynchronousProxy for ClosedTargetSynchronousProxy {
1010    type Proxy = ClosedTargetProxy;
1011    type Protocol = ClosedTargetMarker;
1012
1013    fn from_channel(inner: fidl::Channel) -> Self {
1014        Self::new(inner)
1015    }
1016
1017    fn into_channel(self) -> fidl::Channel {
1018        self.client.into_channel()
1019    }
1020
1021    fn as_channel(&self) -> &fidl::Channel {
1022        self.client.as_channel()
1023    }
1024}
1025
1026#[cfg(target_os = "fuchsia")]
1027impl ClosedTargetSynchronousProxy {
1028    pub fn new(channel: fidl::Channel) -> Self {
1029        Self { client: fidl::client::sync::Client::new(channel) }
1030    }
1031
1032    pub fn into_channel(self) -> fidl::Channel {
1033        self.client.into_channel()
1034    }
1035
1036    /// Waits until an event arrives and returns it. It is safe for other
1037    /// threads to make concurrent requests while waiting for an event.
1038    pub fn wait_for_event(
1039        &self,
1040        deadline: zx::MonotonicInstant,
1041    ) -> Result<ClosedTargetEvent, fidl::Error> {
1042        ClosedTargetEvent::decode(self.client.wait_for_event::<ClosedTargetMarker>(deadline)?)
1043    }
1044
1045    pub fn r#two_way_no_payload(
1046        &self,
1047        ___deadline: zx::MonotonicInstant,
1048    ) -> Result<(), fidl::Error> {
1049        let _response = self.client.send_query::<
1050            fidl::encoding::EmptyPayload,
1051            fidl::encoding::EmptyPayload,
1052            ClosedTargetMarker,
1053        >(
1054            (),
1055            0x7a722961424c1720,
1056            fidl::encoding::DynamicFlags::empty(),
1057            ___deadline,
1058        )?;
1059        Ok(_response)
1060    }
1061
1062    pub fn r#two_way_struct_payload(
1063        &self,
1064        ___deadline: zx::MonotonicInstant,
1065    ) -> Result<i32, fidl::Error> {
1066        let _response = self
1067            .client
1068            .send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload, ClosedTargetMarker>(
1069                (),
1070                0x3a402118bad781bd,
1071                fidl::encoding::DynamicFlags::empty(),
1072                ___deadline,
1073            )?;
1074        Ok(_response.some_field)
1075    }
1076
1077    pub fn r#two_way_table_payload(
1078        &self,
1079        ___deadline: zx::MonotonicInstant,
1080    ) -> Result<TablePayload, fidl::Error> {
1081        let _response = self
1082            .client
1083            .send_query::<fidl::encoding::EmptyPayload, TablePayload, ClosedTargetMarker>(
1084                (),
1085                0x53be101c241c66bc,
1086                fidl::encoding::DynamicFlags::empty(),
1087                ___deadline,
1088            )?;
1089        Ok(_response)
1090    }
1091
1092    pub fn r#two_way_union_payload(
1093        &self,
1094        ___deadline: zx::MonotonicInstant,
1095    ) -> Result<UnionPayload, fidl::Error> {
1096        let _response = self
1097            .client
1098            .send_query::<fidl::encoding::EmptyPayload, UnionPayload, ClosedTargetMarker>(
1099                (),
1100                0x1ff7f745ab608f8c,
1101                fidl::encoding::DynamicFlags::empty(),
1102                ___deadline,
1103            )?;
1104        Ok(_response)
1105    }
1106
1107    pub fn r#two_way_struct_payload_err(
1108        &self,
1109        ___deadline: zx::MonotonicInstant,
1110    ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1111        let _response = self.client.send_query::<
1112            fidl::encoding::EmptyPayload,
1113            fidl::encoding::ResultType<NonEmptyPayload, i32>,
1114            ClosedTargetMarker,
1115        >(
1116            (),
1117            0x62b4861c443bbc0b,
1118            fidl::encoding::DynamicFlags::empty(),
1119            ___deadline,
1120        )?;
1121        Ok(_response.map(|x| x.some_field))
1122    }
1123
1124    pub fn r#two_way_struct_request(
1125        &self,
1126        mut some_field: i32,
1127        ___deadline: zx::MonotonicInstant,
1128    ) -> Result<(), fidl::Error> {
1129        let _response = self
1130            .client
1131            .send_query::<NonEmptyPayload, fidl::encoding::EmptyPayload, ClosedTargetMarker>(
1132                (some_field,),
1133                0x4ff77b4a913be5b6,
1134                fidl::encoding::DynamicFlags::empty(),
1135                ___deadline,
1136            )?;
1137        Ok(_response)
1138    }
1139
1140    pub fn r#two_way_table_request(
1141        &self,
1142        mut payload: &TablePayload,
1143        ___deadline: zx::MonotonicInstant,
1144    ) -> Result<(), fidl::Error> {
1145        let _response = self
1146            .client
1147            .send_query::<TablePayload, fidl::encoding::EmptyPayload, ClosedTargetMarker>(
1148                payload,
1149                0x3d38ad5b0f4f49cf,
1150                fidl::encoding::DynamicFlags::empty(),
1151                ___deadline,
1152            )?;
1153        Ok(_response)
1154    }
1155
1156    pub fn r#two_way_union_request(
1157        &self,
1158        mut payload: &UnionPayload,
1159        ___deadline: zx::MonotonicInstant,
1160    ) -> Result<(), fidl::Error> {
1161        let _response = self
1162            .client
1163            .send_query::<UnionPayload, fidl::encoding::EmptyPayload, ClosedTargetMarker>(
1164                payload,
1165                0x7adb1c265a378e77,
1166                fidl::encoding::DynamicFlags::empty(),
1167                ___deadline,
1168            )?;
1169        Ok(_response)
1170    }
1171
1172    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1173        self.client.send::<fidl::encoding::EmptyPayload>(
1174            (),
1175            0xc376730a2cd8a05,
1176            fidl::encoding::DynamicFlags::empty(),
1177        )
1178    }
1179
1180    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1181        self.client.send::<NonEmptyPayload>(
1182            (some_field,),
1183            0x2618da6f51e0dcd2,
1184            fidl::encoding::DynamicFlags::empty(),
1185        )
1186    }
1187
1188    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1189        self.client.send::<TablePayload>(
1190            payload,
1191            0x1a4b7d32eaed401f,
1192            fidl::encoding::DynamicFlags::empty(),
1193        )
1194    }
1195
1196    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1197        self.client.send::<UnionPayload>(
1198            payload,
1199            0x142b3cd9ea530de5,
1200            fidl::encoding::DynamicFlags::empty(),
1201        )
1202    }
1203}
1204
1205#[cfg(target_os = "fuchsia")]
1206impl From<ClosedTargetSynchronousProxy> for zx::NullableHandle {
1207    fn from(value: ClosedTargetSynchronousProxy) -> Self {
1208        value.into_channel().into()
1209    }
1210}
1211
1212#[cfg(target_os = "fuchsia")]
1213impl From<fidl::Channel> for ClosedTargetSynchronousProxy {
1214    fn from(value: fidl::Channel) -> Self {
1215        Self::new(value)
1216    }
1217}
1218
1219#[cfg(target_os = "fuchsia")]
1220impl fidl::endpoints::FromClient for ClosedTargetSynchronousProxy {
1221    type Protocol = ClosedTargetMarker;
1222
1223    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetMarker>) -> Self {
1224        Self::new(value.into_channel())
1225    }
1226}
1227
1228#[derive(Debug, Clone)]
1229pub struct ClosedTargetProxy {
1230    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1231}
1232
1233impl fidl::endpoints::Proxy for ClosedTargetProxy {
1234    type Protocol = ClosedTargetMarker;
1235
1236    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1237        Self::new(inner)
1238    }
1239
1240    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1241        self.client.into_channel().map_err(|client| Self { client })
1242    }
1243
1244    fn as_channel(&self) -> &::fidl::AsyncChannel {
1245        self.client.as_channel()
1246    }
1247}
1248
1249impl ClosedTargetProxy {
1250    /// Create a new Proxy for fidl.clientsuite/ClosedTarget.
1251    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1252        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1253        Self { client: fidl::client::Client::new(channel, protocol_name) }
1254    }
1255
1256    /// Get a Stream of events from the remote end of the protocol.
1257    ///
1258    /// # Panics
1259    ///
1260    /// Panics if the event stream was already taken.
1261    pub fn take_event_stream(&self) -> ClosedTargetEventStream {
1262        ClosedTargetEventStream { event_receiver: self.client.take_event_receiver() }
1263    }
1264
1265    pub fn r#two_way_no_payload(
1266        &self,
1267    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1268        ClosedTargetProxyInterface::r#two_way_no_payload(self)
1269    }
1270
1271    pub fn r#two_way_struct_payload(
1272        &self,
1273    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
1274        ClosedTargetProxyInterface::r#two_way_struct_payload(self)
1275    }
1276
1277    pub fn r#two_way_table_payload(
1278        &self,
1279    ) -> fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1280    {
1281        ClosedTargetProxyInterface::r#two_way_table_payload(self)
1282    }
1283
1284    pub fn r#two_way_union_payload(
1285        &self,
1286    ) -> fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1287    {
1288        ClosedTargetProxyInterface::r#two_way_union_payload(self)
1289    }
1290
1291    pub fn r#two_way_struct_payload_err(
1292        &self,
1293    ) -> fidl::client::QueryResponseFut<
1294        ClosedTargetTwoWayStructPayloadErrResult,
1295        fidl::encoding::DefaultFuchsiaResourceDialect,
1296    > {
1297        ClosedTargetProxyInterface::r#two_way_struct_payload_err(self)
1298    }
1299
1300    pub fn r#two_way_struct_request(
1301        &self,
1302        mut some_field: i32,
1303    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1304        ClosedTargetProxyInterface::r#two_way_struct_request(self, some_field)
1305    }
1306
1307    pub fn r#two_way_table_request(
1308        &self,
1309        mut payload: &TablePayload,
1310    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1311        ClosedTargetProxyInterface::r#two_way_table_request(self, payload)
1312    }
1313
1314    pub fn r#two_way_union_request(
1315        &self,
1316        mut payload: &UnionPayload,
1317    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1318        ClosedTargetProxyInterface::r#two_way_union_request(self, payload)
1319    }
1320
1321    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1322        ClosedTargetProxyInterface::r#one_way_no_request(self)
1323    }
1324
1325    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1326        ClosedTargetProxyInterface::r#one_way_struct_request(self, some_field)
1327    }
1328
1329    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1330        ClosedTargetProxyInterface::r#one_way_table_request(self, payload)
1331    }
1332
1333    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1334        ClosedTargetProxyInterface::r#one_way_union_request(self, payload)
1335    }
1336}
1337
1338impl ClosedTargetProxyInterface for ClosedTargetProxy {
1339    type TwoWayNoPayloadResponseFut =
1340        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1341    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut {
1342        fn _decode(
1343            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1344        ) -> Result<(), fidl::Error> {
1345            let _response = fidl::client::decode_transaction_body::<
1346                fidl::encoding::EmptyPayload,
1347                fidl::encoding::DefaultFuchsiaResourceDialect,
1348                0x7a722961424c1720,
1349            >(_buf?)?;
1350            Ok(_response)
1351        }
1352        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
1353            (),
1354            0x7a722961424c1720,
1355            fidl::encoding::DynamicFlags::empty(),
1356            _decode,
1357        )
1358    }
1359
1360    type TwoWayStructPayloadResponseFut =
1361        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
1362    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut {
1363        fn _decode(
1364            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1365        ) -> Result<i32, fidl::Error> {
1366            let _response = fidl::client::decode_transaction_body::<
1367                NonEmptyPayload,
1368                fidl::encoding::DefaultFuchsiaResourceDialect,
1369                0x3a402118bad781bd,
1370            >(_buf?)?;
1371            Ok(_response.some_field)
1372        }
1373        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
1374            (),
1375            0x3a402118bad781bd,
1376            fidl::encoding::DynamicFlags::empty(),
1377            _decode,
1378        )
1379    }
1380
1381    type TwoWayTablePayloadResponseFut =
1382        fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1383    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut {
1384        fn _decode(
1385            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1386        ) -> Result<TablePayload, fidl::Error> {
1387            let _response = fidl::client::decode_transaction_body::<
1388                TablePayload,
1389                fidl::encoding::DefaultFuchsiaResourceDialect,
1390                0x53be101c241c66bc,
1391            >(_buf?)?;
1392            Ok(_response)
1393        }
1394        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, TablePayload>(
1395            (),
1396            0x53be101c241c66bc,
1397            fidl::encoding::DynamicFlags::empty(),
1398            _decode,
1399        )
1400    }
1401
1402    type TwoWayUnionPayloadResponseFut =
1403        fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1404    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut {
1405        fn _decode(
1406            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1407        ) -> Result<UnionPayload, fidl::Error> {
1408            let _response = fidl::client::decode_transaction_body::<
1409                UnionPayload,
1410                fidl::encoding::DefaultFuchsiaResourceDialect,
1411                0x1ff7f745ab608f8c,
1412            >(_buf?)?;
1413            Ok(_response)
1414        }
1415        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, UnionPayload>(
1416            (),
1417            0x1ff7f745ab608f8c,
1418            fidl::encoding::DynamicFlags::empty(),
1419            _decode,
1420        )
1421    }
1422
1423    type TwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
1424        ClosedTargetTwoWayStructPayloadErrResult,
1425        fidl::encoding::DefaultFuchsiaResourceDialect,
1426    >;
1427    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut {
1428        fn _decode(
1429            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1430        ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1431            let _response = fidl::client::decode_transaction_body::<
1432                fidl::encoding::ResultType<NonEmptyPayload, i32>,
1433                fidl::encoding::DefaultFuchsiaResourceDialect,
1434                0x62b4861c443bbc0b,
1435            >(_buf?)?;
1436            Ok(_response.map(|x| x.some_field))
1437        }
1438        self.client.send_query_and_decode::<
1439            fidl::encoding::EmptyPayload,
1440            ClosedTargetTwoWayStructPayloadErrResult,
1441        >(
1442            (),
1443            0x62b4861c443bbc0b,
1444            fidl::encoding::DynamicFlags::empty(),
1445            _decode,
1446        )
1447    }
1448
1449    type TwoWayStructRequestResponseFut =
1450        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1451    fn r#two_way_struct_request(
1452        &self,
1453        mut some_field: i32,
1454    ) -> Self::TwoWayStructRequestResponseFut {
1455        fn _decode(
1456            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1457        ) -> Result<(), fidl::Error> {
1458            let _response = fidl::client::decode_transaction_body::<
1459                fidl::encoding::EmptyPayload,
1460                fidl::encoding::DefaultFuchsiaResourceDialect,
1461                0x4ff77b4a913be5b6,
1462            >(_buf?)?;
1463            Ok(_response)
1464        }
1465        self.client.send_query_and_decode::<NonEmptyPayload, ()>(
1466            (some_field,),
1467            0x4ff77b4a913be5b6,
1468            fidl::encoding::DynamicFlags::empty(),
1469            _decode,
1470        )
1471    }
1472
1473    type TwoWayTableRequestResponseFut =
1474        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1475    fn r#two_way_table_request(
1476        &self,
1477        mut payload: &TablePayload,
1478    ) -> Self::TwoWayTableRequestResponseFut {
1479        fn _decode(
1480            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1481        ) -> Result<(), fidl::Error> {
1482            let _response = fidl::client::decode_transaction_body::<
1483                fidl::encoding::EmptyPayload,
1484                fidl::encoding::DefaultFuchsiaResourceDialect,
1485                0x3d38ad5b0f4f49cf,
1486            >(_buf?)?;
1487            Ok(_response)
1488        }
1489        self.client.send_query_and_decode::<TablePayload, ()>(
1490            payload,
1491            0x3d38ad5b0f4f49cf,
1492            fidl::encoding::DynamicFlags::empty(),
1493            _decode,
1494        )
1495    }
1496
1497    type TwoWayUnionRequestResponseFut =
1498        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1499    fn r#two_way_union_request(
1500        &self,
1501        mut payload: &UnionPayload,
1502    ) -> Self::TwoWayUnionRequestResponseFut {
1503        fn _decode(
1504            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1505        ) -> Result<(), fidl::Error> {
1506            let _response = fidl::client::decode_transaction_body::<
1507                fidl::encoding::EmptyPayload,
1508                fidl::encoding::DefaultFuchsiaResourceDialect,
1509                0x7adb1c265a378e77,
1510            >(_buf?)?;
1511            Ok(_response)
1512        }
1513        self.client.send_query_and_decode::<UnionPayload, ()>(
1514            payload,
1515            0x7adb1c265a378e77,
1516            fidl::encoding::DynamicFlags::empty(),
1517            _decode,
1518        )
1519    }
1520
1521    fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1522        self.client.send::<fidl::encoding::EmptyPayload>(
1523            (),
1524            0xc376730a2cd8a05,
1525            fidl::encoding::DynamicFlags::empty(),
1526        )
1527    }
1528
1529    fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1530        self.client.send::<NonEmptyPayload>(
1531            (some_field,),
1532            0x2618da6f51e0dcd2,
1533            fidl::encoding::DynamicFlags::empty(),
1534        )
1535    }
1536
1537    fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1538        self.client.send::<TablePayload>(
1539            payload,
1540            0x1a4b7d32eaed401f,
1541            fidl::encoding::DynamicFlags::empty(),
1542        )
1543    }
1544
1545    fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1546        self.client.send::<UnionPayload>(
1547            payload,
1548            0x142b3cd9ea530de5,
1549            fidl::encoding::DynamicFlags::empty(),
1550        )
1551    }
1552}
1553
1554pub struct ClosedTargetEventStream {
1555    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1556}
1557
1558impl std::marker::Unpin for ClosedTargetEventStream {}
1559
1560impl futures::stream::FusedStream for ClosedTargetEventStream {
1561    fn is_terminated(&self) -> bool {
1562        self.event_receiver.is_terminated()
1563    }
1564}
1565
1566impl futures::Stream for ClosedTargetEventStream {
1567    type Item = Result<ClosedTargetEvent, fidl::Error>;
1568
1569    fn poll_next(
1570        mut self: std::pin::Pin<&mut Self>,
1571        cx: &mut std::task::Context<'_>,
1572    ) -> std::task::Poll<Option<Self::Item>> {
1573        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1574            &mut self.event_receiver,
1575            cx
1576        )?) {
1577            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEvent::decode(buf))),
1578            None => std::task::Poll::Ready(None),
1579        }
1580    }
1581}
1582
1583#[derive(Debug)]
1584pub enum ClosedTargetEvent {
1585    OnEventNoPayload {},
1586    OnEventStructPayload { some_field: i32 },
1587    OnEventTablePayload { payload: TablePayload },
1588    OnEventUnionPayload { payload: UnionPayload },
1589}
1590
1591impl ClosedTargetEvent {
1592    #[allow(irrefutable_let_patterns)]
1593    pub fn into_on_event_no_payload(self) -> Option<()> {
1594        if let ClosedTargetEvent::OnEventNoPayload {} = self { Some(()) } else { None }
1595    }
1596    #[allow(irrefutable_let_patterns)]
1597    pub fn into_on_event_struct_payload(self) -> Option<i32> {
1598        if let ClosedTargetEvent::OnEventStructPayload { some_field } = self {
1599            Some((some_field))
1600        } else {
1601            None
1602        }
1603    }
1604    #[allow(irrefutable_let_patterns)]
1605    pub fn into_on_event_table_payload(self) -> Option<TablePayload> {
1606        if let ClosedTargetEvent::OnEventTablePayload { payload } = self {
1607            Some((payload))
1608        } else {
1609            None
1610        }
1611    }
1612    #[allow(irrefutable_let_patterns)]
1613    pub fn into_on_event_union_payload(self) -> Option<UnionPayload> {
1614        if let ClosedTargetEvent::OnEventUnionPayload { payload } = self {
1615            Some((payload))
1616        } else {
1617            None
1618        }
1619    }
1620
1621    /// Decodes a message buffer as a [`ClosedTargetEvent`].
1622    fn decode(
1623        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1624    ) -> Result<ClosedTargetEvent, fidl::Error> {
1625        let (bytes, _handles) = buf.split_mut();
1626        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1627        debug_assert_eq!(tx_header.tx_id, 0);
1628        match tx_header.ordinal {
1629            0x4ee7b8d3e6bb36a6 => {
1630                let mut out = fidl::new_empty!(
1631                    fidl::encoding::EmptyPayload,
1632                    fidl::encoding::DefaultFuchsiaResourceDialect
1633                );
1634                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1635                Ok((ClosedTargetEvent::OnEventNoPayload {}))
1636            }
1637            0x48e8c897893ae266 => {
1638                let mut out = fidl::new_empty!(
1639                    NonEmptyPayload,
1640                    fidl::encoding::DefaultFuchsiaResourceDialect
1641                );
1642                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1643                Ok((ClosedTargetEvent::OnEventStructPayload { some_field: out.some_field }))
1644            }
1645            0x72837525f4f3e746 => {
1646                let mut out =
1647                    fidl::new_empty!(TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1648                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1649                Ok((ClosedTargetEvent::OnEventTablePayload { payload: out }))
1650            }
1651            0x69c6390e1ac48ea0 => {
1652                let mut out =
1653                    fidl::new_empty!(UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1654                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1655                Ok((ClosedTargetEvent::OnEventUnionPayload { payload: out }))
1656            }
1657            _ => Err(fidl::Error::UnknownOrdinal {
1658                ordinal: tx_header.ordinal,
1659                protocol_name: <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1660            }),
1661        }
1662    }
1663}
1664
1665/// A Stream of incoming requests for fidl.clientsuite/ClosedTarget.
1666pub struct ClosedTargetRequestStream {
1667    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1668    is_terminated: bool,
1669}
1670
1671impl std::marker::Unpin for ClosedTargetRequestStream {}
1672
1673impl futures::stream::FusedStream for ClosedTargetRequestStream {
1674    fn is_terminated(&self) -> bool {
1675        self.is_terminated
1676    }
1677}
1678
1679impl fidl::endpoints::RequestStream for ClosedTargetRequestStream {
1680    type Protocol = ClosedTargetMarker;
1681    type ControlHandle = ClosedTargetControlHandle;
1682
1683    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1684        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1685    }
1686
1687    fn control_handle(&self) -> Self::ControlHandle {
1688        ClosedTargetControlHandle { inner: self.inner.clone() }
1689    }
1690
1691    fn into_inner(
1692        self,
1693    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1694    {
1695        (self.inner, self.is_terminated)
1696    }
1697
1698    fn from_inner(
1699        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1700        is_terminated: bool,
1701    ) -> Self {
1702        Self { inner, is_terminated }
1703    }
1704}
1705
1706impl futures::Stream for ClosedTargetRequestStream {
1707    type Item = Result<ClosedTargetRequest, fidl::Error>;
1708
1709    fn poll_next(
1710        mut self: std::pin::Pin<&mut Self>,
1711        cx: &mut std::task::Context<'_>,
1712    ) -> std::task::Poll<Option<Self::Item>> {
1713        let this = &mut *self;
1714        if this.inner.check_shutdown(cx) {
1715            this.is_terminated = true;
1716            return std::task::Poll::Ready(None);
1717        }
1718        if this.is_terminated {
1719            panic!("polled ClosedTargetRequestStream after completion");
1720        }
1721        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1722            |bytes, handles| {
1723                match this.inner.channel().read_etc(cx, bytes, handles) {
1724                    std::task::Poll::Ready(Ok(())) => {}
1725                    std::task::Poll::Pending => return std::task::Poll::Pending,
1726                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1727                        this.is_terminated = true;
1728                        return std::task::Poll::Ready(None);
1729                    }
1730                    std::task::Poll::Ready(Err(e)) => {
1731                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1732                            e.into(),
1733                        ))));
1734                    }
1735                }
1736
1737                // A message has been received from the channel
1738                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1739
1740                std::task::Poll::Ready(Some(match header.ordinal {
1741                    0x7a722961424c1720 => {
1742                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1743                        let mut req = fidl::new_empty!(
1744                            fidl::encoding::EmptyPayload,
1745                            fidl::encoding::DefaultFuchsiaResourceDialect
1746                        );
1747                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1748                        let control_handle =
1749                            ClosedTargetControlHandle { inner: this.inner.clone() };
1750                        Ok(ClosedTargetRequest::TwoWayNoPayload {
1751                            responder: ClosedTargetTwoWayNoPayloadResponder {
1752                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1753                                tx_id: header.tx_id,
1754                            },
1755                        })
1756                    }
1757                    0x3a402118bad781bd => {
1758                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1759                        let mut req = fidl::new_empty!(
1760                            fidl::encoding::EmptyPayload,
1761                            fidl::encoding::DefaultFuchsiaResourceDialect
1762                        );
1763                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1764                        let control_handle =
1765                            ClosedTargetControlHandle { inner: this.inner.clone() };
1766                        Ok(ClosedTargetRequest::TwoWayStructPayload {
1767                            responder: ClosedTargetTwoWayStructPayloadResponder {
1768                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1769                                tx_id: header.tx_id,
1770                            },
1771                        })
1772                    }
1773                    0x53be101c241c66bc => {
1774                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1775                        let mut req = fidl::new_empty!(
1776                            fidl::encoding::EmptyPayload,
1777                            fidl::encoding::DefaultFuchsiaResourceDialect
1778                        );
1779                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1780                        let control_handle =
1781                            ClosedTargetControlHandle { inner: this.inner.clone() };
1782                        Ok(ClosedTargetRequest::TwoWayTablePayload {
1783                            responder: ClosedTargetTwoWayTablePayloadResponder {
1784                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1785                                tx_id: header.tx_id,
1786                            },
1787                        })
1788                    }
1789                    0x1ff7f745ab608f8c => {
1790                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1791                        let mut req = fidl::new_empty!(
1792                            fidl::encoding::EmptyPayload,
1793                            fidl::encoding::DefaultFuchsiaResourceDialect
1794                        );
1795                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1796                        let control_handle =
1797                            ClosedTargetControlHandle { inner: this.inner.clone() };
1798                        Ok(ClosedTargetRequest::TwoWayUnionPayload {
1799                            responder: ClosedTargetTwoWayUnionPayloadResponder {
1800                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1801                                tx_id: header.tx_id,
1802                            },
1803                        })
1804                    }
1805                    0x62b4861c443bbc0b => {
1806                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1807                        let mut req = fidl::new_empty!(
1808                            fidl::encoding::EmptyPayload,
1809                            fidl::encoding::DefaultFuchsiaResourceDialect
1810                        );
1811                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1812                        let control_handle =
1813                            ClosedTargetControlHandle { inner: this.inner.clone() };
1814                        Ok(ClosedTargetRequest::TwoWayStructPayloadErr {
1815                            responder: ClosedTargetTwoWayStructPayloadErrResponder {
1816                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1817                                tx_id: header.tx_id,
1818                            },
1819                        })
1820                    }
1821                    0x4ff77b4a913be5b6 => {
1822                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1823                        let mut req = fidl::new_empty!(
1824                            NonEmptyPayload,
1825                            fidl::encoding::DefaultFuchsiaResourceDialect
1826                        );
1827                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1828                        let control_handle =
1829                            ClosedTargetControlHandle { inner: this.inner.clone() };
1830                        Ok(ClosedTargetRequest::TwoWayStructRequest {
1831                            some_field: req.some_field,
1832
1833                            responder: ClosedTargetTwoWayStructRequestResponder {
1834                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1835                                tx_id: header.tx_id,
1836                            },
1837                        })
1838                    }
1839                    0x3d38ad5b0f4f49cf => {
1840                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1841                        let mut req = fidl::new_empty!(
1842                            TablePayload,
1843                            fidl::encoding::DefaultFuchsiaResourceDialect
1844                        );
1845                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1846                        let control_handle =
1847                            ClosedTargetControlHandle { inner: this.inner.clone() };
1848                        Ok(ClosedTargetRequest::TwoWayTableRequest {
1849                            payload: req,
1850                            responder: ClosedTargetTwoWayTableRequestResponder {
1851                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1852                                tx_id: header.tx_id,
1853                            },
1854                        })
1855                    }
1856                    0x7adb1c265a378e77 => {
1857                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1858                        let mut req = fidl::new_empty!(
1859                            UnionPayload,
1860                            fidl::encoding::DefaultFuchsiaResourceDialect
1861                        );
1862                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1863                        let control_handle =
1864                            ClosedTargetControlHandle { inner: this.inner.clone() };
1865                        Ok(ClosedTargetRequest::TwoWayUnionRequest {
1866                            payload: req,
1867                            responder: ClosedTargetTwoWayUnionRequestResponder {
1868                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1869                                tx_id: header.tx_id,
1870                            },
1871                        })
1872                    }
1873                    0xc376730a2cd8a05 => {
1874                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1875                        let mut req = fidl::new_empty!(
1876                            fidl::encoding::EmptyPayload,
1877                            fidl::encoding::DefaultFuchsiaResourceDialect
1878                        );
1879                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1880                        let control_handle =
1881                            ClosedTargetControlHandle { inner: this.inner.clone() };
1882                        Ok(ClosedTargetRequest::OneWayNoRequest { control_handle })
1883                    }
1884                    0x2618da6f51e0dcd2 => {
1885                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1886                        let mut req = fidl::new_empty!(
1887                            NonEmptyPayload,
1888                            fidl::encoding::DefaultFuchsiaResourceDialect
1889                        );
1890                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1891                        let control_handle =
1892                            ClosedTargetControlHandle { inner: this.inner.clone() };
1893                        Ok(ClosedTargetRequest::OneWayStructRequest {
1894                            some_field: req.some_field,
1895
1896                            control_handle,
1897                        })
1898                    }
1899                    0x1a4b7d32eaed401f => {
1900                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1901                        let mut req = fidl::new_empty!(
1902                            TablePayload,
1903                            fidl::encoding::DefaultFuchsiaResourceDialect
1904                        );
1905                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1906                        let control_handle =
1907                            ClosedTargetControlHandle { inner: this.inner.clone() };
1908                        Ok(ClosedTargetRequest::OneWayTableRequest { payload: req, control_handle })
1909                    }
1910                    0x142b3cd9ea530de5 => {
1911                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1912                        let mut req = fidl::new_empty!(
1913                            UnionPayload,
1914                            fidl::encoding::DefaultFuchsiaResourceDialect
1915                        );
1916                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1917                        let control_handle =
1918                            ClosedTargetControlHandle { inner: this.inner.clone() };
1919                        Ok(ClosedTargetRequest::OneWayUnionRequest { payload: req, control_handle })
1920                    }
1921                    _ => Err(fidl::Error::UnknownOrdinal {
1922                        ordinal: header.ordinal,
1923                        protocol_name:
1924                            <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1925                    }),
1926                }))
1927            },
1928        )
1929    }
1930}
1931
1932#[derive(Debug)]
1933pub enum ClosedTargetRequest {
1934    TwoWayNoPayload { responder: ClosedTargetTwoWayNoPayloadResponder },
1935    TwoWayStructPayload { responder: ClosedTargetTwoWayStructPayloadResponder },
1936    TwoWayTablePayload { responder: ClosedTargetTwoWayTablePayloadResponder },
1937    TwoWayUnionPayload { responder: ClosedTargetTwoWayUnionPayloadResponder },
1938    TwoWayStructPayloadErr { responder: ClosedTargetTwoWayStructPayloadErrResponder },
1939    TwoWayStructRequest { some_field: i32, responder: ClosedTargetTwoWayStructRequestResponder },
1940    TwoWayTableRequest { payload: TablePayload, responder: ClosedTargetTwoWayTableRequestResponder },
1941    TwoWayUnionRequest { payload: UnionPayload, responder: ClosedTargetTwoWayUnionRequestResponder },
1942    OneWayNoRequest { control_handle: ClosedTargetControlHandle },
1943    OneWayStructRequest { some_field: i32, control_handle: ClosedTargetControlHandle },
1944    OneWayTableRequest { payload: TablePayload, control_handle: ClosedTargetControlHandle },
1945    OneWayUnionRequest { payload: UnionPayload, control_handle: ClosedTargetControlHandle },
1946}
1947
1948impl ClosedTargetRequest {
1949    #[allow(irrefutable_let_patterns)]
1950    pub fn into_two_way_no_payload(self) -> Option<(ClosedTargetTwoWayNoPayloadResponder)> {
1951        if let ClosedTargetRequest::TwoWayNoPayload { responder } = self {
1952            Some((responder))
1953        } else {
1954            None
1955        }
1956    }
1957
1958    #[allow(irrefutable_let_patterns)]
1959    pub fn into_two_way_struct_payload(self) -> Option<(ClosedTargetTwoWayStructPayloadResponder)> {
1960        if let ClosedTargetRequest::TwoWayStructPayload { responder } = self {
1961            Some((responder))
1962        } else {
1963            None
1964        }
1965    }
1966
1967    #[allow(irrefutable_let_patterns)]
1968    pub fn into_two_way_table_payload(self) -> Option<(ClosedTargetTwoWayTablePayloadResponder)> {
1969        if let ClosedTargetRequest::TwoWayTablePayload { responder } = self {
1970            Some((responder))
1971        } else {
1972            None
1973        }
1974    }
1975
1976    #[allow(irrefutable_let_patterns)]
1977    pub fn into_two_way_union_payload(self) -> Option<(ClosedTargetTwoWayUnionPayloadResponder)> {
1978        if let ClosedTargetRequest::TwoWayUnionPayload { responder } = self {
1979            Some((responder))
1980        } else {
1981            None
1982        }
1983    }
1984
1985    #[allow(irrefutable_let_patterns)]
1986    pub fn into_two_way_struct_payload_err(
1987        self,
1988    ) -> Option<(ClosedTargetTwoWayStructPayloadErrResponder)> {
1989        if let ClosedTargetRequest::TwoWayStructPayloadErr { responder } = self {
1990            Some((responder))
1991        } else {
1992            None
1993        }
1994    }
1995
1996    #[allow(irrefutable_let_patterns)]
1997    pub fn into_two_way_struct_request(
1998        self,
1999    ) -> Option<(i32, ClosedTargetTwoWayStructRequestResponder)> {
2000        if let ClosedTargetRequest::TwoWayStructRequest { some_field, responder } = self {
2001            Some((some_field, responder))
2002        } else {
2003            None
2004        }
2005    }
2006
2007    #[allow(irrefutable_let_patterns)]
2008    pub fn into_two_way_table_request(
2009        self,
2010    ) -> Option<(TablePayload, ClosedTargetTwoWayTableRequestResponder)> {
2011        if let ClosedTargetRequest::TwoWayTableRequest { payload, responder } = self {
2012            Some((payload, responder))
2013        } else {
2014            None
2015        }
2016    }
2017
2018    #[allow(irrefutable_let_patterns)]
2019    pub fn into_two_way_union_request(
2020        self,
2021    ) -> Option<(UnionPayload, ClosedTargetTwoWayUnionRequestResponder)> {
2022        if let ClosedTargetRequest::TwoWayUnionRequest { payload, responder } = self {
2023            Some((payload, responder))
2024        } else {
2025            None
2026        }
2027    }
2028
2029    #[allow(irrefutable_let_patterns)]
2030    pub fn into_one_way_no_request(self) -> Option<(ClosedTargetControlHandle)> {
2031        if let ClosedTargetRequest::OneWayNoRequest { control_handle } = self {
2032            Some((control_handle))
2033        } else {
2034            None
2035        }
2036    }
2037
2038    #[allow(irrefutable_let_patterns)]
2039    pub fn into_one_way_struct_request(self) -> Option<(i32, ClosedTargetControlHandle)> {
2040        if let ClosedTargetRequest::OneWayStructRequest { some_field, control_handle } = self {
2041            Some((some_field, control_handle))
2042        } else {
2043            None
2044        }
2045    }
2046
2047    #[allow(irrefutable_let_patterns)]
2048    pub fn into_one_way_table_request(self) -> Option<(TablePayload, ClosedTargetControlHandle)> {
2049        if let ClosedTargetRequest::OneWayTableRequest { payload, control_handle } = self {
2050            Some((payload, control_handle))
2051        } else {
2052            None
2053        }
2054    }
2055
2056    #[allow(irrefutable_let_patterns)]
2057    pub fn into_one_way_union_request(self) -> Option<(UnionPayload, ClosedTargetControlHandle)> {
2058        if let ClosedTargetRequest::OneWayUnionRequest { payload, control_handle } = self {
2059            Some((payload, control_handle))
2060        } else {
2061            None
2062        }
2063    }
2064
2065    /// Name of the method defined in FIDL
2066    pub fn method_name(&self) -> &'static str {
2067        match *self {
2068            ClosedTargetRequest::TwoWayNoPayload { .. } => "two_way_no_payload",
2069            ClosedTargetRequest::TwoWayStructPayload { .. } => "two_way_struct_payload",
2070            ClosedTargetRequest::TwoWayTablePayload { .. } => "two_way_table_payload",
2071            ClosedTargetRequest::TwoWayUnionPayload { .. } => "two_way_union_payload",
2072            ClosedTargetRequest::TwoWayStructPayloadErr { .. } => "two_way_struct_payload_err",
2073            ClosedTargetRequest::TwoWayStructRequest { .. } => "two_way_struct_request",
2074            ClosedTargetRequest::TwoWayTableRequest { .. } => "two_way_table_request",
2075            ClosedTargetRequest::TwoWayUnionRequest { .. } => "two_way_union_request",
2076            ClosedTargetRequest::OneWayNoRequest { .. } => "one_way_no_request",
2077            ClosedTargetRequest::OneWayStructRequest { .. } => "one_way_struct_request",
2078            ClosedTargetRequest::OneWayTableRequest { .. } => "one_way_table_request",
2079            ClosedTargetRequest::OneWayUnionRequest { .. } => "one_way_union_request",
2080        }
2081    }
2082}
2083
2084#[derive(Debug, Clone)]
2085pub struct ClosedTargetControlHandle {
2086    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2087}
2088
2089impl fidl::endpoints::ControlHandle for ClosedTargetControlHandle {
2090    fn shutdown(&self) {
2091        self.inner.shutdown()
2092    }
2093
2094    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2095        self.inner.shutdown_with_epitaph(status)
2096    }
2097
2098    fn is_closed(&self) -> bool {
2099        self.inner.channel().is_closed()
2100    }
2101    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2102        self.inner.channel().on_closed()
2103    }
2104
2105    #[cfg(target_os = "fuchsia")]
2106    fn signal_peer(
2107        &self,
2108        clear_mask: zx::Signals,
2109        set_mask: zx::Signals,
2110    ) -> Result<(), zx_status::Status> {
2111        use fidl::Peered;
2112        self.inner.channel().signal_peer(clear_mask, set_mask)
2113    }
2114}
2115
2116impl ClosedTargetControlHandle {
2117    pub fn send_on_event_no_payload(&self) -> Result<(), fidl::Error> {
2118        self.inner.send::<fidl::encoding::EmptyPayload>(
2119            (),
2120            0,
2121            0x4ee7b8d3e6bb36a6,
2122            fidl::encoding::DynamicFlags::empty(),
2123        )
2124    }
2125
2126    pub fn send_on_event_struct_payload(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2127        self.inner.send::<NonEmptyPayload>(
2128            (some_field,),
2129            0,
2130            0x48e8c897893ae266,
2131            fidl::encoding::DynamicFlags::empty(),
2132        )
2133    }
2134
2135    pub fn send_on_event_table_payload(
2136        &self,
2137        mut payload: &TablePayload,
2138    ) -> Result<(), fidl::Error> {
2139        self.inner.send::<TablePayload>(
2140            payload,
2141            0,
2142            0x72837525f4f3e746,
2143            fidl::encoding::DynamicFlags::empty(),
2144        )
2145    }
2146
2147    pub fn send_on_event_union_payload(
2148        &self,
2149        mut payload: &UnionPayload,
2150    ) -> Result<(), fidl::Error> {
2151        self.inner.send::<UnionPayload>(
2152            payload,
2153            0,
2154            0x69c6390e1ac48ea0,
2155            fidl::encoding::DynamicFlags::empty(),
2156        )
2157    }
2158}
2159
2160#[must_use = "FIDL methods require a response to be sent"]
2161#[derive(Debug)]
2162pub struct ClosedTargetTwoWayNoPayloadResponder {
2163    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2164    tx_id: u32,
2165}
2166
2167/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2168/// if the responder is dropped without sending a response, so that the client
2169/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2170impl std::ops::Drop for ClosedTargetTwoWayNoPayloadResponder {
2171    fn drop(&mut self) {
2172        self.control_handle.shutdown();
2173        // Safety: drops once, never accessed again
2174        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2175    }
2176}
2177
2178impl fidl::endpoints::Responder for ClosedTargetTwoWayNoPayloadResponder {
2179    type ControlHandle = ClosedTargetControlHandle;
2180
2181    fn control_handle(&self) -> &ClosedTargetControlHandle {
2182        &self.control_handle
2183    }
2184
2185    fn drop_without_shutdown(mut self) {
2186        // Safety: drops once, never accessed again due to mem::forget
2187        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2188        // Prevent Drop from running (which would shut down the channel)
2189        std::mem::forget(self);
2190    }
2191}
2192
2193impl ClosedTargetTwoWayNoPayloadResponder {
2194    /// Sends a response to the FIDL transaction.
2195    ///
2196    /// Sets the channel to shutdown if an error occurs.
2197    pub fn send(self) -> Result<(), fidl::Error> {
2198        let _result = self.send_raw();
2199        if _result.is_err() {
2200            self.control_handle.shutdown();
2201        }
2202        self.drop_without_shutdown();
2203        _result
2204    }
2205
2206    /// Similar to "send" but does not shutdown the channel if an error occurs.
2207    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2208        let _result = self.send_raw();
2209        self.drop_without_shutdown();
2210        _result
2211    }
2212
2213    fn send_raw(&self) -> Result<(), fidl::Error> {
2214        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2215            (),
2216            self.tx_id,
2217            0x7a722961424c1720,
2218            fidl::encoding::DynamicFlags::empty(),
2219        )
2220    }
2221}
2222
2223#[must_use = "FIDL methods require a response to be sent"]
2224#[derive(Debug)]
2225pub struct ClosedTargetTwoWayStructPayloadResponder {
2226    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2227    tx_id: u32,
2228}
2229
2230/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2231/// if the responder is dropped without sending a response, so that the client
2232/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2233impl std::ops::Drop for ClosedTargetTwoWayStructPayloadResponder {
2234    fn drop(&mut self) {
2235        self.control_handle.shutdown();
2236        // Safety: drops once, never accessed again
2237        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2238    }
2239}
2240
2241impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadResponder {
2242    type ControlHandle = ClosedTargetControlHandle;
2243
2244    fn control_handle(&self) -> &ClosedTargetControlHandle {
2245        &self.control_handle
2246    }
2247
2248    fn drop_without_shutdown(mut self) {
2249        // Safety: drops once, never accessed again due to mem::forget
2250        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2251        // Prevent Drop from running (which would shut down the channel)
2252        std::mem::forget(self);
2253    }
2254}
2255
2256impl ClosedTargetTwoWayStructPayloadResponder {
2257    /// Sends a response to the FIDL transaction.
2258    ///
2259    /// Sets the channel to shutdown if an error occurs.
2260    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
2261        let _result = self.send_raw(some_field);
2262        if _result.is_err() {
2263            self.control_handle.shutdown();
2264        }
2265        self.drop_without_shutdown();
2266        _result
2267    }
2268
2269    /// Similar to "send" but does not shutdown the channel if an error occurs.
2270    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
2271        let _result = self.send_raw(some_field);
2272        self.drop_without_shutdown();
2273        _result
2274    }
2275
2276    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2277        self.control_handle.inner.send::<NonEmptyPayload>(
2278            (some_field,),
2279            self.tx_id,
2280            0x3a402118bad781bd,
2281            fidl::encoding::DynamicFlags::empty(),
2282        )
2283    }
2284}
2285
2286#[must_use = "FIDL methods require a response to be sent"]
2287#[derive(Debug)]
2288pub struct ClosedTargetTwoWayTablePayloadResponder {
2289    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2290    tx_id: u32,
2291}
2292
2293/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2294/// if the responder is dropped without sending a response, so that the client
2295/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2296impl std::ops::Drop for ClosedTargetTwoWayTablePayloadResponder {
2297    fn drop(&mut self) {
2298        self.control_handle.shutdown();
2299        // Safety: drops once, never accessed again
2300        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2301    }
2302}
2303
2304impl fidl::endpoints::Responder for ClosedTargetTwoWayTablePayloadResponder {
2305    type ControlHandle = ClosedTargetControlHandle;
2306
2307    fn control_handle(&self) -> &ClosedTargetControlHandle {
2308        &self.control_handle
2309    }
2310
2311    fn drop_without_shutdown(mut self) {
2312        // Safety: drops once, never accessed again due to mem::forget
2313        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2314        // Prevent Drop from running (which would shut down the channel)
2315        std::mem::forget(self);
2316    }
2317}
2318
2319impl ClosedTargetTwoWayTablePayloadResponder {
2320    /// Sends a response to the FIDL transaction.
2321    ///
2322    /// Sets the channel to shutdown if an error occurs.
2323    pub fn send(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2324        let _result = self.send_raw(payload);
2325        if _result.is_err() {
2326            self.control_handle.shutdown();
2327        }
2328        self.drop_without_shutdown();
2329        _result
2330    }
2331
2332    /// Similar to "send" but does not shutdown the channel if an error occurs.
2333    pub fn send_no_shutdown_on_err(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2334        let _result = self.send_raw(payload);
2335        self.drop_without_shutdown();
2336        _result
2337    }
2338
2339    fn send_raw(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2340        self.control_handle.inner.send::<TablePayload>(
2341            payload,
2342            self.tx_id,
2343            0x53be101c241c66bc,
2344            fidl::encoding::DynamicFlags::empty(),
2345        )
2346    }
2347}
2348
2349#[must_use = "FIDL methods require a response to be sent"]
2350#[derive(Debug)]
2351pub struct ClosedTargetTwoWayUnionPayloadResponder {
2352    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2353    tx_id: u32,
2354}
2355
2356/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2357/// if the responder is dropped without sending a response, so that the client
2358/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2359impl std::ops::Drop for ClosedTargetTwoWayUnionPayloadResponder {
2360    fn drop(&mut self) {
2361        self.control_handle.shutdown();
2362        // Safety: drops once, never accessed again
2363        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2364    }
2365}
2366
2367impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionPayloadResponder {
2368    type ControlHandle = ClosedTargetControlHandle;
2369
2370    fn control_handle(&self) -> &ClosedTargetControlHandle {
2371        &self.control_handle
2372    }
2373
2374    fn drop_without_shutdown(mut self) {
2375        // Safety: drops once, never accessed again due to mem::forget
2376        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2377        // Prevent Drop from running (which would shut down the channel)
2378        std::mem::forget(self);
2379    }
2380}
2381
2382impl ClosedTargetTwoWayUnionPayloadResponder {
2383    /// Sends a response to the FIDL transaction.
2384    ///
2385    /// Sets the channel to shutdown if an error occurs.
2386    pub fn send(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2387        let _result = self.send_raw(payload);
2388        if _result.is_err() {
2389            self.control_handle.shutdown();
2390        }
2391        self.drop_without_shutdown();
2392        _result
2393    }
2394
2395    /// Similar to "send" but does not shutdown the channel if an error occurs.
2396    pub fn send_no_shutdown_on_err(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2397        let _result = self.send_raw(payload);
2398        self.drop_without_shutdown();
2399        _result
2400    }
2401
2402    fn send_raw(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2403        self.control_handle.inner.send::<UnionPayload>(
2404            payload,
2405            self.tx_id,
2406            0x1ff7f745ab608f8c,
2407            fidl::encoding::DynamicFlags::empty(),
2408        )
2409    }
2410}
2411
2412#[must_use = "FIDL methods require a response to be sent"]
2413#[derive(Debug)]
2414pub struct ClosedTargetTwoWayStructPayloadErrResponder {
2415    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2416    tx_id: u32,
2417}
2418
2419/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2420/// if the responder is dropped without sending a response, so that the client
2421/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2422impl std::ops::Drop for ClosedTargetTwoWayStructPayloadErrResponder {
2423    fn drop(&mut self) {
2424        self.control_handle.shutdown();
2425        // Safety: drops once, never accessed again
2426        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2427    }
2428}
2429
2430impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadErrResponder {
2431    type ControlHandle = ClosedTargetControlHandle;
2432
2433    fn control_handle(&self) -> &ClosedTargetControlHandle {
2434        &self.control_handle
2435    }
2436
2437    fn drop_without_shutdown(mut self) {
2438        // Safety: drops once, never accessed again due to mem::forget
2439        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2440        // Prevent Drop from running (which would shut down the channel)
2441        std::mem::forget(self);
2442    }
2443}
2444
2445impl ClosedTargetTwoWayStructPayloadErrResponder {
2446    /// Sends a response to the FIDL transaction.
2447    ///
2448    /// Sets the channel to shutdown if an error occurs.
2449    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2450        let _result = self.send_raw(result);
2451        if _result.is_err() {
2452            self.control_handle.shutdown();
2453        }
2454        self.drop_without_shutdown();
2455        _result
2456    }
2457
2458    /// Similar to "send" but does not shutdown the channel if an error occurs.
2459    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2460        let _result = self.send_raw(result);
2461        self.drop_without_shutdown();
2462        _result
2463    }
2464
2465    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2466        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
2467            result.map(|some_field| (some_field,)),
2468            self.tx_id,
2469            0x62b4861c443bbc0b,
2470            fidl::encoding::DynamicFlags::empty(),
2471        )
2472    }
2473}
2474
2475#[must_use = "FIDL methods require a response to be sent"]
2476#[derive(Debug)]
2477pub struct ClosedTargetTwoWayStructRequestResponder {
2478    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2479    tx_id: u32,
2480}
2481
2482/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2483/// if the responder is dropped without sending a response, so that the client
2484/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2485impl std::ops::Drop for ClosedTargetTwoWayStructRequestResponder {
2486    fn drop(&mut self) {
2487        self.control_handle.shutdown();
2488        // Safety: drops once, never accessed again
2489        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2490    }
2491}
2492
2493impl fidl::endpoints::Responder for ClosedTargetTwoWayStructRequestResponder {
2494    type ControlHandle = ClosedTargetControlHandle;
2495
2496    fn control_handle(&self) -> &ClosedTargetControlHandle {
2497        &self.control_handle
2498    }
2499
2500    fn drop_without_shutdown(mut self) {
2501        // Safety: drops once, never accessed again due to mem::forget
2502        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2503        // Prevent Drop from running (which would shut down the channel)
2504        std::mem::forget(self);
2505    }
2506}
2507
2508impl ClosedTargetTwoWayStructRequestResponder {
2509    /// Sends a response to the FIDL transaction.
2510    ///
2511    /// Sets the channel to shutdown if an error occurs.
2512    pub fn send(self) -> Result<(), fidl::Error> {
2513        let _result = self.send_raw();
2514        if _result.is_err() {
2515            self.control_handle.shutdown();
2516        }
2517        self.drop_without_shutdown();
2518        _result
2519    }
2520
2521    /// Similar to "send" but does not shutdown the channel if an error occurs.
2522    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2523        let _result = self.send_raw();
2524        self.drop_without_shutdown();
2525        _result
2526    }
2527
2528    fn send_raw(&self) -> Result<(), fidl::Error> {
2529        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2530            (),
2531            self.tx_id,
2532            0x4ff77b4a913be5b6,
2533            fidl::encoding::DynamicFlags::empty(),
2534        )
2535    }
2536}
2537
2538#[must_use = "FIDL methods require a response to be sent"]
2539#[derive(Debug)]
2540pub struct ClosedTargetTwoWayTableRequestResponder {
2541    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2542    tx_id: u32,
2543}
2544
2545/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2546/// if the responder is dropped without sending a response, so that the client
2547/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2548impl std::ops::Drop for ClosedTargetTwoWayTableRequestResponder {
2549    fn drop(&mut self) {
2550        self.control_handle.shutdown();
2551        // Safety: drops once, never accessed again
2552        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2553    }
2554}
2555
2556impl fidl::endpoints::Responder for ClosedTargetTwoWayTableRequestResponder {
2557    type ControlHandle = ClosedTargetControlHandle;
2558
2559    fn control_handle(&self) -> &ClosedTargetControlHandle {
2560        &self.control_handle
2561    }
2562
2563    fn drop_without_shutdown(mut self) {
2564        // Safety: drops once, never accessed again due to mem::forget
2565        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2566        // Prevent Drop from running (which would shut down the channel)
2567        std::mem::forget(self);
2568    }
2569}
2570
2571impl ClosedTargetTwoWayTableRequestResponder {
2572    /// Sends a response to the FIDL transaction.
2573    ///
2574    /// Sets the channel to shutdown if an error occurs.
2575    pub fn send(self) -> Result<(), fidl::Error> {
2576        let _result = self.send_raw();
2577        if _result.is_err() {
2578            self.control_handle.shutdown();
2579        }
2580        self.drop_without_shutdown();
2581        _result
2582    }
2583
2584    /// Similar to "send" but does not shutdown the channel if an error occurs.
2585    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2586        let _result = self.send_raw();
2587        self.drop_without_shutdown();
2588        _result
2589    }
2590
2591    fn send_raw(&self) -> Result<(), fidl::Error> {
2592        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2593            (),
2594            self.tx_id,
2595            0x3d38ad5b0f4f49cf,
2596            fidl::encoding::DynamicFlags::empty(),
2597        )
2598    }
2599}
2600
2601#[must_use = "FIDL methods require a response to be sent"]
2602#[derive(Debug)]
2603pub struct ClosedTargetTwoWayUnionRequestResponder {
2604    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2605    tx_id: u32,
2606}
2607
2608/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2609/// if the responder is dropped without sending a response, so that the client
2610/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2611impl std::ops::Drop for ClosedTargetTwoWayUnionRequestResponder {
2612    fn drop(&mut self) {
2613        self.control_handle.shutdown();
2614        // Safety: drops once, never accessed again
2615        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2616    }
2617}
2618
2619impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionRequestResponder {
2620    type ControlHandle = ClosedTargetControlHandle;
2621
2622    fn control_handle(&self) -> &ClosedTargetControlHandle {
2623        &self.control_handle
2624    }
2625
2626    fn drop_without_shutdown(mut self) {
2627        // Safety: drops once, never accessed again due to mem::forget
2628        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2629        // Prevent Drop from running (which would shut down the channel)
2630        std::mem::forget(self);
2631    }
2632}
2633
2634impl ClosedTargetTwoWayUnionRequestResponder {
2635    /// Sends a response to the FIDL transaction.
2636    ///
2637    /// Sets the channel to shutdown if an error occurs.
2638    pub fn send(self) -> Result<(), fidl::Error> {
2639        let _result = self.send_raw();
2640        if _result.is_err() {
2641            self.control_handle.shutdown();
2642        }
2643        self.drop_without_shutdown();
2644        _result
2645    }
2646
2647    /// Similar to "send" but does not shutdown the channel if an error occurs.
2648    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2649        let _result = self.send_raw();
2650        self.drop_without_shutdown();
2651        _result
2652    }
2653
2654    fn send_raw(&self) -> Result<(), fidl::Error> {
2655        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2656            (),
2657            self.tx_id,
2658            0x7adb1c265a378e77,
2659            fidl::encoding::DynamicFlags::empty(),
2660        )
2661    }
2662}
2663
2664#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2665pub struct ClosedTargetEventReporterMarker;
2666
2667impl fidl::endpoints::ProtocolMarker for ClosedTargetEventReporterMarker {
2668    type Proxy = ClosedTargetEventReporterProxy;
2669    type RequestStream = ClosedTargetEventReporterRequestStream;
2670    #[cfg(target_os = "fuchsia")]
2671    type SynchronousProxy = ClosedTargetEventReporterSynchronousProxy;
2672
2673    const DEBUG_NAME: &'static str = "(anonymous) ClosedTargetEventReporter";
2674}
2675
2676pub trait ClosedTargetEventReporterProxyInterface: Send + Sync {
2677    fn r#report_event(&self, payload: &ClosedTargetEventReport) -> Result<(), fidl::Error>;
2678}
2679#[derive(Debug)]
2680#[cfg(target_os = "fuchsia")]
2681pub struct ClosedTargetEventReporterSynchronousProxy {
2682    client: fidl::client::sync::Client,
2683}
2684
2685#[cfg(target_os = "fuchsia")]
2686impl fidl::endpoints::SynchronousProxy for ClosedTargetEventReporterSynchronousProxy {
2687    type Proxy = ClosedTargetEventReporterProxy;
2688    type Protocol = ClosedTargetEventReporterMarker;
2689
2690    fn from_channel(inner: fidl::Channel) -> Self {
2691        Self::new(inner)
2692    }
2693
2694    fn into_channel(self) -> fidl::Channel {
2695        self.client.into_channel()
2696    }
2697
2698    fn as_channel(&self) -> &fidl::Channel {
2699        self.client.as_channel()
2700    }
2701}
2702
2703#[cfg(target_os = "fuchsia")]
2704impl ClosedTargetEventReporterSynchronousProxy {
2705    pub fn new(channel: fidl::Channel) -> Self {
2706        Self { client: fidl::client::sync::Client::new(channel) }
2707    }
2708
2709    pub fn into_channel(self) -> fidl::Channel {
2710        self.client.into_channel()
2711    }
2712
2713    /// Waits until an event arrives and returns it. It is safe for other
2714    /// threads to make concurrent requests while waiting for an event.
2715    pub fn wait_for_event(
2716        &self,
2717        deadline: zx::MonotonicInstant,
2718    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2719        ClosedTargetEventReporterEvent::decode(
2720            self.client.wait_for_event::<ClosedTargetEventReporterMarker>(deadline)?,
2721        )
2722    }
2723
2724    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2725        self.client.send::<ClosedTargetEventReport>(
2726            payload,
2727            0x63890e67649a846e,
2728            fidl::encoding::DynamicFlags::empty(),
2729        )
2730    }
2731}
2732
2733#[cfg(target_os = "fuchsia")]
2734impl From<ClosedTargetEventReporterSynchronousProxy> for zx::NullableHandle {
2735    fn from(value: ClosedTargetEventReporterSynchronousProxy) -> Self {
2736        value.into_channel().into()
2737    }
2738}
2739
2740#[cfg(target_os = "fuchsia")]
2741impl From<fidl::Channel> for ClosedTargetEventReporterSynchronousProxy {
2742    fn from(value: fidl::Channel) -> Self {
2743        Self::new(value)
2744    }
2745}
2746
2747#[cfg(target_os = "fuchsia")]
2748impl fidl::endpoints::FromClient for ClosedTargetEventReporterSynchronousProxy {
2749    type Protocol = ClosedTargetEventReporterMarker;
2750
2751    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>) -> Self {
2752        Self::new(value.into_channel())
2753    }
2754}
2755
2756#[derive(Debug, Clone)]
2757pub struct ClosedTargetEventReporterProxy {
2758    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2759}
2760
2761impl fidl::endpoints::Proxy for ClosedTargetEventReporterProxy {
2762    type Protocol = ClosedTargetEventReporterMarker;
2763
2764    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2765        Self::new(inner)
2766    }
2767
2768    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2769        self.client.into_channel().map_err(|client| Self { client })
2770    }
2771
2772    fn as_channel(&self) -> &::fidl::AsyncChannel {
2773        self.client.as_channel()
2774    }
2775}
2776
2777impl ClosedTargetEventReporterProxy {
2778    /// Create a new Proxy for fidl.clientsuite/ClosedTargetEventReporter.
2779    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2780        let protocol_name =
2781            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2782        Self { client: fidl::client::Client::new(channel, protocol_name) }
2783    }
2784
2785    /// Get a Stream of events from the remote end of the protocol.
2786    ///
2787    /// # Panics
2788    ///
2789    /// Panics if the event stream was already taken.
2790    pub fn take_event_stream(&self) -> ClosedTargetEventReporterEventStream {
2791        ClosedTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
2792    }
2793
2794    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2795        ClosedTargetEventReporterProxyInterface::r#report_event(self, payload)
2796    }
2797}
2798
2799impl ClosedTargetEventReporterProxyInterface for ClosedTargetEventReporterProxy {
2800    fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2801        self.client.send::<ClosedTargetEventReport>(
2802            payload,
2803            0x63890e67649a846e,
2804            fidl::encoding::DynamicFlags::empty(),
2805        )
2806    }
2807}
2808
2809pub struct ClosedTargetEventReporterEventStream {
2810    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2811}
2812
2813impl std::marker::Unpin for ClosedTargetEventReporterEventStream {}
2814
2815impl futures::stream::FusedStream for ClosedTargetEventReporterEventStream {
2816    fn is_terminated(&self) -> bool {
2817        self.event_receiver.is_terminated()
2818    }
2819}
2820
2821impl futures::Stream for ClosedTargetEventReporterEventStream {
2822    type Item = Result<ClosedTargetEventReporterEvent, fidl::Error>;
2823
2824    fn poll_next(
2825        mut self: std::pin::Pin<&mut Self>,
2826        cx: &mut std::task::Context<'_>,
2827    ) -> std::task::Poll<Option<Self::Item>> {
2828        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2829            &mut self.event_receiver,
2830            cx
2831        )?) {
2832            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEventReporterEvent::decode(buf))),
2833            None => std::task::Poll::Ready(None),
2834        }
2835    }
2836}
2837
2838#[derive(Debug)]
2839pub enum ClosedTargetEventReporterEvent {}
2840
2841impl ClosedTargetEventReporterEvent {
2842    /// Decodes a message buffer as a [`ClosedTargetEventReporterEvent`].
2843    fn decode(
2844        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2845    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2846        let (bytes, _handles) = buf.split_mut();
2847        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2848        debug_assert_eq!(tx_header.tx_id, 0);
2849        match tx_header.ordinal {
2850            _ => Err(fidl::Error::UnknownOrdinal {
2851                ordinal: tx_header.ordinal,
2852                protocol_name:
2853                    <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2854            }),
2855        }
2856    }
2857}
2858
2859/// A Stream of incoming requests for fidl.clientsuite/ClosedTargetEventReporter.
2860pub struct ClosedTargetEventReporterRequestStream {
2861    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2862    is_terminated: bool,
2863}
2864
2865impl std::marker::Unpin for ClosedTargetEventReporterRequestStream {}
2866
2867impl futures::stream::FusedStream for ClosedTargetEventReporterRequestStream {
2868    fn is_terminated(&self) -> bool {
2869        self.is_terminated
2870    }
2871}
2872
2873impl fidl::endpoints::RequestStream for ClosedTargetEventReporterRequestStream {
2874    type Protocol = ClosedTargetEventReporterMarker;
2875    type ControlHandle = ClosedTargetEventReporterControlHandle;
2876
2877    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2878        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2879    }
2880
2881    fn control_handle(&self) -> Self::ControlHandle {
2882        ClosedTargetEventReporterControlHandle { inner: self.inner.clone() }
2883    }
2884
2885    fn into_inner(
2886        self,
2887    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2888    {
2889        (self.inner, self.is_terminated)
2890    }
2891
2892    fn from_inner(
2893        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2894        is_terminated: bool,
2895    ) -> Self {
2896        Self { inner, is_terminated }
2897    }
2898}
2899
2900impl futures::Stream for ClosedTargetEventReporterRequestStream {
2901    type Item = Result<ClosedTargetEventReporterRequest, fidl::Error>;
2902
2903    fn poll_next(
2904        mut self: std::pin::Pin<&mut Self>,
2905        cx: &mut std::task::Context<'_>,
2906    ) -> std::task::Poll<Option<Self::Item>> {
2907        let this = &mut *self;
2908        if this.inner.check_shutdown(cx) {
2909            this.is_terminated = true;
2910            return std::task::Poll::Ready(None);
2911        }
2912        if this.is_terminated {
2913            panic!("polled ClosedTargetEventReporterRequestStream after completion");
2914        }
2915        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2916            |bytes, handles| {
2917                match this.inner.channel().read_etc(cx, bytes, handles) {
2918                    std::task::Poll::Ready(Ok(())) => {}
2919                    std::task::Poll::Pending => return std::task::Poll::Pending,
2920                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2921                        this.is_terminated = true;
2922                        return std::task::Poll::Ready(None);
2923                    }
2924                    std::task::Poll::Ready(Err(e)) => {
2925                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2926                            e.into(),
2927                        ))));
2928                    }
2929                }
2930
2931                // A message has been received from the channel
2932                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2933
2934                std::task::Poll::Ready(Some(match header.ordinal {
2935                0x63890e67649a846e => {
2936                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2937                    let mut req = fidl::new_empty!(ClosedTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
2938                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ClosedTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
2939                    let control_handle = ClosedTargetEventReporterControlHandle {
2940                        inner: this.inner.clone(),
2941                    };
2942                    Ok(ClosedTargetEventReporterRequest::ReportEvent {payload: req,
2943                        control_handle,
2944                    })
2945                }
2946                _ => Err(fidl::Error::UnknownOrdinal {
2947                    ordinal: header.ordinal,
2948                    protocol_name: <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2949                }),
2950            }))
2951            },
2952        )
2953    }
2954}
2955
2956#[derive(Debug)]
2957pub enum ClosedTargetEventReporterRequest {
2958    ReportEvent {
2959        payload: ClosedTargetEventReport,
2960        control_handle: ClosedTargetEventReporterControlHandle,
2961    },
2962}
2963
2964impl ClosedTargetEventReporterRequest {
2965    #[allow(irrefutable_let_patterns)]
2966    pub fn into_report_event(
2967        self,
2968    ) -> Option<(ClosedTargetEventReport, ClosedTargetEventReporterControlHandle)> {
2969        if let ClosedTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
2970            Some((payload, control_handle))
2971        } else {
2972            None
2973        }
2974    }
2975
2976    /// Name of the method defined in FIDL
2977    pub fn method_name(&self) -> &'static str {
2978        match *self {
2979            ClosedTargetEventReporterRequest::ReportEvent { .. } => "report_event",
2980        }
2981    }
2982}
2983
2984#[derive(Debug, Clone)]
2985pub struct ClosedTargetEventReporterControlHandle {
2986    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2987}
2988
2989impl fidl::endpoints::ControlHandle for ClosedTargetEventReporterControlHandle {
2990    fn shutdown(&self) {
2991        self.inner.shutdown()
2992    }
2993
2994    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2995        self.inner.shutdown_with_epitaph(status)
2996    }
2997
2998    fn is_closed(&self) -> bool {
2999        self.inner.channel().is_closed()
3000    }
3001    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3002        self.inner.channel().on_closed()
3003    }
3004
3005    #[cfg(target_os = "fuchsia")]
3006    fn signal_peer(
3007        &self,
3008        clear_mask: zx::Signals,
3009        set_mask: zx::Signals,
3010    ) -> Result<(), zx_status::Status> {
3011        use fidl::Peered;
3012        self.inner.channel().signal_peer(clear_mask, set_mask)
3013    }
3014}
3015
3016impl ClosedTargetEventReporterControlHandle {}
3017
3018#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
3019pub struct OpenTargetMarker;
3020
3021impl fidl::endpoints::ProtocolMarker for OpenTargetMarker {
3022    type Proxy = OpenTargetProxy;
3023    type RequestStream = OpenTargetRequestStream;
3024    #[cfg(target_os = "fuchsia")]
3025    type SynchronousProxy = OpenTargetSynchronousProxy;
3026
3027    const DEBUG_NAME: &'static str = "(anonymous) OpenTarget";
3028}
3029pub type OpenTargetStrictTwoWayErrResult = Result<(), i32>;
3030pub type OpenTargetStrictTwoWayFieldsErrResult = Result<i32, i32>;
3031pub type OpenTargetFlexibleTwoWayErrResult = Result<(), i32>;
3032pub type OpenTargetFlexibleTwoWayFieldsErrResult = Result<i32, i32>;
3033
3034pub trait OpenTargetProxyInterface: Send + Sync {
3035    fn r#strict_one_way(&self) -> Result<(), fidl::Error>;
3036    fn r#flexible_one_way(&self) -> Result<(), fidl::Error>;
3037    type StrictTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3038    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut;
3039    type StrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3040        + Send;
3041    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut;
3042    type StrictTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayErrResult, fidl::Error>>
3043        + Send;
3044    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut;
3045    type StrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error>>
3046        + Send;
3047    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut;
3048    type FlexibleTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3049    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut;
3050    type FlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3051        + Send;
3052    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut;
3053    type FlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error>>
3054        + Send;
3055    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut;
3056    type FlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error>>
3057        + Send;
3058    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut;
3059}
3060#[derive(Debug)]
3061#[cfg(target_os = "fuchsia")]
3062pub struct OpenTargetSynchronousProxy {
3063    client: fidl::client::sync::Client,
3064}
3065
3066#[cfg(target_os = "fuchsia")]
3067impl fidl::endpoints::SynchronousProxy for OpenTargetSynchronousProxy {
3068    type Proxy = OpenTargetProxy;
3069    type Protocol = OpenTargetMarker;
3070
3071    fn from_channel(inner: fidl::Channel) -> Self {
3072        Self::new(inner)
3073    }
3074
3075    fn into_channel(self) -> fidl::Channel {
3076        self.client.into_channel()
3077    }
3078
3079    fn as_channel(&self) -> &fidl::Channel {
3080        self.client.as_channel()
3081    }
3082}
3083
3084#[cfg(target_os = "fuchsia")]
3085impl OpenTargetSynchronousProxy {
3086    pub fn new(channel: fidl::Channel) -> Self {
3087        Self { client: fidl::client::sync::Client::new(channel) }
3088    }
3089
3090    pub fn into_channel(self) -> fidl::Channel {
3091        self.client.into_channel()
3092    }
3093
3094    /// Waits until an event arrives and returns it. It is safe for other
3095    /// threads to make concurrent requests while waiting for an event.
3096    pub fn wait_for_event(
3097        &self,
3098        deadline: zx::MonotonicInstant,
3099    ) -> Result<OpenTargetEvent, fidl::Error> {
3100        OpenTargetEvent::decode(self.client.wait_for_event::<OpenTargetMarker>(deadline)?)
3101    }
3102
3103    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3104        self.client.send::<fidl::encoding::EmptyPayload>(
3105            (),
3106            0x6db0bc21c4aae764,
3107            fidl::encoding::DynamicFlags::empty(),
3108        )
3109    }
3110
3111    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3112        self.client.send::<fidl::encoding::EmptyPayload>(
3113            (),
3114            0xf894a7eb9cc29fc,
3115            fidl::encoding::DynamicFlags::FLEXIBLE,
3116        )
3117    }
3118
3119    pub fn r#strict_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3120        let _response = self.client.send_query::<
3121            fidl::encoding::EmptyPayload,
3122            fidl::encoding::EmptyPayload,
3123            OpenTargetMarker,
3124        >(
3125            (),
3126            0xdcf4cef19a1c542,
3127            fidl::encoding::DynamicFlags::empty(),
3128            ___deadline,
3129        )?;
3130        Ok(_response)
3131    }
3132
3133    pub fn r#strict_two_way_fields(
3134        &self,
3135        ___deadline: zx::MonotonicInstant,
3136    ) -> Result<i32, fidl::Error> {
3137        let _response = self
3138            .client
3139            .send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload, OpenTargetMarker>(
3140                (),
3141                0x79c7a7803c45e2e3,
3142                fidl::encoding::DynamicFlags::empty(),
3143                ___deadline,
3144            )?;
3145        Ok(_response.some_field)
3146    }
3147
3148    pub fn r#strict_two_way_err(
3149        &self,
3150        ___deadline: zx::MonotonicInstant,
3151    ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3152        let _response = self.client.send_query::<
3153            fidl::encoding::EmptyPayload,
3154            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3155            OpenTargetMarker,
3156        >(
3157            (),
3158            0x54259ed6c262fe88,
3159            fidl::encoding::DynamicFlags::empty(),
3160            ___deadline,
3161        )?;
3162        Ok(_response.map(|x| x))
3163    }
3164
3165    pub fn r#strict_two_way_fields_err(
3166        &self,
3167        ___deadline: zx::MonotonicInstant,
3168    ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3169        let _response = self.client.send_query::<
3170            fidl::encoding::EmptyPayload,
3171            fidl::encoding::ResultType<NonEmptyPayload, i32>,
3172            OpenTargetMarker,
3173        >(
3174            (),
3175            0x7dbaa8538b552711,
3176            fidl::encoding::DynamicFlags::empty(),
3177            ___deadline,
3178        )?;
3179        Ok(_response.map(|x| x.some_field))
3180    }
3181
3182    pub fn r#flexible_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3183        let _response = self.client.send_query::<
3184            fidl::encoding::EmptyPayload,
3185            fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3186            OpenTargetMarker,
3187        >(
3188            (),
3189            0x66552e68b99a0587,
3190            fidl::encoding::DynamicFlags::FLEXIBLE,
3191            ___deadline,
3192        )?
3193        .into_result::<OpenTargetMarker>("flexible_two_way")?;
3194        Ok(_response)
3195    }
3196
3197    pub fn r#flexible_two_way_fields(
3198        &self,
3199        ___deadline: zx::MonotonicInstant,
3200    ) -> Result<i32, fidl::Error> {
3201        let _response = self.client.send_query::<
3202            fidl::encoding::EmptyPayload,
3203            fidl::encoding::FlexibleType<NonEmptyPayload>,
3204            OpenTargetMarker,
3205        >(
3206            (),
3207            0x38b95648ac4e2ae4,
3208            fidl::encoding::DynamicFlags::FLEXIBLE,
3209            ___deadline,
3210        )?
3211        .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3212        Ok(_response.some_field)
3213    }
3214
3215    pub fn r#flexible_two_way_err(
3216        &self,
3217        ___deadline: zx::MonotonicInstant,
3218    ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3219        let _response = self.client.send_query::<
3220            fidl::encoding::EmptyPayload,
3221            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3222            OpenTargetMarker,
3223        >(
3224            (),
3225            0x6e144c6e0cf2147a,
3226            fidl::encoding::DynamicFlags::FLEXIBLE,
3227            ___deadline,
3228        )?
3229        .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3230        Ok(_response.map(|x| x))
3231    }
3232
3233    pub fn r#flexible_two_way_fields_err(
3234        &self,
3235        ___deadline: zx::MonotonicInstant,
3236    ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3237        let _response = self.client.send_query::<
3238            fidl::encoding::EmptyPayload,
3239            fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3240            OpenTargetMarker,
3241        >(
3242            (),
3243            0xe494147cda8024a,
3244            fidl::encoding::DynamicFlags::FLEXIBLE,
3245            ___deadline,
3246        )?
3247        .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3248        Ok(_response.map(|x| x.some_field))
3249    }
3250}
3251
3252#[cfg(target_os = "fuchsia")]
3253impl From<OpenTargetSynchronousProxy> for zx::NullableHandle {
3254    fn from(value: OpenTargetSynchronousProxy) -> Self {
3255        value.into_channel().into()
3256    }
3257}
3258
3259#[cfg(target_os = "fuchsia")]
3260impl From<fidl::Channel> for OpenTargetSynchronousProxy {
3261    fn from(value: fidl::Channel) -> Self {
3262        Self::new(value)
3263    }
3264}
3265
3266#[cfg(target_os = "fuchsia")]
3267impl fidl::endpoints::FromClient for OpenTargetSynchronousProxy {
3268    type Protocol = OpenTargetMarker;
3269
3270    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetMarker>) -> Self {
3271        Self::new(value.into_channel())
3272    }
3273}
3274
3275#[derive(Debug, Clone)]
3276pub struct OpenTargetProxy {
3277    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3278}
3279
3280impl fidl::endpoints::Proxy for OpenTargetProxy {
3281    type Protocol = OpenTargetMarker;
3282
3283    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3284        Self::new(inner)
3285    }
3286
3287    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3288        self.client.into_channel().map_err(|client| Self { client })
3289    }
3290
3291    fn as_channel(&self) -> &::fidl::AsyncChannel {
3292        self.client.as_channel()
3293    }
3294}
3295
3296impl OpenTargetProxy {
3297    /// Create a new Proxy for fidl.clientsuite/OpenTarget.
3298    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3299        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3300        Self { client: fidl::client::Client::new(channel, protocol_name) }
3301    }
3302
3303    /// Get a Stream of events from the remote end of the protocol.
3304    ///
3305    /// # Panics
3306    ///
3307    /// Panics if the event stream was already taken.
3308    pub fn take_event_stream(&self) -> OpenTargetEventStream {
3309        OpenTargetEventStream { event_receiver: self.client.take_event_receiver() }
3310    }
3311
3312    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3313        OpenTargetProxyInterface::r#strict_one_way(self)
3314    }
3315
3316    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3317        OpenTargetProxyInterface::r#flexible_one_way(self)
3318    }
3319
3320    pub fn r#strict_two_way(
3321        &self,
3322    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3323        OpenTargetProxyInterface::r#strict_two_way(self)
3324    }
3325
3326    pub fn r#strict_two_way_fields(
3327        &self,
3328    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3329        OpenTargetProxyInterface::r#strict_two_way_fields(self)
3330    }
3331
3332    pub fn r#strict_two_way_err(
3333        &self,
3334    ) -> fidl::client::QueryResponseFut<
3335        OpenTargetStrictTwoWayErrResult,
3336        fidl::encoding::DefaultFuchsiaResourceDialect,
3337    > {
3338        OpenTargetProxyInterface::r#strict_two_way_err(self)
3339    }
3340
3341    pub fn r#strict_two_way_fields_err(
3342        &self,
3343    ) -> fidl::client::QueryResponseFut<
3344        OpenTargetStrictTwoWayFieldsErrResult,
3345        fidl::encoding::DefaultFuchsiaResourceDialect,
3346    > {
3347        OpenTargetProxyInterface::r#strict_two_way_fields_err(self)
3348    }
3349
3350    pub fn r#flexible_two_way(
3351        &self,
3352    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3353        OpenTargetProxyInterface::r#flexible_two_way(self)
3354    }
3355
3356    pub fn r#flexible_two_way_fields(
3357        &self,
3358    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3359        OpenTargetProxyInterface::r#flexible_two_way_fields(self)
3360    }
3361
3362    pub fn r#flexible_two_way_err(
3363        &self,
3364    ) -> fidl::client::QueryResponseFut<
3365        OpenTargetFlexibleTwoWayErrResult,
3366        fidl::encoding::DefaultFuchsiaResourceDialect,
3367    > {
3368        OpenTargetProxyInterface::r#flexible_two_way_err(self)
3369    }
3370
3371    pub fn r#flexible_two_way_fields_err(
3372        &self,
3373    ) -> fidl::client::QueryResponseFut<
3374        OpenTargetFlexibleTwoWayFieldsErrResult,
3375        fidl::encoding::DefaultFuchsiaResourceDialect,
3376    > {
3377        OpenTargetProxyInterface::r#flexible_two_way_fields_err(self)
3378    }
3379}
3380
3381impl OpenTargetProxyInterface for OpenTargetProxy {
3382    fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3383        self.client.send::<fidl::encoding::EmptyPayload>(
3384            (),
3385            0x6db0bc21c4aae764,
3386            fidl::encoding::DynamicFlags::empty(),
3387        )
3388    }
3389
3390    fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3391        self.client.send::<fidl::encoding::EmptyPayload>(
3392            (),
3393            0xf894a7eb9cc29fc,
3394            fidl::encoding::DynamicFlags::FLEXIBLE,
3395        )
3396    }
3397
3398    type StrictTwoWayResponseFut =
3399        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3400    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut {
3401        fn _decode(
3402            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3403        ) -> Result<(), fidl::Error> {
3404            let _response = fidl::client::decode_transaction_body::<
3405                fidl::encoding::EmptyPayload,
3406                fidl::encoding::DefaultFuchsiaResourceDialect,
3407                0xdcf4cef19a1c542,
3408            >(_buf?)?;
3409            Ok(_response)
3410        }
3411        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3412            (),
3413            0xdcf4cef19a1c542,
3414            fidl::encoding::DynamicFlags::empty(),
3415            _decode,
3416        )
3417    }
3418
3419    type StrictTwoWayFieldsResponseFut =
3420        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3421    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut {
3422        fn _decode(
3423            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3424        ) -> Result<i32, fidl::Error> {
3425            let _response = fidl::client::decode_transaction_body::<
3426                NonEmptyPayload,
3427                fidl::encoding::DefaultFuchsiaResourceDialect,
3428                0x79c7a7803c45e2e3,
3429            >(_buf?)?;
3430            Ok(_response.some_field)
3431        }
3432        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3433            (),
3434            0x79c7a7803c45e2e3,
3435            fidl::encoding::DynamicFlags::empty(),
3436            _decode,
3437        )
3438    }
3439
3440    type StrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3441        OpenTargetStrictTwoWayErrResult,
3442        fidl::encoding::DefaultFuchsiaResourceDialect,
3443    >;
3444    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut {
3445        fn _decode(
3446            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3447        ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3448            let _response = fidl::client::decode_transaction_body::<
3449                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3450                fidl::encoding::DefaultFuchsiaResourceDialect,
3451                0x54259ed6c262fe88,
3452            >(_buf?)?;
3453            Ok(_response.map(|x| x))
3454        }
3455        self.client
3456            .send_query_and_decode::<fidl::encoding::EmptyPayload, OpenTargetStrictTwoWayErrResult>(
3457                (),
3458                0x54259ed6c262fe88,
3459                fidl::encoding::DynamicFlags::empty(),
3460                _decode,
3461            )
3462    }
3463
3464    type StrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3465        OpenTargetStrictTwoWayFieldsErrResult,
3466        fidl::encoding::DefaultFuchsiaResourceDialect,
3467    >;
3468    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut {
3469        fn _decode(
3470            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3471        ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3472            let _response = fidl::client::decode_transaction_body::<
3473                fidl::encoding::ResultType<NonEmptyPayload, i32>,
3474                fidl::encoding::DefaultFuchsiaResourceDialect,
3475                0x7dbaa8538b552711,
3476            >(_buf?)?;
3477            Ok(_response.map(|x| x.some_field))
3478        }
3479        self.client.send_query_and_decode::<
3480            fidl::encoding::EmptyPayload,
3481            OpenTargetStrictTwoWayFieldsErrResult,
3482        >(
3483            (),
3484            0x7dbaa8538b552711,
3485            fidl::encoding::DynamicFlags::empty(),
3486            _decode,
3487        )
3488    }
3489
3490    type FlexibleTwoWayResponseFut =
3491        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3492    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut {
3493        fn _decode(
3494            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3495        ) -> Result<(), fidl::Error> {
3496            let _response = fidl::client::decode_transaction_body::<
3497                fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3498                fidl::encoding::DefaultFuchsiaResourceDialect,
3499                0x66552e68b99a0587,
3500            >(_buf?)?
3501            .into_result::<OpenTargetMarker>("flexible_two_way")?;
3502            Ok(_response)
3503        }
3504        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3505            (),
3506            0x66552e68b99a0587,
3507            fidl::encoding::DynamicFlags::FLEXIBLE,
3508            _decode,
3509        )
3510    }
3511
3512    type FlexibleTwoWayFieldsResponseFut =
3513        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3514    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut {
3515        fn _decode(
3516            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3517        ) -> Result<i32, fidl::Error> {
3518            let _response = fidl::client::decode_transaction_body::<
3519                fidl::encoding::FlexibleType<NonEmptyPayload>,
3520                fidl::encoding::DefaultFuchsiaResourceDialect,
3521                0x38b95648ac4e2ae4,
3522            >(_buf?)?
3523            .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3524            Ok(_response.some_field)
3525        }
3526        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3527            (),
3528            0x38b95648ac4e2ae4,
3529            fidl::encoding::DynamicFlags::FLEXIBLE,
3530            _decode,
3531        )
3532    }
3533
3534    type FlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3535        OpenTargetFlexibleTwoWayErrResult,
3536        fidl::encoding::DefaultFuchsiaResourceDialect,
3537    >;
3538    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut {
3539        fn _decode(
3540            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3541        ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3542            let _response = fidl::client::decode_transaction_body::<
3543                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3544                fidl::encoding::DefaultFuchsiaResourceDialect,
3545                0x6e144c6e0cf2147a,
3546            >(_buf?)?
3547            .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3548            Ok(_response.map(|x| x))
3549        }
3550        self.client.send_query_and_decode::<
3551            fidl::encoding::EmptyPayload,
3552            OpenTargetFlexibleTwoWayErrResult,
3553        >(
3554            (),
3555            0x6e144c6e0cf2147a,
3556            fidl::encoding::DynamicFlags::FLEXIBLE,
3557            _decode,
3558        )
3559    }
3560
3561    type FlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3562        OpenTargetFlexibleTwoWayFieldsErrResult,
3563        fidl::encoding::DefaultFuchsiaResourceDialect,
3564    >;
3565    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut {
3566        fn _decode(
3567            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3568        ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3569            let _response = fidl::client::decode_transaction_body::<
3570                fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3571                fidl::encoding::DefaultFuchsiaResourceDialect,
3572                0xe494147cda8024a,
3573            >(_buf?)?
3574            .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3575            Ok(_response.map(|x| x.some_field))
3576        }
3577        self.client.send_query_and_decode::<
3578            fidl::encoding::EmptyPayload,
3579            OpenTargetFlexibleTwoWayFieldsErrResult,
3580        >(
3581            (),
3582            0xe494147cda8024a,
3583            fidl::encoding::DynamicFlags::FLEXIBLE,
3584            _decode,
3585        )
3586    }
3587}
3588
3589pub struct OpenTargetEventStream {
3590    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3591}
3592
3593impl std::marker::Unpin for OpenTargetEventStream {}
3594
3595impl futures::stream::FusedStream for OpenTargetEventStream {
3596    fn is_terminated(&self) -> bool {
3597        self.event_receiver.is_terminated()
3598    }
3599}
3600
3601impl futures::Stream for OpenTargetEventStream {
3602    type Item = Result<OpenTargetEvent, fidl::Error>;
3603
3604    fn poll_next(
3605        mut self: std::pin::Pin<&mut Self>,
3606        cx: &mut std::task::Context<'_>,
3607    ) -> std::task::Poll<Option<Self::Item>> {
3608        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3609            &mut self.event_receiver,
3610            cx
3611        )?) {
3612            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEvent::decode(buf))),
3613            None => std::task::Poll::Ready(None),
3614        }
3615    }
3616}
3617
3618#[derive(Debug)]
3619pub enum OpenTargetEvent {
3620    StrictEvent {},
3621    FlexibleEvent {},
3622    #[non_exhaustive]
3623    _UnknownEvent {
3624        /// Ordinal of the event that was sent.
3625        ordinal: u64,
3626    },
3627}
3628
3629impl OpenTargetEvent {
3630    #[allow(irrefutable_let_patterns)]
3631    pub fn into_strict_event(self) -> Option<()> {
3632        if let OpenTargetEvent::StrictEvent {} = self { Some(()) } else { None }
3633    }
3634    #[allow(irrefutable_let_patterns)]
3635    pub fn into_flexible_event(self) -> Option<()> {
3636        if let OpenTargetEvent::FlexibleEvent {} = self { Some(()) } else { None }
3637    }
3638
3639    /// Decodes a message buffer as a [`OpenTargetEvent`].
3640    fn decode(
3641        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3642    ) -> Result<OpenTargetEvent, fidl::Error> {
3643        let (bytes, _handles) = buf.split_mut();
3644        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3645        debug_assert_eq!(tx_header.tx_id, 0);
3646        match tx_header.ordinal {
3647            0x2b291d74321e77a0 => {
3648                let mut out = fidl::new_empty!(
3649                    fidl::encoding::EmptyPayload,
3650                    fidl::encoding::DefaultFuchsiaResourceDialect
3651                );
3652                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3653                Ok((OpenTargetEvent::StrictEvent {}))
3654            }
3655            0x50d4688058898898 => {
3656                let mut out = fidl::new_empty!(
3657                    fidl::encoding::EmptyPayload,
3658                    fidl::encoding::DefaultFuchsiaResourceDialect
3659                );
3660                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3661                Ok((OpenTargetEvent::FlexibleEvent {}))
3662            }
3663            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
3664                Ok(OpenTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
3665            }
3666            _ => Err(fidl::Error::UnknownOrdinal {
3667                ordinal: tx_header.ordinal,
3668                protocol_name: <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3669            }),
3670        }
3671    }
3672}
3673
3674/// A Stream of incoming requests for fidl.clientsuite/OpenTarget.
3675pub struct OpenTargetRequestStream {
3676    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3677    is_terminated: bool,
3678}
3679
3680impl std::marker::Unpin for OpenTargetRequestStream {}
3681
3682impl futures::stream::FusedStream for OpenTargetRequestStream {
3683    fn is_terminated(&self) -> bool {
3684        self.is_terminated
3685    }
3686}
3687
3688impl fidl::endpoints::RequestStream for OpenTargetRequestStream {
3689    type Protocol = OpenTargetMarker;
3690    type ControlHandle = OpenTargetControlHandle;
3691
3692    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3693        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3694    }
3695
3696    fn control_handle(&self) -> Self::ControlHandle {
3697        OpenTargetControlHandle { inner: self.inner.clone() }
3698    }
3699
3700    fn into_inner(
3701        self,
3702    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3703    {
3704        (self.inner, self.is_terminated)
3705    }
3706
3707    fn from_inner(
3708        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3709        is_terminated: bool,
3710    ) -> Self {
3711        Self { inner, is_terminated }
3712    }
3713}
3714
3715impl futures::Stream for OpenTargetRequestStream {
3716    type Item = Result<OpenTargetRequest, fidl::Error>;
3717
3718    fn poll_next(
3719        mut self: std::pin::Pin<&mut Self>,
3720        cx: &mut std::task::Context<'_>,
3721    ) -> std::task::Poll<Option<Self::Item>> {
3722        let this = &mut *self;
3723        if this.inner.check_shutdown(cx) {
3724            this.is_terminated = true;
3725            return std::task::Poll::Ready(None);
3726        }
3727        if this.is_terminated {
3728            panic!("polled OpenTargetRequestStream after completion");
3729        }
3730        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3731            |bytes, handles| {
3732                match this.inner.channel().read_etc(cx, bytes, handles) {
3733                    std::task::Poll::Ready(Ok(())) => {}
3734                    std::task::Poll::Pending => return std::task::Poll::Pending,
3735                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3736                        this.is_terminated = true;
3737                        return std::task::Poll::Ready(None);
3738                    }
3739                    std::task::Poll::Ready(Err(e)) => {
3740                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3741                            e.into(),
3742                        ))));
3743                    }
3744                }
3745
3746                // A message has been received from the channel
3747                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3748
3749                std::task::Poll::Ready(Some(match header.ordinal {
3750                    0x6db0bc21c4aae764 => {
3751                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3752                        let mut req = fidl::new_empty!(
3753                            fidl::encoding::EmptyPayload,
3754                            fidl::encoding::DefaultFuchsiaResourceDialect
3755                        );
3756                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3757                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3758                        Ok(OpenTargetRequest::StrictOneWay { control_handle })
3759                    }
3760                    0xf894a7eb9cc29fc => {
3761                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3762                        let mut req = fidl::new_empty!(
3763                            fidl::encoding::EmptyPayload,
3764                            fidl::encoding::DefaultFuchsiaResourceDialect
3765                        );
3766                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3767                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3768                        Ok(OpenTargetRequest::FlexibleOneWay { control_handle })
3769                    }
3770                    0xdcf4cef19a1c542 => {
3771                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3772                        let mut req = fidl::new_empty!(
3773                            fidl::encoding::EmptyPayload,
3774                            fidl::encoding::DefaultFuchsiaResourceDialect
3775                        );
3776                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3777                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3778                        Ok(OpenTargetRequest::StrictTwoWay {
3779                            responder: OpenTargetStrictTwoWayResponder {
3780                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3781                                tx_id: header.tx_id,
3782                            },
3783                        })
3784                    }
3785                    0x79c7a7803c45e2e3 => {
3786                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3787                        let mut req = fidl::new_empty!(
3788                            fidl::encoding::EmptyPayload,
3789                            fidl::encoding::DefaultFuchsiaResourceDialect
3790                        );
3791                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3792                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3793                        Ok(OpenTargetRequest::StrictTwoWayFields {
3794                            responder: OpenTargetStrictTwoWayFieldsResponder {
3795                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3796                                tx_id: header.tx_id,
3797                            },
3798                        })
3799                    }
3800                    0x54259ed6c262fe88 => {
3801                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3802                        let mut req = fidl::new_empty!(
3803                            fidl::encoding::EmptyPayload,
3804                            fidl::encoding::DefaultFuchsiaResourceDialect
3805                        );
3806                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3807                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3808                        Ok(OpenTargetRequest::StrictTwoWayErr {
3809                            responder: OpenTargetStrictTwoWayErrResponder {
3810                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3811                                tx_id: header.tx_id,
3812                            },
3813                        })
3814                    }
3815                    0x7dbaa8538b552711 => {
3816                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3817                        let mut req = fidl::new_empty!(
3818                            fidl::encoding::EmptyPayload,
3819                            fidl::encoding::DefaultFuchsiaResourceDialect
3820                        );
3821                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3822                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3823                        Ok(OpenTargetRequest::StrictTwoWayFieldsErr {
3824                            responder: OpenTargetStrictTwoWayFieldsErrResponder {
3825                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3826                                tx_id: header.tx_id,
3827                            },
3828                        })
3829                    }
3830                    0x66552e68b99a0587 => {
3831                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3832                        let mut req = fidl::new_empty!(
3833                            fidl::encoding::EmptyPayload,
3834                            fidl::encoding::DefaultFuchsiaResourceDialect
3835                        );
3836                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3837                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3838                        Ok(OpenTargetRequest::FlexibleTwoWay {
3839                            responder: OpenTargetFlexibleTwoWayResponder {
3840                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3841                                tx_id: header.tx_id,
3842                            },
3843                        })
3844                    }
3845                    0x38b95648ac4e2ae4 => {
3846                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3847                        let mut req = fidl::new_empty!(
3848                            fidl::encoding::EmptyPayload,
3849                            fidl::encoding::DefaultFuchsiaResourceDialect
3850                        );
3851                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3852                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3853                        Ok(OpenTargetRequest::FlexibleTwoWayFields {
3854                            responder: OpenTargetFlexibleTwoWayFieldsResponder {
3855                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3856                                tx_id: header.tx_id,
3857                            },
3858                        })
3859                    }
3860                    0x6e144c6e0cf2147a => {
3861                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3862                        let mut req = fidl::new_empty!(
3863                            fidl::encoding::EmptyPayload,
3864                            fidl::encoding::DefaultFuchsiaResourceDialect
3865                        );
3866                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3867                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3868                        Ok(OpenTargetRequest::FlexibleTwoWayErr {
3869                            responder: OpenTargetFlexibleTwoWayErrResponder {
3870                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3871                                tx_id: header.tx_id,
3872                            },
3873                        })
3874                    }
3875                    0xe494147cda8024a => {
3876                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3877                        let mut req = fidl::new_empty!(
3878                            fidl::encoding::EmptyPayload,
3879                            fidl::encoding::DefaultFuchsiaResourceDialect
3880                        );
3881                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3882                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3883                        Ok(OpenTargetRequest::FlexibleTwoWayFieldsErr {
3884                            responder: OpenTargetFlexibleTwoWayFieldsErrResponder {
3885                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3886                                tx_id: header.tx_id,
3887                            },
3888                        })
3889                    }
3890                    _ if header.tx_id == 0
3891                        && header
3892                            .dynamic_flags()
3893                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3894                    {
3895                        Ok(OpenTargetRequest::_UnknownMethod {
3896                            ordinal: header.ordinal,
3897                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3898                            method_type: fidl::MethodType::OneWay,
3899                        })
3900                    }
3901                    _ if header
3902                        .dynamic_flags()
3903                        .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3904                    {
3905                        this.inner.send_framework_err(
3906                            fidl::encoding::FrameworkErr::UnknownMethod,
3907                            header.tx_id,
3908                            header.ordinal,
3909                            header.dynamic_flags(),
3910                            (bytes, handles),
3911                        )?;
3912                        Ok(OpenTargetRequest::_UnknownMethod {
3913                            ordinal: header.ordinal,
3914                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3915                            method_type: fidl::MethodType::TwoWay,
3916                        })
3917                    }
3918                    _ => Err(fidl::Error::UnknownOrdinal {
3919                        ordinal: header.ordinal,
3920                        protocol_name:
3921                            <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3922                    }),
3923                }))
3924            },
3925        )
3926    }
3927}
3928
3929#[derive(Debug)]
3930pub enum OpenTargetRequest {
3931    StrictOneWay {
3932        control_handle: OpenTargetControlHandle,
3933    },
3934    FlexibleOneWay {
3935        control_handle: OpenTargetControlHandle,
3936    },
3937    StrictTwoWay {
3938        responder: OpenTargetStrictTwoWayResponder,
3939    },
3940    StrictTwoWayFields {
3941        responder: OpenTargetStrictTwoWayFieldsResponder,
3942    },
3943    StrictTwoWayErr {
3944        responder: OpenTargetStrictTwoWayErrResponder,
3945    },
3946    StrictTwoWayFieldsErr {
3947        responder: OpenTargetStrictTwoWayFieldsErrResponder,
3948    },
3949    FlexibleTwoWay {
3950        responder: OpenTargetFlexibleTwoWayResponder,
3951    },
3952    FlexibleTwoWayFields {
3953        responder: OpenTargetFlexibleTwoWayFieldsResponder,
3954    },
3955    FlexibleTwoWayErr {
3956        responder: OpenTargetFlexibleTwoWayErrResponder,
3957    },
3958    FlexibleTwoWayFieldsErr {
3959        responder: OpenTargetFlexibleTwoWayFieldsErrResponder,
3960    },
3961    /// An interaction was received which does not match any known method.
3962    #[non_exhaustive]
3963    _UnknownMethod {
3964        /// Ordinal of the method that was called.
3965        ordinal: u64,
3966        control_handle: OpenTargetControlHandle,
3967        method_type: fidl::MethodType,
3968    },
3969}
3970
3971impl OpenTargetRequest {
3972    #[allow(irrefutable_let_patterns)]
3973    pub fn into_strict_one_way(self) -> Option<(OpenTargetControlHandle)> {
3974        if let OpenTargetRequest::StrictOneWay { control_handle } = self {
3975            Some((control_handle))
3976        } else {
3977            None
3978        }
3979    }
3980
3981    #[allow(irrefutable_let_patterns)]
3982    pub fn into_flexible_one_way(self) -> Option<(OpenTargetControlHandle)> {
3983        if let OpenTargetRequest::FlexibleOneWay { control_handle } = self {
3984            Some((control_handle))
3985        } else {
3986            None
3987        }
3988    }
3989
3990    #[allow(irrefutable_let_patterns)]
3991    pub fn into_strict_two_way(self) -> Option<(OpenTargetStrictTwoWayResponder)> {
3992        if let OpenTargetRequest::StrictTwoWay { responder } = self {
3993            Some((responder))
3994        } else {
3995            None
3996        }
3997    }
3998
3999    #[allow(irrefutable_let_patterns)]
4000    pub fn into_strict_two_way_fields(self) -> Option<(OpenTargetStrictTwoWayFieldsResponder)> {
4001        if let OpenTargetRequest::StrictTwoWayFields { responder } = self {
4002            Some((responder))
4003        } else {
4004            None
4005        }
4006    }
4007
4008    #[allow(irrefutable_let_patterns)]
4009    pub fn into_strict_two_way_err(self) -> Option<(OpenTargetStrictTwoWayErrResponder)> {
4010        if let OpenTargetRequest::StrictTwoWayErr { responder } = self {
4011            Some((responder))
4012        } else {
4013            None
4014        }
4015    }
4016
4017    #[allow(irrefutable_let_patterns)]
4018    pub fn into_strict_two_way_fields_err(
4019        self,
4020    ) -> Option<(OpenTargetStrictTwoWayFieldsErrResponder)> {
4021        if let OpenTargetRequest::StrictTwoWayFieldsErr { responder } = self {
4022            Some((responder))
4023        } else {
4024            None
4025        }
4026    }
4027
4028    #[allow(irrefutable_let_patterns)]
4029    pub fn into_flexible_two_way(self) -> Option<(OpenTargetFlexibleTwoWayResponder)> {
4030        if let OpenTargetRequest::FlexibleTwoWay { responder } = self {
4031            Some((responder))
4032        } else {
4033            None
4034        }
4035    }
4036
4037    #[allow(irrefutable_let_patterns)]
4038    pub fn into_flexible_two_way_fields(self) -> Option<(OpenTargetFlexibleTwoWayFieldsResponder)> {
4039        if let OpenTargetRequest::FlexibleTwoWayFields { responder } = self {
4040            Some((responder))
4041        } else {
4042            None
4043        }
4044    }
4045
4046    #[allow(irrefutable_let_patterns)]
4047    pub fn into_flexible_two_way_err(self) -> Option<(OpenTargetFlexibleTwoWayErrResponder)> {
4048        if let OpenTargetRequest::FlexibleTwoWayErr { responder } = self {
4049            Some((responder))
4050        } else {
4051            None
4052        }
4053    }
4054
4055    #[allow(irrefutable_let_patterns)]
4056    pub fn into_flexible_two_way_fields_err(
4057        self,
4058    ) -> Option<(OpenTargetFlexibleTwoWayFieldsErrResponder)> {
4059        if let OpenTargetRequest::FlexibleTwoWayFieldsErr { responder } = self {
4060            Some((responder))
4061        } else {
4062            None
4063        }
4064    }
4065
4066    /// Name of the method defined in FIDL
4067    pub fn method_name(&self) -> &'static str {
4068        match *self {
4069            OpenTargetRequest::StrictOneWay { .. } => "strict_one_way",
4070            OpenTargetRequest::FlexibleOneWay { .. } => "flexible_one_way",
4071            OpenTargetRequest::StrictTwoWay { .. } => "strict_two_way",
4072            OpenTargetRequest::StrictTwoWayFields { .. } => "strict_two_way_fields",
4073            OpenTargetRequest::StrictTwoWayErr { .. } => "strict_two_way_err",
4074            OpenTargetRequest::StrictTwoWayFieldsErr { .. } => "strict_two_way_fields_err",
4075            OpenTargetRequest::FlexibleTwoWay { .. } => "flexible_two_way",
4076            OpenTargetRequest::FlexibleTwoWayFields { .. } => "flexible_two_way_fields",
4077            OpenTargetRequest::FlexibleTwoWayErr { .. } => "flexible_two_way_err",
4078            OpenTargetRequest::FlexibleTwoWayFieldsErr { .. } => "flexible_two_way_fields_err",
4079            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::OneWay, .. } => {
4080                "unknown one-way method"
4081            }
4082            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::TwoWay, .. } => {
4083                "unknown two-way method"
4084            }
4085        }
4086    }
4087}
4088
4089#[derive(Debug, Clone)]
4090pub struct OpenTargetControlHandle {
4091    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4092}
4093
4094impl fidl::endpoints::ControlHandle for OpenTargetControlHandle {
4095    fn shutdown(&self) {
4096        self.inner.shutdown()
4097    }
4098
4099    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4100        self.inner.shutdown_with_epitaph(status)
4101    }
4102
4103    fn is_closed(&self) -> bool {
4104        self.inner.channel().is_closed()
4105    }
4106    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4107        self.inner.channel().on_closed()
4108    }
4109
4110    #[cfg(target_os = "fuchsia")]
4111    fn signal_peer(
4112        &self,
4113        clear_mask: zx::Signals,
4114        set_mask: zx::Signals,
4115    ) -> Result<(), zx_status::Status> {
4116        use fidl::Peered;
4117        self.inner.channel().signal_peer(clear_mask, set_mask)
4118    }
4119}
4120
4121impl OpenTargetControlHandle {
4122    pub fn send_strict_event(&self) -> Result<(), fidl::Error> {
4123        self.inner.send::<fidl::encoding::EmptyPayload>(
4124            (),
4125            0,
4126            0x2b291d74321e77a0,
4127            fidl::encoding::DynamicFlags::empty(),
4128        )
4129    }
4130
4131    pub fn send_flexible_event(&self) -> Result<(), fidl::Error> {
4132        self.inner.send::<fidl::encoding::EmptyPayload>(
4133            (),
4134            0,
4135            0x50d4688058898898,
4136            fidl::encoding::DynamicFlags::FLEXIBLE,
4137        )
4138    }
4139}
4140
4141#[must_use = "FIDL methods require a response to be sent"]
4142#[derive(Debug)]
4143pub struct OpenTargetStrictTwoWayResponder {
4144    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4145    tx_id: u32,
4146}
4147
4148/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4149/// if the responder is dropped without sending a response, so that the client
4150/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4151impl std::ops::Drop for OpenTargetStrictTwoWayResponder {
4152    fn drop(&mut self) {
4153        self.control_handle.shutdown();
4154        // Safety: drops once, never accessed again
4155        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4156    }
4157}
4158
4159impl fidl::endpoints::Responder for OpenTargetStrictTwoWayResponder {
4160    type ControlHandle = OpenTargetControlHandle;
4161
4162    fn control_handle(&self) -> &OpenTargetControlHandle {
4163        &self.control_handle
4164    }
4165
4166    fn drop_without_shutdown(mut self) {
4167        // Safety: drops once, never accessed again due to mem::forget
4168        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4169        // Prevent Drop from running (which would shut down the channel)
4170        std::mem::forget(self);
4171    }
4172}
4173
4174impl OpenTargetStrictTwoWayResponder {
4175    /// Sends a response to the FIDL transaction.
4176    ///
4177    /// Sets the channel to shutdown if an error occurs.
4178    pub fn send(self) -> Result<(), fidl::Error> {
4179        let _result = self.send_raw();
4180        if _result.is_err() {
4181            self.control_handle.shutdown();
4182        }
4183        self.drop_without_shutdown();
4184        _result
4185    }
4186
4187    /// Similar to "send" but does not shutdown the channel if an error occurs.
4188    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4189        let _result = self.send_raw();
4190        self.drop_without_shutdown();
4191        _result
4192    }
4193
4194    fn send_raw(&self) -> Result<(), fidl::Error> {
4195        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4196            (),
4197            self.tx_id,
4198            0xdcf4cef19a1c542,
4199            fidl::encoding::DynamicFlags::empty(),
4200        )
4201    }
4202}
4203
4204#[must_use = "FIDL methods require a response to be sent"]
4205#[derive(Debug)]
4206pub struct OpenTargetStrictTwoWayFieldsResponder {
4207    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4208    tx_id: u32,
4209}
4210
4211/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4212/// if the responder is dropped without sending a response, so that the client
4213/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4214impl std::ops::Drop for OpenTargetStrictTwoWayFieldsResponder {
4215    fn drop(&mut self) {
4216        self.control_handle.shutdown();
4217        // Safety: drops once, never accessed again
4218        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4219    }
4220}
4221
4222impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsResponder {
4223    type ControlHandle = OpenTargetControlHandle;
4224
4225    fn control_handle(&self) -> &OpenTargetControlHandle {
4226        &self.control_handle
4227    }
4228
4229    fn drop_without_shutdown(mut self) {
4230        // Safety: drops once, never accessed again due to mem::forget
4231        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4232        // Prevent Drop from running (which would shut down the channel)
4233        std::mem::forget(self);
4234    }
4235}
4236
4237impl OpenTargetStrictTwoWayFieldsResponder {
4238    /// Sends a response to the FIDL transaction.
4239    ///
4240    /// Sets the channel to shutdown if an error occurs.
4241    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4242        let _result = self.send_raw(some_field);
4243        if _result.is_err() {
4244            self.control_handle.shutdown();
4245        }
4246        self.drop_without_shutdown();
4247        _result
4248    }
4249
4250    /// Similar to "send" but does not shutdown the channel if an error occurs.
4251    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4252        let _result = self.send_raw(some_field);
4253        self.drop_without_shutdown();
4254        _result
4255    }
4256
4257    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4258        self.control_handle.inner.send::<NonEmptyPayload>(
4259            (some_field,),
4260            self.tx_id,
4261            0x79c7a7803c45e2e3,
4262            fidl::encoding::DynamicFlags::empty(),
4263        )
4264    }
4265}
4266
4267#[must_use = "FIDL methods require a response to be sent"]
4268#[derive(Debug)]
4269pub struct OpenTargetStrictTwoWayErrResponder {
4270    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4271    tx_id: u32,
4272}
4273
4274/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4275/// if the responder is dropped without sending a response, so that the client
4276/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4277impl std::ops::Drop for OpenTargetStrictTwoWayErrResponder {
4278    fn drop(&mut self) {
4279        self.control_handle.shutdown();
4280        // Safety: drops once, never accessed again
4281        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4282    }
4283}
4284
4285impl fidl::endpoints::Responder for OpenTargetStrictTwoWayErrResponder {
4286    type ControlHandle = OpenTargetControlHandle;
4287
4288    fn control_handle(&self) -> &OpenTargetControlHandle {
4289        &self.control_handle
4290    }
4291
4292    fn drop_without_shutdown(mut self) {
4293        // Safety: drops once, never accessed again due to mem::forget
4294        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4295        // Prevent Drop from running (which would shut down the channel)
4296        std::mem::forget(self);
4297    }
4298}
4299
4300impl OpenTargetStrictTwoWayErrResponder {
4301    /// Sends a response to the FIDL transaction.
4302    ///
4303    /// Sets the channel to shutdown if an error occurs.
4304    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4305        let _result = self.send_raw(result);
4306        if _result.is_err() {
4307            self.control_handle.shutdown();
4308        }
4309        self.drop_without_shutdown();
4310        _result
4311    }
4312
4313    /// Similar to "send" but does not shutdown the channel if an error occurs.
4314    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4315        let _result = self.send_raw(result);
4316        self.drop_without_shutdown();
4317        _result
4318    }
4319
4320    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4321        self.control_handle
4322            .inner
4323            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4324                result,
4325                self.tx_id,
4326                0x54259ed6c262fe88,
4327                fidl::encoding::DynamicFlags::empty(),
4328            )
4329    }
4330}
4331
4332#[must_use = "FIDL methods require a response to be sent"]
4333#[derive(Debug)]
4334pub struct OpenTargetStrictTwoWayFieldsErrResponder {
4335    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4336    tx_id: u32,
4337}
4338
4339/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4340/// if the responder is dropped without sending a response, so that the client
4341/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4342impl std::ops::Drop for OpenTargetStrictTwoWayFieldsErrResponder {
4343    fn drop(&mut self) {
4344        self.control_handle.shutdown();
4345        // Safety: drops once, never accessed again
4346        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4347    }
4348}
4349
4350impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsErrResponder {
4351    type ControlHandle = OpenTargetControlHandle;
4352
4353    fn control_handle(&self) -> &OpenTargetControlHandle {
4354        &self.control_handle
4355    }
4356
4357    fn drop_without_shutdown(mut self) {
4358        // Safety: drops once, never accessed again due to mem::forget
4359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4360        // Prevent Drop from running (which would shut down the channel)
4361        std::mem::forget(self);
4362    }
4363}
4364
4365impl OpenTargetStrictTwoWayFieldsErrResponder {
4366    /// Sends a response to the FIDL transaction.
4367    ///
4368    /// Sets the channel to shutdown if an error occurs.
4369    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4370        let _result = self.send_raw(result);
4371        if _result.is_err() {
4372            self.control_handle.shutdown();
4373        }
4374        self.drop_without_shutdown();
4375        _result
4376    }
4377
4378    /// Similar to "send" but does not shutdown the channel if an error occurs.
4379    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4380        let _result = self.send_raw(result);
4381        self.drop_without_shutdown();
4382        _result
4383    }
4384
4385    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4386        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
4387            result.map(|some_field| (some_field,)),
4388            self.tx_id,
4389            0x7dbaa8538b552711,
4390            fidl::encoding::DynamicFlags::empty(),
4391        )
4392    }
4393}
4394
4395#[must_use = "FIDL methods require a response to be sent"]
4396#[derive(Debug)]
4397pub struct OpenTargetFlexibleTwoWayResponder {
4398    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4399    tx_id: u32,
4400}
4401
4402/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4403/// if the responder is dropped without sending a response, so that the client
4404/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4405impl std::ops::Drop for OpenTargetFlexibleTwoWayResponder {
4406    fn drop(&mut self) {
4407        self.control_handle.shutdown();
4408        // Safety: drops once, never accessed again
4409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4410    }
4411}
4412
4413impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayResponder {
4414    type ControlHandle = OpenTargetControlHandle;
4415
4416    fn control_handle(&self) -> &OpenTargetControlHandle {
4417        &self.control_handle
4418    }
4419
4420    fn drop_without_shutdown(mut self) {
4421        // Safety: drops once, never accessed again due to mem::forget
4422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4423        // Prevent Drop from running (which would shut down the channel)
4424        std::mem::forget(self);
4425    }
4426}
4427
4428impl OpenTargetFlexibleTwoWayResponder {
4429    /// Sends a response to the FIDL transaction.
4430    ///
4431    /// Sets the channel to shutdown if an error occurs.
4432    pub fn send(self) -> Result<(), fidl::Error> {
4433        let _result = self.send_raw();
4434        if _result.is_err() {
4435            self.control_handle.shutdown();
4436        }
4437        self.drop_without_shutdown();
4438        _result
4439    }
4440
4441    /// Similar to "send" but does not shutdown the channel if an error occurs.
4442    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4443        let _result = self.send_raw();
4444        self.drop_without_shutdown();
4445        _result
4446    }
4447
4448    fn send_raw(&self) -> Result<(), fidl::Error> {
4449        self.control_handle.inner.send::<fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>>(
4450            fidl::encoding::Flexible::new(()),
4451            self.tx_id,
4452            0x66552e68b99a0587,
4453            fidl::encoding::DynamicFlags::FLEXIBLE,
4454        )
4455    }
4456}
4457
4458#[must_use = "FIDL methods require a response to be sent"]
4459#[derive(Debug)]
4460pub struct OpenTargetFlexibleTwoWayFieldsResponder {
4461    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4462    tx_id: u32,
4463}
4464
4465/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4466/// if the responder is dropped without sending a response, so that the client
4467/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4468impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsResponder {
4469    fn drop(&mut self) {
4470        self.control_handle.shutdown();
4471        // Safety: drops once, never accessed again
4472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4473    }
4474}
4475
4476impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsResponder {
4477    type ControlHandle = OpenTargetControlHandle;
4478
4479    fn control_handle(&self) -> &OpenTargetControlHandle {
4480        &self.control_handle
4481    }
4482
4483    fn drop_without_shutdown(mut self) {
4484        // Safety: drops once, never accessed again due to mem::forget
4485        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4486        // Prevent Drop from running (which would shut down the channel)
4487        std::mem::forget(self);
4488    }
4489}
4490
4491impl OpenTargetFlexibleTwoWayFieldsResponder {
4492    /// Sends a response to the FIDL transaction.
4493    ///
4494    /// Sets the channel to shutdown if an error occurs.
4495    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4496        let _result = self.send_raw(some_field);
4497        if _result.is_err() {
4498            self.control_handle.shutdown();
4499        }
4500        self.drop_without_shutdown();
4501        _result
4502    }
4503
4504    /// Similar to "send" but does not shutdown the channel if an error occurs.
4505    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4506        let _result = self.send_raw(some_field);
4507        self.drop_without_shutdown();
4508        _result
4509    }
4510
4511    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4512        self.control_handle.inner.send::<fidl::encoding::FlexibleType<NonEmptyPayload>>(
4513            fidl::encoding::Flexible::new((some_field,)),
4514            self.tx_id,
4515            0x38b95648ac4e2ae4,
4516            fidl::encoding::DynamicFlags::FLEXIBLE,
4517        )
4518    }
4519}
4520
4521#[must_use = "FIDL methods require a response to be sent"]
4522#[derive(Debug)]
4523pub struct OpenTargetFlexibleTwoWayErrResponder {
4524    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4525    tx_id: u32,
4526}
4527
4528/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4529/// if the responder is dropped without sending a response, so that the client
4530/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4531impl std::ops::Drop for OpenTargetFlexibleTwoWayErrResponder {
4532    fn drop(&mut self) {
4533        self.control_handle.shutdown();
4534        // Safety: drops once, never accessed again
4535        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4536    }
4537}
4538
4539impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayErrResponder {
4540    type ControlHandle = OpenTargetControlHandle;
4541
4542    fn control_handle(&self) -> &OpenTargetControlHandle {
4543        &self.control_handle
4544    }
4545
4546    fn drop_without_shutdown(mut self) {
4547        // Safety: drops once, never accessed again due to mem::forget
4548        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4549        // Prevent Drop from running (which would shut down the channel)
4550        std::mem::forget(self);
4551    }
4552}
4553
4554impl OpenTargetFlexibleTwoWayErrResponder {
4555    /// Sends a response to the FIDL transaction.
4556    ///
4557    /// Sets the channel to shutdown if an error occurs.
4558    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4559        let _result = self.send_raw(result);
4560        if _result.is_err() {
4561            self.control_handle.shutdown();
4562        }
4563        self.drop_without_shutdown();
4564        _result
4565    }
4566
4567    /// Similar to "send" but does not shutdown the channel if an error occurs.
4568    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4569        let _result = self.send_raw(result);
4570        self.drop_without_shutdown();
4571        _result
4572    }
4573
4574    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4575        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4576            fidl::encoding::EmptyStruct,
4577            i32,
4578        >>(
4579            fidl::encoding::FlexibleResult::new(result),
4580            self.tx_id,
4581            0x6e144c6e0cf2147a,
4582            fidl::encoding::DynamicFlags::FLEXIBLE,
4583        )
4584    }
4585}
4586
4587#[must_use = "FIDL methods require a response to be sent"]
4588#[derive(Debug)]
4589pub struct OpenTargetFlexibleTwoWayFieldsErrResponder {
4590    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4591    tx_id: u32,
4592}
4593
4594/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4595/// if the responder is dropped without sending a response, so that the client
4596/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4597impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsErrResponder {
4598    fn drop(&mut self) {
4599        self.control_handle.shutdown();
4600        // Safety: drops once, never accessed again
4601        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4602    }
4603}
4604
4605impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsErrResponder {
4606    type ControlHandle = OpenTargetControlHandle;
4607
4608    fn control_handle(&self) -> &OpenTargetControlHandle {
4609        &self.control_handle
4610    }
4611
4612    fn drop_without_shutdown(mut self) {
4613        // Safety: drops once, never accessed again due to mem::forget
4614        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4615        // Prevent Drop from running (which would shut down the channel)
4616        std::mem::forget(self);
4617    }
4618}
4619
4620impl OpenTargetFlexibleTwoWayFieldsErrResponder {
4621    /// Sends a response to the FIDL transaction.
4622    ///
4623    /// Sets the channel to shutdown if an error occurs.
4624    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4625        let _result = self.send_raw(result);
4626        if _result.is_err() {
4627            self.control_handle.shutdown();
4628        }
4629        self.drop_without_shutdown();
4630        _result
4631    }
4632
4633    /// Similar to "send" but does not shutdown the channel if an error occurs.
4634    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4635        let _result = self.send_raw(result);
4636        self.drop_without_shutdown();
4637        _result
4638    }
4639
4640    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4641        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>>(
4642            fidl::encoding::FlexibleResult::new(result.map(|some_field| (some_field,))),
4643            self.tx_id,
4644            0xe494147cda8024a,
4645            fidl::encoding::DynamicFlags::FLEXIBLE,
4646        )
4647    }
4648}
4649
4650#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4651pub struct OpenTargetEventReporterMarker;
4652
4653impl fidl::endpoints::ProtocolMarker for OpenTargetEventReporterMarker {
4654    type Proxy = OpenTargetEventReporterProxy;
4655    type RequestStream = OpenTargetEventReporterRequestStream;
4656    #[cfg(target_os = "fuchsia")]
4657    type SynchronousProxy = OpenTargetEventReporterSynchronousProxy;
4658
4659    const DEBUG_NAME: &'static str = "(anonymous) OpenTargetEventReporter";
4660}
4661
4662pub trait OpenTargetEventReporterProxyInterface: Send + Sync {
4663    fn r#report_event(&self, payload: &OpenTargetEventReport) -> Result<(), fidl::Error>;
4664}
4665#[derive(Debug)]
4666#[cfg(target_os = "fuchsia")]
4667pub struct OpenTargetEventReporterSynchronousProxy {
4668    client: fidl::client::sync::Client,
4669}
4670
4671#[cfg(target_os = "fuchsia")]
4672impl fidl::endpoints::SynchronousProxy for OpenTargetEventReporterSynchronousProxy {
4673    type Proxy = OpenTargetEventReporterProxy;
4674    type Protocol = OpenTargetEventReporterMarker;
4675
4676    fn from_channel(inner: fidl::Channel) -> Self {
4677        Self::new(inner)
4678    }
4679
4680    fn into_channel(self) -> fidl::Channel {
4681        self.client.into_channel()
4682    }
4683
4684    fn as_channel(&self) -> &fidl::Channel {
4685        self.client.as_channel()
4686    }
4687}
4688
4689#[cfg(target_os = "fuchsia")]
4690impl OpenTargetEventReporterSynchronousProxy {
4691    pub fn new(channel: fidl::Channel) -> Self {
4692        Self { client: fidl::client::sync::Client::new(channel) }
4693    }
4694
4695    pub fn into_channel(self) -> fidl::Channel {
4696        self.client.into_channel()
4697    }
4698
4699    /// Waits until an event arrives and returns it. It is safe for other
4700    /// threads to make concurrent requests while waiting for an event.
4701    pub fn wait_for_event(
4702        &self,
4703        deadline: zx::MonotonicInstant,
4704    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4705        OpenTargetEventReporterEvent::decode(
4706            self.client.wait_for_event::<OpenTargetEventReporterMarker>(deadline)?,
4707        )
4708    }
4709
4710    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4711        self.client.send::<OpenTargetEventReport>(
4712            payload,
4713            0x70ab38ec0248964a,
4714            fidl::encoding::DynamicFlags::empty(),
4715        )
4716    }
4717}
4718
4719#[cfg(target_os = "fuchsia")]
4720impl From<OpenTargetEventReporterSynchronousProxy> for zx::NullableHandle {
4721    fn from(value: OpenTargetEventReporterSynchronousProxy) -> Self {
4722        value.into_channel().into()
4723    }
4724}
4725
4726#[cfg(target_os = "fuchsia")]
4727impl From<fidl::Channel> for OpenTargetEventReporterSynchronousProxy {
4728    fn from(value: fidl::Channel) -> Self {
4729        Self::new(value)
4730    }
4731}
4732
4733#[cfg(target_os = "fuchsia")]
4734impl fidl::endpoints::FromClient for OpenTargetEventReporterSynchronousProxy {
4735    type Protocol = OpenTargetEventReporterMarker;
4736
4737    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>) -> Self {
4738        Self::new(value.into_channel())
4739    }
4740}
4741
4742#[derive(Debug, Clone)]
4743pub struct OpenTargetEventReporterProxy {
4744    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
4745}
4746
4747impl fidl::endpoints::Proxy for OpenTargetEventReporterProxy {
4748    type Protocol = OpenTargetEventReporterMarker;
4749
4750    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
4751        Self::new(inner)
4752    }
4753
4754    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
4755        self.client.into_channel().map_err(|client| Self { client })
4756    }
4757
4758    fn as_channel(&self) -> &::fidl::AsyncChannel {
4759        self.client.as_channel()
4760    }
4761}
4762
4763impl OpenTargetEventReporterProxy {
4764    /// Create a new Proxy for fidl.clientsuite/OpenTargetEventReporter.
4765    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
4766        let protocol_name =
4767            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4768        Self { client: fidl::client::Client::new(channel, protocol_name) }
4769    }
4770
4771    /// Get a Stream of events from the remote end of the protocol.
4772    ///
4773    /// # Panics
4774    ///
4775    /// Panics if the event stream was already taken.
4776    pub fn take_event_stream(&self) -> OpenTargetEventReporterEventStream {
4777        OpenTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
4778    }
4779
4780    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4781        OpenTargetEventReporterProxyInterface::r#report_event(self, payload)
4782    }
4783}
4784
4785impl OpenTargetEventReporterProxyInterface for OpenTargetEventReporterProxy {
4786    fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4787        self.client.send::<OpenTargetEventReport>(
4788            payload,
4789            0x70ab38ec0248964a,
4790            fidl::encoding::DynamicFlags::empty(),
4791        )
4792    }
4793}
4794
4795pub struct OpenTargetEventReporterEventStream {
4796    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
4797}
4798
4799impl std::marker::Unpin for OpenTargetEventReporterEventStream {}
4800
4801impl futures::stream::FusedStream for OpenTargetEventReporterEventStream {
4802    fn is_terminated(&self) -> bool {
4803        self.event_receiver.is_terminated()
4804    }
4805}
4806
4807impl futures::Stream for OpenTargetEventReporterEventStream {
4808    type Item = Result<OpenTargetEventReporterEvent, fidl::Error>;
4809
4810    fn poll_next(
4811        mut self: std::pin::Pin<&mut Self>,
4812        cx: &mut std::task::Context<'_>,
4813    ) -> std::task::Poll<Option<Self::Item>> {
4814        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4815            &mut self.event_receiver,
4816            cx
4817        )?) {
4818            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEventReporterEvent::decode(buf))),
4819            None => std::task::Poll::Ready(None),
4820        }
4821    }
4822}
4823
4824#[derive(Debug)]
4825pub enum OpenTargetEventReporterEvent {}
4826
4827impl OpenTargetEventReporterEvent {
4828    /// Decodes a message buffer as a [`OpenTargetEventReporterEvent`].
4829    fn decode(
4830        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4831    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4832        let (bytes, _handles) = buf.split_mut();
4833        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4834        debug_assert_eq!(tx_header.tx_id, 0);
4835        match tx_header.ordinal {
4836            _ => Err(fidl::Error::UnknownOrdinal {
4837                ordinal: tx_header.ordinal,
4838                protocol_name:
4839                    <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4840            }),
4841        }
4842    }
4843}
4844
4845/// A Stream of incoming requests for fidl.clientsuite/OpenTargetEventReporter.
4846pub struct OpenTargetEventReporterRequestStream {
4847    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4848    is_terminated: bool,
4849}
4850
4851impl std::marker::Unpin for OpenTargetEventReporterRequestStream {}
4852
4853impl futures::stream::FusedStream for OpenTargetEventReporterRequestStream {
4854    fn is_terminated(&self) -> bool {
4855        self.is_terminated
4856    }
4857}
4858
4859impl fidl::endpoints::RequestStream for OpenTargetEventReporterRequestStream {
4860    type Protocol = OpenTargetEventReporterMarker;
4861    type ControlHandle = OpenTargetEventReporterControlHandle;
4862
4863    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
4864        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4865    }
4866
4867    fn control_handle(&self) -> Self::ControlHandle {
4868        OpenTargetEventReporterControlHandle { inner: self.inner.clone() }
4869    }
4870
4871    fn into_inner(
4872        self,
4873    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
4874    {
4875        (self.inner, self.is_terminated)
4876    }
4877
4878    fn from_inner(
4879        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4880        is_terminated: bool,
4881    ) -> Self {
4882        Self { inner, is_terminated }
4883    }
4884}
4885
4886impl futures::Stream for OpenTargetEventReporterRequestStream {
4887    type Item = Result<OpenTargetEventReporterRequest, fidl::Error>;
4888
4889    fn poll_next(
4890        mut self: std::pin::Pin<&mut Self>,
4891        cx: &mut std::task::Context<'_>,
4892    ) -> std::task::Poll<Option<Self::Item>> {
4893        let this = &mut *self;
4894        if this.inner.check_shutdown(cx) {
4895            this.is_terminated = true;
4896            return std::task::Poll::Ready(None);
4897        }
4898        if this.is_terminated {
4899            panic!("polled OpenTargetEventReporterRequestStream after completion");
4900        }
4901        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
4902            |bytes, handles| {
4903                match this.inner.channel().read_etc(cx, bytes, handles) {
4904                    std::task::Poll::Ready(Ok(())) => {}
4905                    std::task::Poll::Pending => return std::task::Poll::Pending,
4906                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
4907                        this.is_terminated = true;
4908                        return std::task::Poll::Ready(None);
4909                    }
4910                    std::task::Poll::Ready(Err(e)) => {
4911                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4912                            e.into(),
4913                        ))));
4914                    }
4915                }
4916
4917                // A message has been received from the channel
4918                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4919
4920                std::task::Poll::Ready(Some(match header.ordinal {
4921                0x70ab38ec0248964a => {
4922                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4923                    let mut req = fidl::new_empty!(OpenTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
4924                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<OpenTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
4925                    let control_handle = OpenTargetEventReporterControlHandle {
4926                        inner: this.inner.clone(),
4927                    };
4928                    Ok(OpenTargetEventReporterRequest::ReportEvent {payload: req,
4929                        control_handle,
4930                    })
4931                }
4932                _ => Err(fidl::Error::UnknownOrdinal {
4933                    ordinal: header.ordinal,
4934                    protocol_name: <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4935                }),
4936            }))
4937            },
4938        )
4939    }
4940}
4941
4942#[derive(Debug)]
4943pub enum OpenTargetEventReporterRequest {
4944    ReportEvent {
4945        payload: OpenTargetEventReport,
4946        control_handle: OpenTargetEventReporterControlHandle,
4947    },
4948}
4949
4950impl OpenTargetEventReporterRequest {
4951    #[allow(irrefutable_let_patterns)]
4952    pub fn into_report_event(
4953        self,
4954    ) -> Option<(OpenTargetEventReport, OpenTargetEventReporterControlHandle)> {
4955        if let OpenTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
4956            Some((payload, control_handle))
4957        } else {
4958            None
4959        }
4960    }
4961
4962    /// Name of the method defined in FIDL
4963    pub fn method_name(&self) -> &'static str {
4964        match *self {
4965            OpenTargetEventReporterRequest::ReportEvent { .. } => "report_event",
4966        }
4967    }
4968}
4969
4970#[derive(Debug, Clone)]
4971pub struct OpenTargetEventReporterControlHandle {
4972    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4973}
4974
4975impl fidl::endpoints::ControlHandle for OpenTargetEventReporterControlHandle {
4976    fn shutdown(&self) {
4977        self.inner.shutdown()
4978    }
4979
4980    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4981        self.inner.shutdown_with_epitaph(status)
4982    }
4983
4984    fn is_closed(&self) -> bool {
4985        self.inner.channel().is_closed()
4986    }
4987    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4988        self.inner.channel().on_closed()
4989    }
4990
4991    #[cfg(target_os = "fuchsia")]
4992    fn signal_peer(
4993        &self,
4994        clear_mask: zx::Signals,
4995        set_mask: zx::Signals,
4996    ) -> Result<(), zx_status::Status> {
4997        use fidl::Peered;
4998        self.inner.channel().signal_peer(clear_mask, set_mask)
4999    }
5000}
5001
5002impl OpenTargetEventReporterControlHandle {}
5003
5004#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
5005pub struct RunnerMarker;
5006
5007impl fidl::endpoints::ProtocolMarker for RunnerMarker {
5008    type Proxy = RunnerProxy;
5009    type RequestStream = RunnerRequestStream;
5010    #[cfg(target_os = "fuchsia")]
5011    type SynchronousProxy = RunnerSynchronousProxy;
5012
5013    const DEBUG_NAME: &'static str = "fidl.clientsuite.Runner";
5014}
5015impl fidl::endpoints::DiscoverableProtocolMarker for RunnerMarker {}
5016
5017pub trait RunnerProxyInterface: Send + Sync {
5018    type GetVersionResponseFut: std::future::Future<Output = Result<u64, fidl::Error>> + Send;
5019    fn r#get_version(&self) -> Self::GetVersionResponseFut;
5020    type IsTestEnabledResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
5021    fn r#is_test_enabled(&self, test: Test) -> Self::IsTestEnabledResponseFut;
5022    type CheckAliveResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5023    fn r#check_alive(&self) -> Self::CheckAliveResponseFut;
5024    type GetBindingsPropertiesResponseFut: std::future::Future<Output = Result<BindingsProperties, fidl::Error>>
5025        + Send;
5026    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut;
5027    type CallTwoWayNoPayloadResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5028        + Send;
5029    fn r#call_two_way_no_payload(
5030        &self,
5031        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5032    ) -> Self::CallTwoWayNoPayloadResponseFut;
5033    type CallTwoWayStructPayloadResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5034        + Send;
5035    fn r#call_two_way_struct_payload(
5036        &self,
5037        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5038    ) -> Self::CallTwoWayStructPayloadResponseFut;
5039    type CallTwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TableResultClassification, fidl::Error>>
5040        + Send;
5041    fn r#call_two_way_table_payload(
5042        &self,
5043        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5044    ) -> Self::CallTwoWayTablePayloadResponseFut;
5045    type CallTwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionResultClassification, fidl::Error>>
5046        + Send;
5047    fn r#call_two_way_union_payload(
5048        &self,
5049        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5050    ) -> Self::CallTwoWayUnionPayloadResponseFut;
5051    type CallTwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5052        + Send;
5053    fn r#call_two_way_struct_payload_err(
5054        &self,
5055        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5056    ) -> Self::CallTwoWayStructPayloadErrResponseFut;
5057    type CallTwoWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5058        + Send;
5059    fn r#call_two_way_struct_request(
5060        &self,
5061        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5062        request: &NonEmptyPayload,
5063    ) -> Self::CallTwoWayStructRequestResponseFut;
5064    type CallTwoWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5065        + Send;
5066    fn r#call_two_way_table_request(
5067        &self,
5068        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5069        request: &TablePayload,
5070    ) -> Self::CallTwoWayTableRequestResponseFut;
5071    type CallTwoWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5072        + Send;
5073    fn r#call_two_way_union_request(
5074        &self,
5075        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5076        request: &UnionPayload,
5077    ) -> Self::CallTwoWayUnionRequestResponseFut;
5078    type CallOneWayNoRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5079        + Send;
5080    fn r#call_one_way_no_request(
5081        &self,
5082        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5083    ) -> Self::CallOneWayNoRequestResponseFut;
5084    type CallOneWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5085        + Send;
5086    fn r#call_one_way_struct_request(
5087        &self,
5088        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5089        request: &NonEmptyPayload,
5090    ) -> Self::CallOneWayStructRequestResponseFut;
5091    type CallOneWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5092        + Send;
5093    fn r#call_one_way_table_request(
5094        &self,
5095        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5096        request: &TablePayload,
5097    ) -> Self::CallOneWayTableRequestResponseFut;
5098    type CallOneWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5099        + Send;
5100    fn r#call_one_way_union_request(
5101        &self,
5102        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5103        request: &UnionPayload,
5104    ) -> Self::CallOneWayUnionRequestResponseFut;
5105    type CallStrictOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5106        + Send;
5107    fn r#call_strict_one_way(
5108        &self,
5109        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5110    ) -> Self::CallStrictOneWayResponseFut;
5111    type CallFlexibleOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5112        + Send;
5113    fn r#call_flexible_one_way(
5114        &self,
5115        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5116    ) -> Self::CallFlexibleOneWayResponseFut;
5117    type CallStrictTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5118        + Send;
5119    fn r#call_strict_two_way(
5120        &self,
5121        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5122    ) -> Self::CallStrictTwoWayResponseFut;
5123    type CallStrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5124        + Send;
5125    fn r#call_strict_two_way_fields(
5126        &self,
5127        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5128    ) -> Self::CallStrictTwoWayFieldsResponseFut;
5129    type CallStrictTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5130        + Send;
5131    fn r#call_strict_two_way_err(
5132        &self,
5133        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5134    ) -> Self::CallStrictTwoWayErrResponseFut;
5135    type CallStrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5136        + Send;
5137    fn r#call_strict_two_way_fields_err(
5138        &self,
5139        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5140    ) -> Self::CallStrictTwoWayFieldsErrResponseFut;
5141    type CallFlexibleTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5142        + Send;
5143    fn r#call_flexible_two_way(
5144        &self,
5145        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5146    ) -> Self::CallFlexibleTwoWayResponseFut;
5147    type CallFlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5148        + Send;
5149    fn r#call_flexible_two_way_fields(
5150        &self,
5151        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5152    ) -> Self::CallFlexibleTwoWayFieldsResponseFut;
5153    type CallFlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5154        + Send;
5155    fn r#call_flexible_two_way_err(
5156        &self,
5157        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5158    ) -> Self::CallFlexibleTwoWayErrResponseFut;
5159    type CallFlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5160        + Send;
5161    fn r#call_flexible_two_way_fields_err(
5162        &self,
5163        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5164    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut;
5165    type ReceiveClosedEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
5166        + Send;
5167    fn r#receive_closed_events(
5168        &self,
5169        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5170        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5171    ) -> Self::ReceiveClosedEventsResponseFut;
5172    type ReceiveAjarEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5173    fn r#receive_ajar_events(
5174        &self,
5175        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5176        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5177    ) -> Self::ReceiveAjarEventsResponseFut;
5178    type ReceiveOpenEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5179    fn r#receive_open_events(
5180        &self,
5181        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5182        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5183    ) -> Self::ReceiveOpenEventsResponseFut;
5184}
5185#[derive(Debug)]
5186#[cfg(target_os = "fuchsia")]
5187pub struct RunnerSynchronousProxy {
5188    client: fidl::client::sync::Client,
5189}
5190
5191#[cfg(target_os = "fuchsia")]
5192impl fidl::endpoints::SynchronousProxy for RunnerSynchronousProxy {
5193    type Proxy = RunnerProxy;
5194    type Protocol = RunnerMarker;
5195
5196    fn from_channel(inner: fidl::Channel) -> Self {
5197        Self::new(inner)
5198    }
5199
5200    fn into_channel(self) -> fidl::Channel {
5201        self.client.into_channel()
5202    }
5203
5204    fn as_channel(&self) -> &fidl::Channel {
5205        self.client.as_channel()
5206    }
5207}
5208
5209#[cfg(target_os = "fuchsia")]
5210impl RunnerSynchronousProxy {
5211    pub fn new(channel: fidl::Channel) -> Self {
5212        Self { client: fidl::client::sync::Client::new(channel) }
5213    }
5214
5215    pub fn into_channel(self) -> fidl::Channel {
5216        self.client.into_channel()
5217    }
5218
5219    /// Waits until an event arrives and returns it. It is safe for other
5220    /// threads to make concurrent requests while waiting for an event.
5221    pub fn wait_for_event(
5222        &self,
5223        deadline: zx::MonotonicInstant,
5224    ) -> Result<RunnerEvent, fidl::Error> {
5225        RunnerEvent::decode(self.client.wait_for_event::<RunnerMarker>(deadline)?)
5226    }
5227
5228    pub fn r#get_version(&self, ___deadline: zx::MonotonicInstant) -> Result<u64, fidl::Error> {
5229        let _response = self
5230            .client
5231            .send_query::<fidl::encoding::EmptyPayload, RunnerGetVersionResponse, RunnerMarker>(
5232                (),
5233                0x555d1430b913cdd4,
5234                fidl::encoding::DynamicFlags::empty(),
5235                ___deadline,
5236            )?;
5237        Ok(_response.version)
5238    }
5239
5240    pub fn r#is_test_enabled(
5241        &self,
5242        mut test: Test,
5243        ___deadline: zx::MonotonicInstant,
5244    ) -> Result<bool, fidl::Error> {
5245        let _response = self
5246            .client
5247            .send_query::<RunnerIsTestEnabledRequest, RunnerIsTestEnabledResponse, RunnerMarker>(
5248                (test,),
5249                0x755bc493368d7c50,
5250                fidl::encoding::DynamicFlags::empty(),
5251                ___deadline,
5252            )?;
5253        Ok(_response.is_enabled)
5254    }
5255
5256    pub fn r#check_alive(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
5257        let _response = self
5258            .client
5259            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload, RunnerMarker>(
5260                (),
5261                0x5a77b04abdfde130,
5262                fidl::encoding::DynamicFlags::empty(),
5263                ___deadline,
5264            )?;
5265        Ok(_response)
5266    }
5267
5268    pub fn r#get_bindings_properties(
5269        &self,
5270        ___deadline: zx::MonotonicInstant,
5271    ) -> Result<BindingsProperties, fidl::Error> {
5272        let _response = self
5273            .client
5274            .send_query::<fidl::encoding::EmptyPayload, BindingsProperties, RunnerMarker>(
5275                (),
5276                0x76b5610bfd4fa636,
5277                fidl::encoding::DynamicFlags::empty(),
5278                ___deadline,
5279            )?;
5280        Ok(_response)
5281    }
5282
5283    pub fn r#call_two_way_no_payload(
5284        &self,
5285        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5286        ___deadline: zx::MonotonicInstant,
5287    ) -> Result<EmptyResultClassification, fidl::Error> {
5288        let _response = self.client.send_query::<
5289            RunnerCallTwoWayNoPayloadRequest,
5290            EmptyResultClassification,
5291            RunnerMarker,
5292        >(
5293            (target,),
5294            0x53ac710c20b320a1,
5295            fidl::encoding::DynamicFlags::empty(),
5296            ___deadline,
5297        )?;
5298        Ok(_response)
5299    }
5300
5301    pub fn r#call_two_way_struct_payload(
5302        &self,
5303        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5304        ___deadline: zx::MonotonicInstant,
5305    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5306        let _response = self.client.send_query::<
5307            RunnerCallTwoWayStructPayloadRequest,
5308            NonEmptyResultClassification,
5309            RunnerMarker,
5310        >(
5311            (target,),
5312            0x24e98c668499b946,
5313            fidl::encoding::DynamicFlags::empty(),
5314            ___deadline,
5315        )?;
5316        Ok(_response)
5317    }
5318
5319    pub fn r#call_two_way_table_payload(
5320        &self,
5321        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5322        ___deadline: zx::MonotonicInstant,
5323    ) -> Result<TableResultClassification, fidl::Error> {
5324        let _response = self.client.send_query::<
5325            RunnerCallTwoWayTablePayloadRequest,
5326            TableResultClassification,
5327            RunnerMarker,
5328        >(
5329            (target,),
5330            0x72e428e1605b76a,
5331            fidl::encoding::DynamicFlags::empty(),
5332            ___deadline,
5333        )?;
5334        Ok(_response)
5335    }
5336
5337    pub fn r#call_two_way_union_payload(
5338        &self,
5339        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5340        ___deadline: zx::MonotonicInstant,
5341    ) -> Result<UnionResultClassification, fidl::Error> {
5342        let _response = self.client.send_query::<
5343            RunnerCallTwoWayUnionPayloadRequest,
5344            UnionResultClassification,
5345            RunnerMarker,
5346        >(
5347            (target,),
5348            0x7dc9d67218343860,
5349            fidl::encoding::DynamicFlags::empty(),
5350            ___deadline,
5351        )?;
5352        Ok(_response)
5353    }
5354
5355    pub fn r#call_two_way_struct_payload_err(
5356        &self,
5357        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5358        ___deadline: zx::MonotonicInstant,
5359    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5360        let _response = self.client.send_query::<
5361            RunnerCallTwoWayStructPayloadErrRequest,
5362            NonEmptyResultWithErrorClassification,
5363            RunnerMarker,
5364        >(
5365            (target,),
5366            0x2b07a57942c5f6e5,
5367            fidl::encoding::DynamicFlags::empty(),
5368            ___deadline,
5369        )?;
5370        Ok(_response)
5371    }
5372
5373    pub fn r#call_two_way_struct_request(
5374        &self,
5375        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5376        mut request: &NonEmptyPayload,
5377        ___deadline: zx::MonotonicInstant,
5378    ) -> Result<EmptyResultClassification, fidl::Error> {
5379        let _response = self.client.send_query::<
5380            RunnerCallTwoWayStructRequestRequest,
5381            EmptyResultClassification,
5382            RunnerMarker,
5383        >(
5384            (target, request,),
5385            0x7c00a6ba2e6c9b45,
5386            fidl::encoding::DynamicFlags::empty(),
5387            ___deadline,
5388        )?;
5389        Ok(_response)
5390    }
5391
5392    pub fn r#call_two_way_table_request(
5393        &self,
5394        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5395        mut request: &TablePayload,
5396        ___deadline: zx::MonotonicInstant,
5397    ) -> Result<EmptyResultClassification, fidl::Error> {
5398        let _response = self.client.send_query::<
5399            RunnerCallTwoWayTableRequestRequest,
5400            EmptyResultClassification,
5401            RunnerMarker,
5402        >(
5403            (target, request,),
5404            0x641763237d3885be,
5405            fidl::encoding::DynamicFlags::empty(),
5406            ___deadline,
5407        )?;
5408        Ok(_response)
5409    }
5410
5411    pub fn r#call_two_way_union_request(
5412        &self,
5413        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5414        mut request: &UnionPayload,
5415        ___deadline: zx::MonotonicInstant,
5416    ) -> Result<EmptyResultClassification, fidl::Error> {
5417        let _response = self.client.send_query::<
5418            RunnerCallTwoWayUnionRequestRequest,
5419            EmptyResultClassification,
5420            RunnerMarker,
5421        >(
5422            (target, request,),
5423            0x4be5f061df42619e,
5424            fidl::encoding::DynamicFlags::empty(),
5425            ___deadline,
5426        )?;
5427        Ok(_response)
5428    }
5429
5430    pub fn r#call_one_way_no_request(
5431        &self,
5432        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5433        ___deadline: zx::MonotonicInstant,
5434    ) -> Result<EmptyResultClassification, fidl::Error> {
5435        let _response = self.client.send_query::<
5436            RunnerCallOneWayNoRequestRequest,
5437            EmptyResultClassification,
5438            RunnerMarker,
5439        >(
5440            (target,),
5441            0x24b6eea8cbdccc09,
5442            fidl::encoding::DynamicFlags::empty(),
5443            ___deadline,
5444        )?;
5445        Ok(_response)
5446    }
5447
5448    pub fn r#call_one_way_struct_request(
5449        &self,
5450        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5451        mut request: &NonEmptyPayload,
5452        ___deadline: zx::MonotonicInstant,
5453    ) -> Result<EmptyResultClassification, fidl::Error> {
5454        let _response = self.client.send_query::<
5455            RunnerCallOneWayStructRequestRequest,
5456            EmptyResultClassification,
5457            RunnerMarker,
5458        >(
5459            (target, request,),
5460            0x352a2907a0fcb420,
5461            fidl::encoding::DynamicFlags::empty(),
5462            ___deadline,
5463        )?;
5464        Ok(_response)
5465    }
5466
5467    pub fn r#call_one_way_table_request(
5468        &self,
5469        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5470        mut request: &TablePayload,
5471        ___deadline: zx::MonotonicInstant,
5472    ) -> Result<EmptyResultClassification, fidl::Error> {
5473        let _response = self.client.send_query::<
5474            RunnerCallOneWayTableRequestRequest,
5475            EmptyResultClassification,
5476            RunnerMarker,
5477        >(
5478            (target, request,),
5479            0x734121bf8bf336ef,
5480            fidl::encoding::DynamicFlags::empty(),
5481            ___deadline,
5482        )?;
5483        Ok(_response)
5484    }
5485
5486    pub fn r#call_one_way_union_request(
5487        &self,
5488        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5489        mut request: &UnionPayload,
5490        ___deadline: zx::MonotonicInstant,
5491    ) -> Result<EmptyResultClassification, fidl::Error> {
5492        let _response = self.client.send_query::<
5493            RunnerCallOneWayUnionRequestRequest,
5494            EmptyResultClassification,
5495            RunnerMarker,
5496        >(
5497            (target, request,),
5498            0x9be8e5eb7d50eb6,
5499            fidl::encoding::DynamicFlags::empty(),
5500            ___deadline,
5501        )?;
5502        Ok(_response)
5503    }
5504
5505    pub fn r#call_strict_one_way(
5506        &self,
5507        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5508        ___deadline: zx::MonotonicInstant,
5509    ) -> Result<EmptyResultClassification, fidl::Error> {
5510        let _response = self
5511            .client
5512            .send_query::<RunnerCallStrictOneWayRequest, EmptyResultClassification, RunnerMarker>(
5513                (target,),
5514                0x4edd0b6f52c0446b,
5515                fidl::encoding::DynamicFlags::empty(),
5516                ___deadline,
5517            )?;
5518        Ok(_response)
5519    }
5520
5521    pub fn r#call_flexible_one_way(
5522        &self,
5523        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5524        ___deadline: zx::MonotonicInstant,
5525    ) -> Result<EmptyResultClassification, fidl::Error> {
5526        let _response = self
5527            .client
5528            .send_query::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification, RunnerMarker>(
5529                (target,),
5530                0x7253f10a77dfe817,
5531                fidl::encoding::DynamicFlags::empty(),
5532                ___deadline,
5533            )?;
5534        Ok(_response)
5535    }
5536
5537    pub fn r#call_strict_two_way(
5538        &self,
5539        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5540        ___deadline: zx::MonotonicInstant,
5541    ) -> Result<EmptyResultClassification, fidl::Error> {
5542        let _response = self
5543            .client
5544            .send_query::<RunnerCallStrictTwoWayRequest, EmptyResultClassification, RunnerMarker>(
5545                (target,),
5546                0x1fa9fb7414aedd27,
5547                fidl::encoding::DynamicFlags::empty(),
5548                ___deadline,
5549            )?;
5550        Ok(_response)
5551    }
5552
5553    pub fn r#call_strict_two_way_fields(
5554        &self,
5555        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5556        ___deadline: zx::MonotonicInstant,
5557    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5558        let _response = self.client.send_query::<
5559            RunnerCallStrictTwoWayFieldsRequest,
5560            NonEmptyResultClassification,
5561            RunnerMarker,
5562        >(
5563            (target,),
5564            0x6f690e00ebf6f123,
5565            fidl::encoding::DynamicFlags::empty(),
5566            ___deadline,
5567        )?;
5568        Ok(_response)
5569    }
5570
5571    pub fn r#call_strict_two_way_err(
5572        &self,
5573        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5574        ___deadline: zx::MonotonicInstant,
5575    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5576        let _response = self.client.send_query::<
5577            RunnerCallStrictTwoWayErrRequest,
5578            EmptyResultWithErrorClassification,
5579            RunnerMarker,
5580        >(
5581            (target,),
5582            0x51d6bc7cf6cbaf1a,
5583            fidl::encoding::DynamicFlags::empty(),
5584            ___deadline,
5585        )?;
5586        Ok(_response)
5587    }
5588
5589    pub fn r#call_strict_two_way_fields_err(
5590        &self,
5591        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5592        ___deadline: zx::MonotonicInstant,
5593    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5594        let _response = self.client.send_query::<
5595            RunnerCallStrictTwoWayFieldsErrRequest,
5596            NonEmptyResultWithErrorClassification,
5597            RunnerMarker,
5598        >(
5599            (target,),
5600            0x6fa31ced05074c05,
5601            fidl::encoding::DynamicFlags::empty(),
5602            ___deadline,
5603        )?;
5604        Ok(_response)
5605    }
5606
5607    pub fn r#call_flexible_two_way(
5608        &self,
5609        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5610        ___deadline: zx::MonotonicInstant,
5611    ) -> Result<EmptyResultClassification, fidl::Error> {
5612        let _response = self
5613            .client
5614            .send_query::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification, RunnerMarker>(
5615                (target,),
5616                0x411f70724876d49,
5617                fidl::encoding::DynamicFlags::empty(),
5618                ___deadline,
5619            )?;
5620        Ok(_response)
5621    }
5622
5623    pub fn r#call_flexible_two_way_fields(
5624        &self,
5625        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5626        ___deadline: zx::MonotonicInstant,
5627    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5628        let _response = self.client.send_query::<
5629            RunnerCallFlexibleTwoWayFieldsRequest,
5630            NonEmptyResultClassification,
5631            RunnerMarker,
5632        >(
5633            (target,),
5634            0x330996b623598eed,
5635            fidl::encoding::DynamicFlags::empty(),
5636            ___deadline,
5637        )?;
5638        Ok(_response)
5639    }
5640
5641    pub fn r#call_flexible_two_way_err(
5642        &self,
5643        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5644        ___deadline: zx::MonotonicInstant,
5645    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5646        let _response = self.client.send_query::<
5647            RunnerCallFlexibleTwoWayErrRequest,
5648            EmptyResultWithErrorClassification,
5649            RunnerMarker,
5650        >(
5651            (target,),
5652            0x5ddbf88a353a2a57,
5653            fidl::encoding::DynamicFlags::empty(),
5654            ___deadline,
5655        )?;
5656        Ok(_response)
5657    }
5658
5659    pub fn r#call_flexible_two_way_fields_err(
5660        &self,
5661        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5662        ___deadline: zx::MonotonicInstant,
5663    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5664        let _response = self.client.send_query::<
5665            RunnerCallFlexibleTwoWayFieldsErrRequest,
5666            NonEmptyResultWithErrorClassification,
5667            RunnerMarker,
5668        >(
5669            (target,),
5670            0x7ae309383b07048e,
5671            fidl::encoding::DynamicFlags::empty(),
5672            ___deadline,
5673        )?;
5674        Ok(_response)
5675    }
5676
5677    pub fn r#receive_closed_events(
5678        &self,
5679        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5680        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5681        ___deadline: zx::MonotonicInstant,
5682    ) -> Result<(), fidl::Error> {
5683        let _response = self.client.send_query::<
5684            RunnerReceiveClosedEventsRequest,
5685            fidl::encoding::EmptyPayload,
5686            RunnerMarker,
5687        >(
5688            (target, reporter,),
5689            0x48da834910571aeb,
5690            fidl::encoding::DynamicFlags::empty(),
5691            ___deadline,
5692        )?;
5693        Ok(_response)
5694    }
5695
5696    pub fn r#receive_ajar_events(
5697        &self,
5698        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5699        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5700        ___deadline: zx::MonotonicInstant,
5701    ) -> Result<(), fidl::Error> {
5702        let _response = self.client.send_query::<
5703            RunnerReceiveAjarEventsRequest,
5704            fidl::encoding::EmptyPayload,
5705            RunnerMarker,
5706        >(
5707            (target, reporter,),
5708            0xc5662b9a9c007a3,
5709            fidl::encoding::DynamicFlags::empty(),
5710            ___deadline,
5711        )?;
5712        Ok(_response)
5713    }
5714
5715    pub fn r#receive_open_events(
5716        &self,
5717        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5718        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5719        ___deadline: zx::MonotonicInstant,
5720    ) -> Result<(), fidl::Error> {
5721        let _response = self.client.send_query::<
5722            RunnerReceiveOpenEventsRequest,
5723            fidl::encoding::EmptyPayload,
5724            RunnerMarker,
5725        >(
5726            (target, reporter,),
5727            0x79a7073fd18edbdf,
5728            fidl::encoding::DynamicFlags::empty(),
5729            ___deadline,
5730        )?;
5731        Ok(_response)
5732    }
5733}
5734
5735#[cfg(target_os = "fuchsia")]
5736impl From<RunnerSynchronousProxy> for zx::NullableHandle {
5737    fn from(value: RunnerSynchronousProxy) -> Self {
5738        value.into_channel().into()
5739    }
5740}
5741
5742#[cfg(target_os = "fuchsia")]
5743impl From<fidl::Channel> for RunnerSynchronousProxy {
5744    fn from(value: fidl::Channel) -> Self {
5745        Self::new(value)
5746    }
5747}
5748
5749#[cfg(target_os = "fuchsia")]
5750impl fidl::endpoints::FromClient for RunnerSynchronousProxy {
5751    type Protocol = RunnerMarker;
5752
5753    fn from_client(value: fidl::endpoints::ClientEnd<RunnerMarker>) -> Self {
5754        Self::new(value.into_channel())
5755    }
5756}
5757
5758#[derive(Debug, Clone)]
5759pub struct RunnerProxy {
5760    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5761}
5762
5763impl fidl::endpoints::Proxy for RunnerProxy {
5764    type Protocol = RunnerMarker;
5765
5766    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5767        Self::new(inner)
5768    }
5769
5770    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5771        self.client.into_channel().map_err(|client| Self { client })
5772    }
5773
5774    fn as_channel(&self) -> &::fidl::AsyncChannel {
5775        self.client.as_channel()
5776    }
5777}
5778
5779impl RunnerProxy {
5780    /// Create a new Proxy for fidl.clientsuite/Runner.
5781    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5782        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5783        Self { client: fidl::client::Client::new(channel, protocol_name) }
5784    }
5785
5786    /// Get a Stream of events from the remote end of the protocol.
5787    ///
5788    /// # Panics
5789    ///
5790    /// Panics if the event stream was already taken.
5791    pub fn take_event_stream(&self) -> RunnerEventStream {
5792        RunnerEventStream { event_receiver: self.client.take_event_receiver() }
5793    }
5794
5795    pub fn r#get_version(
5796        &self,
5797    ) -> fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect> {
5798        RunnerProxyInterface::r#get_version(self)
5799    }
5800
5801    pub fn r#is_test_enabled(
5802        &self,
5803        mut test: Test,
5804    ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
5805        RunnerProxyInterface::r#is_test_enabled(self, test)
5806    }
5807
5808    pub fn r#check_alive(
5809        &self,
5810    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5811        RunnerProxyInterface::r#check_alive(self)
5812    }
5813
5814    pub fn r#get_bindings_properties(
5815        &self,
5816    ) -> fidl::client::QueryResponseFut<
5817        BindingsProperties,
5818        fidl::encoding::DefaultFuchsiaResourceDialect,
5819    > {
5820        RunnerProxyInterface::r#get_bindings_properties(self)
5821    }
5822
5823    pub fn r#call_two_way_no_payload(
5824        &self,
5825        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5826    ) -> fidl::client::QueryResponseFut<
5827        EmptyResultClassification,
5828        fidl::encoding::DefaultFuchsiaResourceDialect,
5829    > {
5830        RunnerProxyInterface::r#call_two_way_no_payload(self, target)
5831    }
5832
5833    pub fn r#call_two_way_struct_payload(
5834        &self,
5835        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5836    ) -> fidl::client::QueryResponseFut<
5837        NonEmptyResultClassification,
5838        fidl::encoding::DefaultFuchsiaResourceDialect,
5839    > {
5840        RunnerProxyInterface::r#call_two_way_struct_payload(self, target)
5841    }
5842
5843    pub fn r#call_two_way_table_payload(
5844        &self,
5845        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5846    ) -> fidl::client::QueryResponseFut<
5847        TableResultClassification,
5848        fidl::encoding::DefaultFuchsiaResourceDialect,
5849    > {
5850        RunnerProxyInterface::r#call_two_way_table_payload(self, target)
5851    }
5852
5853    pub fn r#call_two_way_union_payload(
5854        &self,
5855        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5856    ) -> fidl::client::QueryResponseFut<
5857        UnionResultClassification,
5858        fidl::encoding::DefaultFuchsiaResourceDialect,
5859    > {
5860        RunnerProxyInterface::r#call_two_way_union_payload(self, target)
5861    }
5862
5863    pub fn r#call_two_way_struct_payload_err(
5864        &self,
5865        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5866    ) -> fidl::client::QueryResponseFut<
5867        NonEmptyResultWithErrorClassification,
5868        fidl::encoding::DefaultFuchsiaResourceDialect,
5869    > {
5870        RunnerProxyInterface::r#call_two_way_struct_payload_err(self, target)
5871    }
5872
5873    pub fn r#call_two_way_struct_request(
5874        &self,
5875        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5876        mut request: &NonEmptyPayload,
5877    ) -> fidl::client::QueryResponseFut<
5878        EmptyResultClassification,
5879        fidl::encoding::DefaultFuchsiaResourceDialect,
5880    > {
5881        RunnerProxyInterface::r#call_two_way_struct_request(self, target, request)
5882    }
5883
5884    pub fn r#call_two_way_table_request(
5885        &self,
5886        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5887        mut request: &TablePayload,
5888    ) -> fidl::client::QueryResponseFut<
5889        EmptyResultClassification,
5890        fidl::encoding::DefaultFuchsiaResourceDialect,
5891    > {
5892        RunnerProxyInterface::r#call_two_way_table_request(self, target, request)
5893    }
5894
5895    pub fn r#call_two_way_union_request(
5896        &self,
5897        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5898        mut request: &UnionPayload,
5899    ) -> fidl::client::QueryResponseFut<
5900        EmptyResultClassification,
5901        fidl::encoding::DefaultFuchsiaResourceDialect,
5902    > {
5903        RunnerProxyInterface::r#call_two_way_union_request(self, target, request)
5904    }
5905
5906    pub fn r#call_one_way_no_request(
5907        &self,
5908        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5909    ) -> fidl::client::QueryResponseFut<
5910        EmptyResultClassification,
5911        fidl::encoding::DefaultFuchsiaResourceDialect,
5912    > {
5913        RunnerProxyInterface::r#call_one_way_no_request(self, target)
5914    }
5915
5916    pub fn r#call_one_way_struct_request(
5917        &self,
5918        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5919        mut request: &NonEmptyPayload,
5920    ) -> fidl::client::QueryResponseFut<
5921        EmptyResultClassification,
5922        fidl::encoding::DefaultFuchsiaResourceDialect,
5923    > {
5924        RunnerProxyInterface::r#call_one_way_struct_request(self, target, request)
5925    }
5926
5927    pub fn r#call_one_way_table_request(
5928        &self,
5929        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5930        mut request: &TablePayload,
5931    ) -> fidl::client::QueryResponseFut<
5932        EmptyResultClassification,
5933        fidl::encoding::DefaultFuchsiaResourceDialect,
5934    > {
5935        RunnerProxyInterface::r#call_one_way_table_request(self, target, request)
5936    }
5937
5938    pub fn r#call_one_way_union_request(
5939        &self,
5940        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5941        mut request: &UnionPayload,
5942    ) -> fidl::client::QueryResponseFut<
5943        EmptyResultClassification,
5944        fidl::encoding::DefaultFuchsiaResourceDialect,
5945    > {
5946        RunnerProxyInterface::r#call_one_way_union_request(self, target, request)
5947    }
5948
5949    pub fn r#call_strict_one_way(
5950        &self,
5951        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5952    ) -> fidl::client::QueryResponseFut<
5953        EmptyResultClassification,
5954        fidl::encoding::DefaultFuchsiaResourceDialect,
5955    > {
5956        RunnerProxyInterface::r#call_strict_one_way(self, target)
5957    }
5958
5959    pub fn r#call_flexible_one_way(
5960        &self,
5961        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5962    ) -> fidl::client::QueryResponseFut<
5963        EmptyResultClassification,
5964        fidl::encoding::DefaultFuchsiaResourceDialect,
5965    > {
5966        RunnerProxyInterface::r#call_flexible_one_way(self, target)
5967    }
5968
5969    pub fn r#call_strict_two_way(
5970        &self,
5971        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5972    ) -> fidl::client::QueryResponseFut<
5973        EmptyResultClassification,
5974        fidl::encoding::DefaultFuchsiaResourceDialect,
5975    > {
5976        RunnerProxyInterface::r#call_strict_two_way(self, target)
5977    }
5978
5979    pub fn r#call_strict_two_way_fields(
5980        &self,
5981        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5982    ) -> fidl::client::QueryResponseFut<
5983        NonEmptyResultClassification,
5984        fidl::encoding::DefaultFuchsiaResourceDialect,
5985    > {
5986        RunnerProxyInterface::r#call_strict_two_way_fields(self, target)
5987    }
5988
5989    pub fn r#call_strict_two_way_err(
5990        &self,
5991        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5992    ) -> fidl::client::QueryResponseFut<
5993        EmptyResultWithErrorClassification,
5994        fidl::encoding::DefaultFuchsiaResourceDialect,
5995    > {
5996        RunnerProxyInterface::r#call_strict_two_way_err(self, target)
5997    }
5998
5999    pub fn r#call_strict_two_way_fields_err(
6000        &self,
6001        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6002    ) -> fidl::client::QueryResponseFut<
6003        NonEmptyResultWithErrorClassification,
6004        fidl::encoding::DefaultFuchsiaResourceDialect,
6005    > {
6006        RunnerProxyInterface::r#call_strict_two_way_fields_err(self, target)
6007    }
6008
6009    pub fn r#call_flexible_two_way(
6010        &self,
6011        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6012    ) -> fidl::client::QueryResponseFut<
6013        EmptyResultClassification,
6014        fidl::encoding::DefaultFuchsiaResourceDialect,
6015    > {
6016        RunnerProxyInterface::r#call_flexible_two_way(self, target)
6017    }
6018
6019    pub fn r#call_flexible_two_way_fields(
6020        &self,
6021        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6022    ) -> fidl::client::QueryResponseFut<
6023        NonEmptyResultClassification,
6024        fidl::encoding::DefaultFuchsiaResourceDialect,
6025    > {
6026        RunnerProxyInterface::r#call_flexible_two_way_fields(self, target)
6027    }
6028
6029    pub fn r#call_flexible_two_way_err(
6030        &self,
6031        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6032    ) -> fidl::client::QueryResponseFut<
6033        EmptyResultWithErrorClassification,
6034        fidl::encoding::DefaultFuchsiaResourceDialect,
6035    > {
6036        RunnerProxyInterface::r#call_flexible_two_way_err(self, target)
6037    }
6038
6039    pub fn r#call_flexible_two_way_fields_err(
6040        &self,
6041        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6042    ) -> fidl::client::QueryResponseFut<
6043        NonEmptyResultWithErrorClassification,
6044        fidl::encoding::DefaultFuchsiaResourceDialect,
6045    > {
6046        RunnerProxyInterface::r#call_flexible_two_way_fields_err(self, target)
6047    }
6048
6049    pub fn r#receive_closed_events(
6050        &self,
6051        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6052        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
6053    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6054        RunnerProxyInterface::r#receive_closed_events(self, target, reporter)
6055    }
6056
6057    pub fn r#receive_ajar_events(
6058        &self,
6059        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
6060        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
6061    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6062        RunnerProxyInterface::r#receive_ajar_events(self, target, reporter)
6063    }
6064
6065    pub fn r#receive_open_events(
6066        &self,
6067        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6068        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
6069    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6070        RunnerProxyInterface::r#receive_open_events(self, target, reporter)
6071    }
6072}
6073
6074impl RunnerProxyInterface for RunnerProxy {
6075    type GetVersionResponseFut =
6076        fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect>;
6077    fn r#get_version(&self) -> Self::GetVersionResponseFut {
6078        fn _decode(
6079            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6080        ) -> Result<u64, fidl::Error> {
6081            let _response = fidl::client::decode_transaction_body::<
6082                RunnerGetVersionResponse,
6083                fidl::encoding::DefaultFuchsiaResourceDialect,
6084                0x555d1430b913cdd4,
6085            >(_buf?)?;
6086            Ok(_response.version)
6087        }
6088        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, u64>(
6089            (),
6090            0x555d1430b913cdd4,
6091            fidl::encoding::DynamicFlags::empty(),
6092            _decode,
6093        )
6094    }
6095
6096    type IsTestEnabledResponseFut =
6097        fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
6098    fn r#is_test_enabled(&self, mut test: Test) -> Self::IsTestEnabledResponseFut {
6099        fn _decode(
6100            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6101        ) -> Result<bool, fidl::Error> {
6102            let _response = fidl::client::decode_transaction_body::<
6103                RunnerIsTestEnabledResponse,
6104                fidl::encoding::DefaultFuchsiaResourceDialect,
6105                0x755bc493368d7c50,
6106            >(_buf?)?;
6107            Ok(_response.is_enabled)
6108        }
6109        self.client.send_query_and_decode::<RunnerIsTestEnabledRequest, bool>(
6110            (test,),
6111            0x755bc493368d7c50,
6112            fidl::encoding::DynamicFlags::empty(),
6113            _decode,
6114        )
6115    }
6116
6117    type CheckAliveResponseFut =
6118        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6119    fn r#check_alive(&self) -> Self::CheckAliveResponseFut {
6120        fn _decode(
6121            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6122        ) -> Result<(), fidl::Error> {
6123            let _response = fidl::client::decode_transaction_body::<
6124                fidl::encoding::EmptyPayload,
6125                fidl::encoding::DefaultFuchsiaResourceDialect,
6126                0x5a77b04abdfde130,
6127            >(_buf?)?;
6128            Ok(_response)
6129        }
6130        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
6131            (),
6132            0x5a77b04abdfde130,
6133            fidl::encoding::DynamicFlags::empty(),
6134            _decode,
6135        )
6136    }
6137
6138    type GetBindingsPropertiesResponseFut = fidl::client::QueryResponseFut<
6139        BindingsProperties,
6140        fidl::encoding::DefaultFuchsiaResourceDialect,
6141    >;
6142    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut {
6143        fn _decode(
6144            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6145        ) -> Result<BindingsProperties, fidl::Error> {
6146            let _response = fidl::client::decode_transaction_body::<
6147                BindingsProperties,
6148                fidl::encoding::DefaultFuchsiaResourceDialect,
6149                0x76b5610bfd4fa636,
6150            >(_buf?)?;
6151            Ok(_response)
6152        }
6153        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BindingsProperties>(
6154            (),
6155            0x76b5610bfd4fa636,
6156            fidl::encoding::DynamicFlags::empty(),
6157            _decode,
6158        )
6159    }
6160
6161    type CallTwoWayNoPayloadResponseFut = fidl::client::QueryResponseFut<
6162        EmptyResultClassification,
6163        fidl::encoding::DefaultFuchsiaResourceDialect,
6164    >;
6165    fn r#call_two_way_no_payload(
6166        &self,
6167        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6168    ) -> Self::CallTwoWayNoPayloadResponseFut {
6169        fn _decode(
6170            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6171        ) -> Result<EmptyResultClassification, fidl::Error> {
6172            let _response = fidl::client::decode_transaction_body::<
6173                EmptyResultClassification,
6174                fidl::encoding::DefaultFuchsiaResourceDialect,
6175                0x53ac710c20b320a1,
6176            >(_buf?)?;
6177            Ok(_response)
6178        }
6179        self.client
6180            .send_query_and_decode::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
6181                (target,),
6182                0x53ac710c20b320a1,
6183                fidl::encoding::DynamicFlags::empty(),
6184                _decode,
6185            )
6186    }
6187
6188    type CallTwoWayStructPayloadResponseFut = fidl::client::QueryResponseFut<
6189        NonEmptyResultClassification,
6190        fidl::encoding::DefaultFuchsiaResourceDialect,
6191    >;
6192    fn r#call_two_way_struct_payload(
6193        &self,
6194        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6195    ) -> Self::CallTwoWayStructPayloadResponseFut {
6196        fn _decode(
6197            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6198        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6199            let _response = fidl::client::decode_transaction_body::<
6200                NonEmptyResultClassification,
6201                fidl::encoding::DefaultFuchsiaResourceDialect,
6202                0x24e98c668499b946,
6203            >(_buf?)?;
6204            Ok(_response)
6205        }
6206        self.client.send_query_and_decode::<
6207            RunnerCallTwoWayStructPayloadRequest,
6208            NonEmptyResultClassification,
6209        >(
6210            (target,),
6211            0x24e98c668499b946,
6212            fidl::encoding::DynamicFlags::empty(),
6213            _decode,
6214        )
6215    }
6216
6217    type CallTwoWayTablePayloadResponseFut = fidl::client::QueryResponseFut<
6218        TableResultClassification,
6219        fidl::encoding::DefaultFuchsiaResourceDialect,
6220    >;
6221    fn r#call_two_way_table_payload(
6222        &self,
6223        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6224    ) -> Self::CallTwoWayTablePayloadResponseFut {
6225        fn _decode(
6226            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6227        ) -> Result<TableResultClassification, fidl::Error> {
6228            let _response = fidl::client::decode_transaction_body::<
6229                TableResultClassification,
6230                fidl::encoding::DefaultFuchsiaResourceDialect,
6231                0x72e428e1605b76a,
6232            >(_buf?)?;
6233            Ok(_response)
6234        }
6235        self.client.send_query_and_decode::<
6236            RunnerCallTwoWayTablePayloadRequest,
6237            TableResultClassification,
6238        >(
6239            (target,),
6240            0x72e428e1605b76a,
6241            fidl::encoding::DynamicFlags::empty(),
6242            _decode,
6243        )
6244    }
6245
6246    type CallTwoWayUnionPayloadResponseFut = fidl::client::QueryResponseFut<
6247        UnionResultClassification,
6248        fidl::encoding::DefaultFuchsiaResourceDialect,
6249    >;
6250    fn r#call_two_way_union_payload(
6251        &self,
6252        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6253    ) -> Self::CallTwoWayUnionPayloadResponseFut {
6254        fn _decode(
6255            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6256        ) -> Result<UnionResultClassification, fidl::Error> {
6257            let _response = fidl::client::decode_transaction_body::<
6258                UnionResultClassification,
6259                fidl::encoding::DefaultFuchsiaResourceDialect,
6260                0x7dc9d67218343860,
6261            >(_buf?)?;
6262            Ok(_response)
6263        }
6264        self.client.send_query_and_decode::<
6265            RunnerCallTwoWayUnionPayloadRequest,
6266            UnionResultClassification,
6267        >(
6268            (target,),
6269            0x7dc9d67218343860,
6270            fidl::encoding::DynamicFlags::empty(),
6271            _decode,
6272        )
6273    }
6274
6275    type CallTwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
6276        NonEmptyResultWithErrorClassification,
6277        fidl::encoding::DefaultFuchsiaResourceDialect,
6278    >;
6279    fn r#call_two_way_struct_payload_err(
6280        &self,
6281        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6282    ) -> Self::CallTwoWayStructPayloadErrResponseFut {
6283        fn _decode(
6284            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6285        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6286            let _response = fidl::client::decode_transaction_body::<
6287                NonEmptyResultWithErrorClassification,
6288                fidl::encoding::DefaultFuchsiaResourceDialect,
6289                0x2b07a57942c5f6e5,
6290            >(_buf?)?;
6291            Ok(_response)
6292        }
6293        self.client.send_query_and_decode::<
6294            RunnerCallTwoWayStructPayloadErrRequest,
6295            NonEmptyResultWithErrorClassification,
6296        >(
6297            (target,),
6298            0x2b07a57942c5f6e5,
6299            fidl::encoding::DynamicFlags::empty(),
6300            _decode,
6301        )
6302    }
6303
6304    type CallTwoWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6305        EmptyResultClassification,
6306        fidl::encoding::DefaultFuchsiaResourceDialect,
6307    >;
6308    fn r#call_two_way_struct_request(
6309        &self,
6310        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6311        mut request: &NonEmptyPayload,
6312    ) -> Self::CallTwoWayStructRequestResponseFut {
6313        fn _decode(
6314            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6315        ) -> Result<EmptyResultClassification, fidl::Error> {
6316            let _response = fidl::client::decode_transaction_body::<
6317                EmptyResultClassification,
6318                fidl::encoding::DefaultFuchsiaResourceDialect,
6319                0x7c00a6ba2e6c9b45,
6320            >(_buf?)?;
6321            Ok(_response)
6322        }
6323        self.client.send_query_and_decode::<
6324            RunnerCallTwoWayStructRequestRequest,
6325            EmptyResultClassification,
6326        >(
6327            (target, request,),
6328            0x7c00a6ba2e6c9b45,
6329            fidl::encoding::DynamicFlags::empty(),
6330            _decode,
6331        )
6332    }
6333
6334    type CallTwoWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6335        EmptyResultClassification,
6336        fidl::encoding::DefaultFuchsiaResourceDialect,
6337    >;
6338    fn r#call_two_way_table_request(
6339        &self,
6340        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6341        mut request: &TablePayload,
6342    ) -> Self::CallTwoWayTableRequestResponseFut {
6343        fn _decode(
6344            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6345        ) -> Result<EmptyResultClassification, fidl::Error> {
6346            let _response = fidl::client::decode_transaction_body::<
6347                EmptyResultClassification,
6348                fidl::encoding::DefaultFuchsiaResourceDialect,
6349                0x641763237d3885be,
6350            >(_buf?)?;
6351            Ok(_response)
6352        }
6353        self.client.send_query_and_decode::<
6354            RunnerCallTwoWayTableRequestRequest,
6355            EmptyResultClassification,
6356        >(
6357            (target, request,),
6358            0x641763237d3885be,
6359            fidl::encoding::DynamicFlags::empty(),
6360            _decode,
6361        )
6362    }
6363
6364    type CallTwoWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6365        EmptyResultClassification,
6366        fidl::encoding::DefaultFuchsiaResourceDialect,
6367    >;
6368    fn r#call_two_way_union_request(
6369        &self,
6370        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6371        mut request: &UnionPayload,
6372    ) -> Self::CallTwoWayUnionRequestResponseFut {
6373        fn _decode(
6374            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6375        ) -> Result<EmptyResultClassification, fidl::Error> {
6376            let _response = fidl::client::decode_transaction_body::<
6377                EmptyResultClassification,
6378                fidl::encoding::DefaultFuchsiaResourceDialect,
6379                0x4be5f061df42619e,
6380            >(_buf?)?;
6381            Ok(_response)
6382        }
6383        self.client.send_query_and_decode::<
6384            RunnerCallTwoWayUnionRequestRequest,
6385            EmptyResultClassification,
6386        >(
6387            (target, request,),
6388            0x4be5f061df42619e,
6389            fidl::encoding::DynamicFlags::empty(),
6390            _decode,
6391        )
6392    }
6393
6394    type CallOneWayNoRequestResponseFut = fidl::client::QueryResponseFut<
6395        EmptyResultClassification,
6396        fidl::encoding::DefaultFuchsiaResourceDialect,
6397    >;
6398    fn r#call_one_way_no_request(
6399        &self,
6400        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6401    ) -> Self::CallOneWayNoRequestResponseFut {
6402        fn _decode(
6403            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6404        ) -> Result<EmptyResultClassification, fidl::Error> {
6405            let _response = fidl::client::decode_transaction_body::<
6406                EmptyResultClassification,
6407                fidl::encoding::DefaultFuchsiaResourceDialect,
6408                0x24b6eea8cbdccc09,
6409            >(_buf?)?;
6410            Ok(_response)
6411        }
6412        self.client
6413            .send_query_and_decode::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
6414                (target,),
6415                0x24b6eea8cbdccc09,
6416                fidl::encoding::DynamicFlags::empty(),
6417                _decode,
6418            )
6419    }
6420
6421    type CallOneWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6422        EmptyResultClassification,
6423        fidl::encoding::DefaultFuchsiaResourceDialect,
6424    >;
6425    fn r#call_one_way_struct_request(
6426        &self,
6427        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6428        mut request: &NonEmptyPayload,
6429    ) -> Self::CallOneWayStructRequestResponseFut {
6430        fn _decode(
6431            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6432        ) -> Result<EmptyResultClassification, fidl::Error> {
6433            let _response = fidl::client::decode_transaction_body::<
6434                EmptyResultClassification,
6435                fidl::encoding::DefaultFuchsiaResourceDialect,
6436                0x352a2907a0fcb420,
6437            >(_buf?)?;
6438            Ok(_response)
6439        }
6440        self.client.send_query_and_decode::<
6441            RunnerCallOneWayStructRequestRequest,
6442            EmptyResultClassification,
6443        >(
6444            (target, request,),
6445            0x352a2907a0fcb420,
6446            fidl::encoding::DynamicFlags::empty(),
6447            _decode,
6448        )
6449    }
6450
6451    type CallOneWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6452        EmptyResultClassification,
6453        fidl::encoding::DefaultFuchsiaResourceDialect,
6454    >;
6455    fn r#call_one_way_table_request(
6456        &self,
6457        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6458        mut request: &TablePayload,
6459    ) -> Self::CallOneWayTableRequestResponseFut {
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                0x734121bf8bf336ef,
6467            >(_buf?)?;
6468            Ok(_response)
6469        }
6470        self.client.send_query_and_decode::<
6471            RunnerCallOneWayTableRequestRequest,
6472            EmptyResultClassification,
6473        >(
6474            (target, request,),
6475            0x734121bf8bf336ef,
6476            fidl::encoding::DynamicFlags::empty(),
6477            _decode,
6478        )
6479    }
6480
6481    type CallOneWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6482        EmptyResultClassification,
6483        fidl::encoding::DefaultFuchsiaResourceDialect,
6484    >;
6485    fn r#call_one_way_union_request(
6486        &self,
6487        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6488        mut request: &UnionPayload,
6489    ) -> Self::CallOneWayUnionRequestResponseFut {
6490        fn _decode(
6491            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6492        ) -> Result<EmptyResultClassification, fidl::Error> {
6493            let _response = fidl::client::decode_transaction_body::<
6494                EmptyResultClassification,
6495                fidl::encoding::DefaultFuchsiaResourceDialect,
6496                0x9be8e5eb7d50eb6,
6497            >(_buf?)?;
6498            Ok(_response)
6499        }
6500        self.client.send_query_and_decode::<
6501            RunnerCallOneWayUnionRequestRequest,
6502            EmptyResultClassification,
6503        >(
6504            (target, request,),
6505            0x9be8e5eb7d50eb6,
6506            fidl::encoding::DynamicFlags::empty(),
6507            _decode,
6508        )
6509    }
6510
6511    type CallStrictOneWayResponseFut = fidl::client::QueryResponseFut<
6512        EmptyResultClassification,
6513        fidl::encoding::DefaultFuchsiaResourceDialect,
6514    >;
6515    fn r#call_strict_one_way(
6516        &self,
6517        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6518    ) -> Self::CallStrictOneWayResponseFut {
6519        fn _decode(
6520            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6521        ) -> Result<EmptyResultClassification, fidl::Error> {
6522            let _response = fidl::client::decode_transaction_body::<
6523                EmptyResultClassification,
6524                fidl::encoding::DefaultFuchsiaResourceDialect,
6525                0x4edd0b6f52c0446b,
6526            >(_buf?)?;
6527            Ok(_response)
6528        }
6529        self.client
6530            .send_query_and_decode::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
6531                (target,),
6532                0x4edd0b6f52c0446b,
6533                fidl::encoding::DynamicFlags::empty(),
6534                _decode,
6535            )
6536    }
6537
6538    type CallFlexibleOneWayResponseFut = fidl::client::QueryResponseFut<
6539        EmptyResultClassification,
6540        fidl::encoding::DefaultFuchsiaResourceDialect,
6541    >;
6542    fn r#call_flexible_one_way(
6543        &self,
6544        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6545    ) -> Self::CallFlexibleOneWayResponseFut {
6546        fn _decode(
6547            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6548        ) -> Result<EmptyResultClassification, fidl::Error> {
6549            let _response = fidl::client::decode_transaction_body::<
6550                EmptyResultClassification,
6551                fidl::encoding::DefaultFuchsiaResourceDialect,
6552                0x7253f10a77dfe817,
6553            >(_buf?)?;
6554            Ok(_response)
6555        }
6556        self.client
6557            .send_query_and_decode::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
6558                (target,),
6559                0x7253f10a77dfe817,
6560                fidl::encoding::DynamicFlags::empty(),
6561                _decode,
6562            )
6563    }
6564
6565    type CallStrictTwoWayResponseFut = fidl::client::QueryResponseFut<
6566        EmptyResultClassification,
6567        fidl::encoding::DefaultFuchsiaResourceDialect,
6568    >;
6569    fn r#call_strict_two_way(
6570        &self,
6571        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6572    ) -> Self::CallStrictTwoWayResponseFut {
6573        fn _decode(
6574            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6575        ) -> Result<EmptyResultClassification, fidl::Error> {
6576            let _response = fidl::client::decode_transaction_body::<
6577                EmptyResultClassification,
6578                fidl::encoding::DefaultFuchsiaResourceDialect,
6579                0x1fa9fb7414aedd27,
6580            >(_buf?)?;
6581            Ok(_response)
6582        }
6583        self.client
6584            .send_query_and_decode::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
6585                (target,),
6586                0x1fa9fb7414aedd27,
6587                fidl::encoding::DynamicFlags::empty(),
6588                _decode,
6589            )
6590    }
6591
6592    type CallStrictTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6593        NonEmptyResultClassification,
6594        fidl::encoding::DefaultFuchsiaResourceDialect,
6595    >;
6596    fn r#call_strict_two_way_fields(
6597        &self,
6598        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6599    ) -> Self::CallStrictTwoWayFieldsResponseFut {
6600        fn _decode(
6601            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6602        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6603            let _response = fidl::client::decode_transaction_body::<
6604                NonEmptyResultClassification,
6605                fidl::encoding::DefaultFuchsiaResourceDialect,
6606                0x6f690e00ebf6f123,
6607            >(_buf?)?;
6608            Ok(_response)
6609        }
6610        self.client.send_query_and_decode::<
6611            RunnerCallStrictTwoWayFieldsRequest,
6612            NonEmptyResultClassification,
6613        >(
6614            (target,),
6615            0x6f690e00ebf6f123,
6616            fidl::encoding::DynamicFlags::empty(),
6617            _decode,
6618        )
6619    }
6620
6621    type CallStrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6622        EmptyResultWithErrorClassification,
6623        fidl::encoding::DefaultFuchsiaResourceDialect,
6624    >;
6625    fn r#call_strict_two_way_err(
6626        &self,
6627        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6628    ) -> Self::CallStrictTwoWayErrResponseFut {
6629        fn _decode(
6630            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6631        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6632            let _response = fidl::client::decode_transaction_body::<
6633                EmptyResultWithErrorClassification,
6634                fidl::encoding::DefaultFuchsiaResourceDialect,
6635                0x51d6bc7cf6cbaf1a,
6636            >(_buf?)?;
6637            Ok(_response)
6638        }
6639        self.client.send_query_and_decode::<
6640            RunnerCallStrictTwoWayErrRequest,
6641            EmptyResultWithErrorClassification,
6642        >(
6643            (target,),
6644            0x51d6bc7cf6cbaf1a,
6645            fidl::encoding::DynamicFlags::empty(),
6646            _decode,
6647        )
6648    }
6649
6650    type CallStrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6651        NonEmptyResultWithErrorClassification,
6652        fidl::encoding::DefaultFuchsiaResourceDialect,
6653    >;
6654    fn r#call_strict_two_way_fields_err(
6655        &self,
6656        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6657    ) -> Self::CallStrictTwoWayFieldsErrResponseFut {
6658        fn _decode(
6659            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6660        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6661            let _response = fidl::client::decode_transaction_body::<
6662                NonEmptyResultWithErrorClassification,
6663                fidl::encoding::DefaultFuchsiaResourceDialect,
6664                0x6fa31ced05074c05,
6665            >(_buf?)?;
6666            Ok(_response)
6667        }
6668        self.client.send_query_and_decode::<
6669            RunnerCallStrictTwoWayFieldsErrRequest,
6670            NonEmptyResultWithErrorClassification,
6671        >(
6672            (target,),
6673            0x6fa31ced05074c05,
6674            fidl::encoding::DynamicFlags::empty(),
6675            _decode,
6676        )
6677    }
6678
6679    type CallFlexibleTwoWayResponseFut = fidl::client::QueryResponseFut<
6680        EmptyResultClassification,
6681        fidl::encoding::DefaultFuchsiaResourceDialect,
6682    >;
6683    fn r#call_flexible_two_way(
6684        &self,
6685        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6686    ) -> Self::CallFlexibleTwoWayResponseFut {
6687        fn _decode(
6688            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6689        ) -> Result<EmptyResultClassification, fidl::Error> {
6690            let _response = fidl::client::decode_transaction_body::<
6691                EmptyResultClassification,
6692                fidl::encoding::DefaultFuchsiaResourceDialect,
6693                0x411f70724876d49,
6694            >(_buf?)?;
6695            Ok(_response)
6696        }
6697        self.client
6698            .send_query_and_decode::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
6699                (target,),
6700                0x411f70724876d49,
6701                fidl::encoding::DynamicFlags::empty(),
6702                _decode,
6703            )
6704    }
6705
6706    type CallFlexibleTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6707        NonEmptyResultClassification,
6708        fidl::encoding::DefaultFuchsiaResourceDialect,
6709    >;
6710    fn r#call_flexible_two_way_fields(
6711        &self,
6712        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6713    ) -> Self::CallFlexibleTwoWayFieldsResponseFut {
6714        fn _decode(
6715            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6716        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6717            let _response = fidl::client::decode_transaction_body::<
6718                NonEmptyResultClassification,
6719                fidl::encoding::DefaultFuchsiaResourceDialect,
6720                0x330996b623598eed,
6721            >(_buf?)?;
6722            Ok(_response)
6723        }
6724        self.client.send_query_and_decode::<
6725            RunnerCallFlexibleTwoWayFieldsRequest,
6726            NonEmptyResultClassification,
6727        >(
6728            (target,),
6729            0x330996b623598eed,
6730            fidl::encoding::DynamicFlags::empty(),
6731            _decode,
6732        )
6733    }
6734
6735    type CallFlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6736        EmptyResultWithErrorClassification,
6737        fidl::encoding::DefaultFuchsiaResourceDialect,
6738    >;
6739    fn r#call_flexible_two_way_err(
6740        &self,
6741        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6742    ) -> Self::CallFlexibleTwoWayErrResponseFut {
6743        fn _decode(
6744            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6745        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6746            let _response = fidl::client::decode_transaction_body::<
6747                EmptyResultWithErrorClassification,
6748                fidl::encoding::DefaultFuchsiaResourceDialect,
6749                0x5ddbf88a353a2a57,
6750            >(_buf?)?;
6751            Ok(_response)
6752        }
6753        self.client.send_query_and_decode::<
6754            RunnerCallFlexibleTwoWayErrRequest,
6755            EmptyResultWithErrorClassification,
6756        >(
6757            (target,),
6758            0x5ddbf88a353a2a57,
6759            fidl::encoding::DynamicFlags::empty(),
6760            _decode,
6761        )
6762    }
6763
6764    type CallFlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6765        NonEmptyResultWithErrorClassification,
6766        fidl::encoding::DefaultFuchsiaResourceDialect,
6767    >;
6768    fn r#call_flexible_two_way_fields_err(
6769        &self,
6770        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6771    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut {
6772        fn _decode(
6773            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6774        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6775            let _response = fidl::client::decode_transaction_body::<
6776                NonEmptyResultWithErrorClassification,
6777                fidl::encoding::DefaultFuchsiaResourceDialect,
6778                0x7ae309383b07048e,
6779            >(_buf?)?;
6780            Ok(_response)
6781        }
6782        self.client.send_query_and_decode::<
6783            RunnerCallFlexibleTwoWayFieldsErrRequest,
6784            NonEmptyResultWithErrorClassification,
6785        >(
6786            (target,),
6787            0x7ae309383b07048e,
6788            fidl::encoding::DynamicFlags::empty(),
6789            _decode,
6790        )
6791    }
6792
6793    type ReceiveClosedEventsResponseFut =
6794        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6795    fn r#receive_closed_events(
6796        &self,
6797        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6798        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
6799    ) -> Self::ReceiveClosedEventsResponseFut {
6800        fn _decode(
6801            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6802        ) -> Result<(), fidl::Error> {
6803            let _response = fidl::client::decode_transaction_body::<
6804                fidl::encoding::EmptyPayload,
6805                fidl::encoding::DefaultFuchsiaResourceDialect,
6806                0x48da834910571aeb,
6807            >(_buf?)?;
6808            Ok(_response)
6809        }
6810        self.client.send_query_and_decode::<RunnerReceiveClosedEventsRequest, ()>(
6811            (target, reporter),
6812            0x48da834910571aeb,
6813            fidl::encoding::DynamicFlags::empty(),
6814            _decode,
6815        )
6816    }
6817
6818    type ReceiveAjarEventsResponseFut =
6819        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6820    fn r#receive_ajar_events(
6821        &self,
6822        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
6823        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
6824    ) -> Self::ReceiveAjarEventsResponseFut {
6825        fn _decode(
6826            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6827        ) -> Result<(), fidl::Error> {
6828            let _response = fidl::client::decode_transaction_body::<
6829                fidl::encoding::EmptyPayload,
6830                fidl::encoding::DefaultFuchsiaResourceDialect,
6831                0xc5662b9a9c007a3,
6832            >(_buf?)?;
6833            Ok(_response)
6834        }
6835        self.client.send_query_and_decode::<RunnerReceiveAjarEventsRequest, ()>(
6836            (target, reporter),
6837            0xc5662b9a9c007a3,
6838            fidl::encoding::DynamicFlags::empty(),
6839            _decode,
6840        )
6841    }
6842
6843    type ReceiveOpenEventsResponseFut =
6844        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6845    fn r#receive_open_events(
6846        &self,
6847        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6848        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
6849    ) -> Self::ReceiveOpenEventsResponseFut {
6850        fn _decode(
6851            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6852        ) -> Result<(), fidl::Error> {
6853            let _response = fidl::client::decode_transaction_body::<
6854                fidl::encoding::EmptyPayload,
6855                fidl::encoding::DefaultFuchsiaResourceDialect,
6856                0x79a7073fd18edbdf,
6857            >(_buf?)?;
6858            Ok(_response)
6859        }
6860        self.client.send_query_and_decode::<RunnerReceiveOpenEventsRequest, ()>(
6861            (target, reporter),
6862            0x79a7073fd18edbdf,
6863            fidl::encoding::DynamicFlags::empty(),
6864            _decode,
6865        )
6866    }
6867}
6868
6869pub struct RunnerEventStream {
6870    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
6871}
6872
6873impl std::marker::Unpin for RunnerEventStream {}
6874
6875impl futures::stream::FusedStream for RunnerEventStream {
6876    fn is_terminated(&self) -> bool {
6877        self.event_receiver.is_terminated()
6878    }
6879}
6880
6881impl futures::Stream for RunnerEventStream {
6882    type Item = Result<RunnerEvent, fidl::Error>;
6883
6884    fn poll_next(
6885        mut self: std::pin::Pin<&mut Self>,
6886        cx: &mut std::task::Context<'_>,
6887    ) -> std::task::Poll<Option<Self::Item>> {
6888        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
6889            &mut self.event_receiver,
6890            cx
6891        )?) {
6892            Some(buf) => std::task::Poll::Ready(Some(RunnerEvent::decode(buf))),
6893            None => std::task::Poll::Ready(None),
6894        }
6895    }
6896}
6897
6898#[derive(Debug)]
6899pub enum RunnerEvent {}
6900
6901impl RunnerEvent {
6902    /// Decodes a message buffer as a [`RunnerEvent`].
6903    fn decode(
6904        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
6905    ) -> Result<RunnerEvent, fidl::Error> {
6906        let (bytes, _handles) = buf.split_mut();
6907        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6908        debug_assert_eq!(tx_header.tx_id, 0);
6909        match tx_header.ordinal {
6910            _ => Err(fidl::Error::UnknownOrdinal {
6911                ordinal: tx_header.ordinal,
6912                protocol_name: <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6913            }),
6914        }
6915    }
6916}
6917
6918/// A Stream of incoming requests for fidl.clientsuite/Runner.
6919pub struct RunnerRequestStream {
6920    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6921    is_terminated: bool,
6922}
6923
6924impl std::marker::Unpin for RunnerRequestStream {}
6925
6926impl futures::stream::FusedStream for RunnerRequestStream {
6927    fn is_terminated(&self) -> bool {
6928        self.is_terminated
6929    }
6930}
6931
6932impl fidl::endpoints::RequestStream for RunnerRequestStream {
6933    type Protocol = RunnerMarker;
6934    type ControlHandle = RunnerControlHandle;
6935
6936    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
6937        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
6938    }
6939
6940    fn control_handle(&self) -> Self::ControlHandle {
6941        RunnerControlHandle { inner: self.inner.clone() }
6942    }
6943
6944    fn into_inner(
6945        self,
6946    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
6947    {
6948        (self.inner, self.is_terminated)
6949    }
6950
6951    fn from_inner(
6952        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6953        is_terminated: bool,
6954    ) -> Self {
6955        Self { inner, is_terminated }
6956    }
6957}
6958
6959impl futures::Stream for RunnerRequestStream {
6960    type Item = Result<RunnerRequest, fidl::Error>;
6961
6962    fn poll_next(
6963        mut self: std::pin::Pin<&mut Self>,
6964        cx: &mut std::task::Context<'_>,
6965    ) -> std::task::Poll<Option<Self::Item>> {
6966        let this = &mut *self;
6967        if this.inner.check_shutdown(cx) {
6968            this.is_terminated = true;
6969            return std::task::Poll::Ready(None);
6970        }
6971        if this.is_terminated {
6972            panic!("polled RunnerRequestStream after completion");
6973        }
6974        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
6975            |bytes, handles| {
6976                match this.inner.channel().read_etc(cx, bytes, handles) {
6977                    std::task::Poll::Ready(Ok(())) => {}
6978                    std::task::Poll::Pending => return std::task::Poll::Pending,
6979                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
6980                        this.is_terminated = true;
6981                        return std::task::Poll::Ready(None);
6982                    }
6983                    std::task::Poll::Ready(Err(e)) => {
6984                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
6985                            e.into(),
6986                        ))));
6987                    }
6988                }
6989
6990                // A message has been received from the channel
6991                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6992
6993                std::task::Poll::Ready(Some(match header.ordinal {
6994                    0x555d1430b913cdd4 => {
6995                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6996                        let mut req = fidl::new_empty!(
6997                            fidl::encoding::EmptyPayload,
6998                            fidl::encoding::DefaultFuchsiaResourceDialect
6999                        );
7000                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
7001                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7002                        Ok(RunnerRequest::GetVersion {
7003                            responder: RunnerGetVersionResponder {
7004                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7005                                tx_id: header.tx_id,
7006                            },
7007                        })
7008                    }
7009                    0x755bc493368d7c50 => {
7010                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7011                        let mut req = fidl::new_empty!(
7012                            RunnerIsTestEnabledRequest,
7013                            fidl::encoding::DefaultFuchsiaResourceDialect
7014                        );
7015                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerIsTestEnabledRequest>(&header, _body_bytes, handles, &mut req)?;
7016                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7017                        Ok(RunnerRequest::IsTestEnabled {
7018                            test: req.test,
7019
7020                            responder: RunnerIsTestEnabledResponder {
7021                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7022                                tx_id: header.tx_id,
7023                            },
7024                        })
7025                    }
7026                    0x5a77b04abdfde130 => {
7027                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7028                        let mut req = fidl::new_empty!(
7029                            fidl::encoding::EmptyPayload,
7030                            fidl::encoding::DefaultFuchsiaResourceDialect
7031                        );
7032                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
7033                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7034                        Ok(RunnerRequest::CheckAlive {
7035                            responder: RunnerCheckAliveResponder {
7036                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7037                                tx_id: header.tx_id,
7038                            },
7039                        })
7040                    }
7041                    0x76b5610bfd4fa636 => {
7042                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7043                        let mut req = fidl::new_empty!(
7044                            fidl::encoding::EmptyPayload,
7045                            fidl::encoding::DefaultFuchsiaResourceDialect
7046                        );
7047                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
7048                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7049                        Ok(RunnerRequest::GetBindingsProperties {
7050                            responder: RunnerGetBindingsPropertiesResponder {
7051                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7052                                tx_id: header.tx_id,
7053                            },
7054                        })
7055                    }
7056                    0x53ac710c20b320a1 => {
7057                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7058                        let mut req = fidl::new_empty!(
7059                            RunnerCallTwoWayNoPayloadRequest,
7060                            fidl::encoding::DefaultFuchsiaResourceDialect
7061                        );
7062                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayNoPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7063                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7064                        Ok(RunnerRequest::CallTwoWayNoPayload {
7065                            target: req.target,
7066
7067                            responder: RunnerCallTwoWayNoPayloadResponder {
7068                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7069                                tx_id: header.tx_id,
7070                            },
7071                        })
7072                    }
7073                    0x24e98c668499b946 => {
7074                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7075                        let mut req = fidl::new_empty!(
7076                            RunnerCallTwoWayStructPayloadRequest,
7077                            fidl::encoding::DefaultFuchsiaResourceDialect
7078                        );
7079                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7080                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7081                        Ok(RunnerRequest::CallTwoWayStructPayload {
7082                            target: req.target,
7083
7084                            responder: RunnerCallTwoWayStructPayloadResponder {
7085                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7086                                tx_id: header.tx_id,
7087                            },
7088                        })
7089                    }
7090                    0x72e428e1605b76a => {
7091                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7092                        let mut req = fidl::new_empty!(
7093                            RunnerCallTwoWayTablePayloadRequest,
7094                            fidl::encoding::DefaultFuchsiaResourceDialect
7095                        );
7096                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTablePayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7097                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7098                        Ok(RunnerRequest::CallTwoWayTablePayload {
7099                            target: req.target,
7100
7101                            responder: RunnerCallTwoWayTablePayloadResponder {
7102                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7103                                tx_id: header.tx_id,
7104                            },
7105                        })
7106                    }
7107                    0x7dc9d67218343860 => {
7108                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7109                        let mut req = fidl::new_empty!(
7110                            RunnerCallTwoWayUnionPayloadRequest,
7111                            fidl::encoding::DefaultFuchsiaResourceDialect
7112                        );
7113                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7114                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7115                        Ok(RunnerRequest::CallTwoWayUnionPayload {
7116                            target: req.target,
7117
7118                            responder: RunnerCallTwoWayUnionPayloadResponder {
7119                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7120                                tx_id: header.tx_id,
7121                            },
7122                        })
7123                    }
7124                    0x2b07a57942c5f6e5 => {
7125                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7126                        let mut req = fidl::new_empty!(
7127                            RunnerCallTwoWayStructPayloadErrRequest,
7128                            fidl::encoding::DefaultFuchsiaResourceDialect
7129                        );
7130                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadErrRequest>(&header, _body_bytes, handles, &mut req)?;
7131                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7132                        Ok(RunnerRequest::CallTwoWayStructPayloadErr {
7133                            target: req.target,
7134
7135                            responder: RunnerCallTwoWayStructPayloadErrResponder {
7136                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7137                                tx_id: header.tx_id,
7138                            },
7139                        })
7140                    }
7141                    0x7c00a6ba2e6c9b45 => {
7142                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7143                        let mut req = fidl::new_empty!(
7144                            RunnerCallTwoWayStructRequestRequest,
7145                            fidl::encoding::DefaultFuchsiaResourceDialect
7146                        );
7147                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7148                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7149                        Ok(RunnerRequest::CallTwoWayStructRequest {
7150                            target: req.target,
7151                            request: req.request,
7152
7153                            responder: RunnerCallTwoWayStructRequestResponder {
7154                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7155                                tx_id: header.tx_id,
7156                            },
7157                        })
7158                    }
7159                    0x641763237d3885be => {
7160                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7161                        let mut req = fidl::new_empty!(
7162                            RunnerCallTwoWayTableRequestRequest,
7163                            fidl::encoding::DefaultFuchsiaResourceDialect
7164                        );
7165                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7166                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7167                        Ok(RunnerRequest::CallTwoWayTableRequest {
7168                            target: req.target,
7169                            request: req.request,
7170
7171                            responder: RunnerCallTwoWayTableRequestResponder {
7172                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7173                                tx_id: header.tx_id,
7174                            },
7175                        })
7176                    }
7177                    0x4be5f061df42619e => {
7178                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7179                        let mut req = fidl::new_empty!(
7180                            RunnerCallTwoWayUnionRequestRequest,
7181                            fidl::encoding::DefaultFuchsiaResourceDialect
7182                        );
7183                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7184                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7185                        Ok(RunnerRequest::CallTwoWayUnionRequest {
7186                            target: req.target,
7187                            request: req.request,
7188
7189                            responder: RunnerCallTwoWayUnionRequestResponder {
7190                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7191                                tx_id: header.tx_id,
7192                            },
7193                        })
7194                    }
7195                    0x24b6eea8cbdccc09 => {
7196                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7197                        let mut req = fidl::new_empty!(
7198                            RunnerCallOneWayNoRequestRequest,
7199                            fidl::encoding::DefaultFuchsiaResourceDialect
7200                        );
7201                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayNoRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7202                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7203                        Ok(RunnerRequest::CallOneWayNoRequest {
7204                            target: req.target,
7205
7206                            responder: RunnerCallOneWayNoRequestResponder {
7207                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7208                                tx_id: header.tx_id,
7209                            },
7210                        })
7211                    }
7212                    0x352a2907a0fcb420 => {
7213                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7214                        let mut req = fidl::new_empty!(
7215                            RunnerCallOneWayStructRequestRequest,
7216                            fidl::encoding::DefaultFuchsiaResourceDialect
7217                        );
7218                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7219                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7220                        Ok(RunnerRequest::CallOneWayStructRequest {
7221                            target: req.target,
7222                            request: req.request,
7223
7224                            responder: RunnerCallOneWayStructRequestResponder {
7225                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7226                                tx_id: header.tx_id,
7227                            },
7228                        })
7229                    }
7230                    0x734121bf8bf336ef => {
7231                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7232                        let mut req = fidl::new_empty!(
7233                            RunnerCallOneWayTableRequestRequest,
7234                            fidl::encoding::DefaultFuchsiaResourceDialect
7235                        );
7236                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7237                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7238                        Ok(RunnerRequest::CallOneWayTableRequest {
7239                            target: req.target,
7240                            request: req.request,
7241
7242                            responder: RunnerCallOneWayTableRequestResponder {
7243                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7244                                tx_id: header.tx_id,
7245                            },
7246                        })
7247                    }
7248                    0x9be8e5eb7d50eb6 => {
7249                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7250                        let mut req = fidl::new_empty!(
7251                            RunnerCallOneWayUnionRequestRequest,
7252                            fidl::encoding::DefaultFuchsiaResourceDialect
7253                        );
7254                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7255                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7256                        Ok(RunnerRequest::CallOneWayUnionRequest {
7257                            target: req.target,
7258                            request: req.request,
7259
7260                            responder: RunnerCallOneWayUnionRequestResponder {
7261                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7262                                tx_id: header.tx_id,
7263                            },
7264                        })
7265                    }
7266                    0x4edd0b6f52c0446b => {
7267                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7268                        let mut req = fidl::new_empty!(
7269                            RunnerCallStrictOneWayRequest,
7270                            fidl::encoding::DefaultFuchsiaResourceDialect
7271                        );
7272                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7273                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7274                        Ok(RunnerRequest::CallStrictOneWay {
7275                            target: req.target,
7276
7277                            responder: RunnerCallStrictOneWayResponder {
7278                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7279                                tx_id: header.tx_id,
7280                            },
7281                        })
7282                    }
7283                    0x7253f10a77dfe817 => {
7284                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7285                        let mut req = fidl::new_empty!(
7286                            RunnerCallFlexibleOneWayRequest,
7287                            fidl::encoding::DefaultFuchsiaResourceDialect
7288                        );
7289                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7290                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7291                        Ok(RunnerRequest::CallFlexibleOneWay {
7292                            target: req.target,
7293
7294                            responder: RunnerCallFlexibleOneWayResponder {
7295                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7296                                tx_id: header.tx_id,
7297                            },
7298                        })
7299                    }
7300                    0x1fa9fb7414aedd27 => {
7301                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7302                        let mut req = fidl::new_empty!(
7303                            RunnerCallStrictTwoWayRequest,
7304                            fidl::encoding::DefaultFuchsiaResourceDialect
7305                        );
7306                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7307                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7308                        Ok(RunnerRequest::CallStrictTwoWay {
7309                            target: req.target,
7310
7311                            responder: RunnerCallStrictTwoWayResponder {
7312                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7313                                tx_id: header.tx_id,
7314                            },
7315                        })
7316                    }
7317                    0x6f690e00ebf6f123 => {
7318                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7319                        let mut req = fidl::new_empty!(
7320                            RunnerCallStrictTwoWayFieldsRequest,
7321                            fidl::encoding::DefaultFuchsiaResourceDialect
7322                        );
7323                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7324                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7325                        Ok(RunnerRequest::CallStrictTwoWayFields {
7326                            target: req.target,
7327
7328                            responder: RunnerCallStrictTwoWayFieldsResponder {
7329                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7330                                tx_id: header.tx_id,
7331                            },
7332                        })
7333                    }
7334                    0x51d6bc7cf6cbaf1a => {
7335                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7336                        let mut req = fidl::new_empty!(
7337                            RunnerCallStrictTwoWayErrRequest,
7338                            fidl::encoding::DefaultFuchsiaResourceDialect
7339                        );
7340                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7341                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7342                        Ok(RunnerRequest::CallStrictTwoWayErr {
7343                            target: req.target,
7344
7345                            responder: RunnerCallStrictTwoWayErrResponder {
7346                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7347                                tx_id: header.tx_id,
7348                            },
7349                        })
7350                    }
7351                    0x6fa31ced05074c05 => {
7352                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7353                        let mut req = fidl::new_empty!(
7354                            RunnerCallStrictTwoWayFieldsErrRequest,
7355                            fidl::encoding::DefaultFuchsiaResourceDialect
7356                        );
7357                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7358                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7359                        Ok(RunnerRequest::CallStrictTwoWayFieldsErr {
7360                            target: req.target,
7361
7362                            responder: RunnerCallStrictTwoWayFieldsErrResponder {
7363                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7364                                tx_id: header.tx_id,
7365                            },
7366                        })
7367                    }
7368                    0x411f70724876d49 => {
7369                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7370                        let mut req = fidl::new_empty!(
7371                            RunnerCallFlexibleTwoWayRequest,
7372                            fidl::encoding::DefaultFuchsiaResourceDialect
7373                        );
7374                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7375                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7376                        Ok(RunnerRequest::CallFlexibleTwoWay {
7377                            target: req.target,
7378
7379                            responder: RunnerCallFlexibleTwoWayResponder {
7380                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7381                                tx_id: header.tx_id,
7382                            },
7383                        })
7384                    }
7385                    0x330996b623598eed => {
7386                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7387                        let mut req = fidl::new_empty!(
7388                            RunnerCallFlexibleTwoWayFieldsRequest,
7389                            fidl::encoding::DefaultFuchsiaResourceDialect
7390                        );
7391                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7392                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7393                        Ok(RunnerRequest::CallFlexibleTwoWayFields {
7394                            target: req.target,
7395
7396                            responder: RunnerCallFlexibleTwoWayFieldsResponder {
7397                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7398                                tx_id: header.tx_id,
7399                            },
7400                        })
7401                    }
7402                    0x5ddbf88a353a2a57 => {
7403                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7404                        let mut req = fidl::new_empty!(
7405                            RunnerCallFlexibleTwoWayErrRequest,
7406                            fidl::encoding::DefaultFuchsiaResourceDialect
7407                        );
7408                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7409                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7410                        Ok(RunnerRequest::CallFlexibleTwoWayErr {
7411                            target: req.target,
7412
7413                            responder: RunnerCallFlexibleTwoWayErrResponder {
7414                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7415                                tx_id: header.tx_id,
7416                            },
7417                        })
7418                    }
7419                    0x7ae309383b07048e => {
7420                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7421                        let mut req = fidl::new_empty!(
7422                            RunnerCallFlexibleTwoWayFieldsErrRequest,
7423                            fidl::encoding::DefaultFuchsiaResourceDialect
7424                        );
7425                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7426                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7427                        Ok(RunnerRequest::CallFlexibleTwoWayFieldsErr {
7428                            target: req.target,
7429
7430                            responder: RunnerCallFlexibleTwoWayFieldsErrResponder {
7431                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7432                                tx_id: header.tx_id,
7433                            },
7434                        })
7435                    }
7436                    0x48da834910571aeb => {
7437                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7438                        let mut req = fidl::new_empty!(
7439                            RunnerReceiveClosedEventsRequest,
7440                            fidl::encoding::DefaultFuchsiaResourceDialect
7441                        );
7442                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveClosedEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7443                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7444                        Ok(RunnerRequest::ReceiveClosedEvents {
7445                            target: req.target,
7446                            reporter: req.reporter,
7447
7448                            responder: RunnerReceiveClosedEventsResponder {
7449                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7450                                tx_id: header.tx_id,
7451                            },
7452                        })
7453                    }
7454                    0xc5662b9a9c007a3 => {
7455                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7456                        let mut req = fidl::new_empty!(
7457                            RunnerReceiveAjarEventsRequest,
7458                            fidl::encoding::DefaultFuchsiaResourceDialect
7459                        );
7460                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveAjarEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7461                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7462                        Ok(RunnerRequest::ReceiveAjarEvents {
7463                            target: req.target,
7464                            reporter: req.reporter,
7465
7466                            responder: RunnerReceiveAjarEventsResponder {
7467                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7468                                tx_id: header.tx_id,
7469                            },
7470                        })
7471                    }
7472                    0x79a7073fd18edbdf => {
7473                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7474                        let mut req = fidl::new_empty!(
7475                            RunnerReceiveOpenEventsRequest,
7476                            fidl::encoding::DefaultFuchsiaResourceDialect
7477                        );
7478                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveOpenEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7479                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7480                        Ok(RunnerRequest::ReceiveOpenEvents {
7481                            target: req.target,
7482                            reporter: req.reporter,
7483
7484                            responder: RunnerReceiveOpenEventsResponder {
7485                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7486                                tx_id: header.tx_id,
7487                            },
7488                        })
7489                    }
7490                    _ => Err(fidl::Error::UnknownOrdinal {
7491                        ordinal: header.ordinal,
7492                        protocol_name:
7493                            <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
7494                    }),
7495                }))
7496            },
7497        )
7498    }
7499}
7500
7501#[derive(Debug)]
7502pub enum RunnerRequest {
7503    GetVersion {
7504        responder: RunnerGetVersionResponder,
7505    },
7506    IsTestEnabled {
7507        test: Test,
7508        responder: RunnerIsTestEnabledResponder,
7509    },
7510    CheckAlive {
7511        responder: RunnerCheckAliveResponder,
7512    },
7513    GetBindingsProperties {
7514        responder: RunnerGetBindingsPropertiesResponder,
7515    },
7516    CallTwoWayNoPayload {
7517        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7518        responder: RunnerCallTwoWayNoPayloadResponder,
7519    },
7520    CallTwoWayStructPayload {
7521        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7522        responder: RunnerCallTwoWayStructPayloadResponder,
7523    },
7524    CallTwoWayTablePayload {
7525        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7526        responder: RunnerCallTwoWayTablePayloadResponder,
7527    },
7528    CallTwoWayUnionPayload {
7529        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7530        responder: RunnerCallTwoWayUnionPayloadResponder,
7531    },
7532    CallTwoWayStructPayloadErr {
7533        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7534        responder: RunnerCallTwoWayStructPayloadErrResponder,
7535    },
7536    CallTwoWayStructRequest {
7537        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7538        request: NonEmptyPayload,
7539        responder: RunnerCallTwoWayStructRequestResponder,
7540    },
7541    CallTwoWayTableRequest {
7542        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7543        request: TablePayload,
7544        responder: RunnerCallTwoWayTableRequestResponder,
7545    },
7546    CallTwoWayUnionRequest {
7547        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7548        request: UnionPayload,
7549        responder: RunnerCallTwoWayUnionRequestResponder,
7550    },
7551    CallOneWayNoRequest {
7552        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7553        responder: RunnerCallOneWayNoRequestResponder,
7554    },
7555    CallOneWayStructRequest {
7556        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7557        request: NonEmptyPayload,
7558        responder: RunnerCallOneWayStructRequestResponder,
7559    },
7560    CallOneWayTableRequest {
7561        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7562        request: TablePayload,
7563        responder: RunnerCallOneWayTableRequestResponder,
7564    },
7565    CallOneWayUnionRequest {
7566        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7567        request: UnionPayload,
7568        responder: RunnerCallOneWayUnionRequestResponder,
7569    },
7570    CallStrictOneWay {
7571        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7572        responder: RunnerCallStrictOneWayResponder,
7573    },
7574    CallFlexibleOneWay {
7575        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7576        responder: RunnerCallFlexibleOneWayResponder,
7577    },
7578    CallStrictTwoWay {
7579        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7580        responder: RunnerCallStrictTwoWayResponder,
7581    },
7582    CallStrictTwoWayFields {
7583        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7584        responder: RunnerCallStrictTwoWayFieldsResponder,
7585    },
7586    CallStrictTwoWayErr {
7587        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7588        responder: RunnerCallStrictTwoWayErrResponder,
7589    },
7590    CallStrictTwoWayFieldsErr {
7591        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7592        responder: RunnerCallStrictTwoWayFieldsErrResponder,
7593    },
7594    CallFlexibleTwoWay {
7595        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7596        responder: RunnerCallFlexibleTwoWayResponder,
7597    },
7598    CallFlexibleTwoWayFields {
7599        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7600        responder: RunnerCallFlexibleTwoWayFieldsResponder,
7601    },
7602    CallFlexibleTwoWayErr {
7603        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7604        responder: RunnerCallFlexibleTwoWayErrResponder,
7605    },
7606    CallFlexibleTwoWayFieldsErr {
7607        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7608        responder: RunnerCallFlexibleTwoWayFieldsErrResponder,
7609    },
7610    ReceiveClosedEvents {
7611        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7612        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7613        responder: RunnerReceiveClosedEventsResponder,
7614    },
7615    ReceiveAjarEvents {
7616        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
7617        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7618        responder: RunnerReceiveAjarEventsResponder,
7619    },
7620    ReceiveOpenEvents {
7621        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7622        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7623        responder: RunnerReceiveOpenEventsResponder,
7624    },
7625}
7626
7627impl RunnerRequest {
7628    #[allow(irrefutable_let_patterns)]
7629    pub fn into_get_version(self) -> Option<(RunnerGetVersionResponder)> {
7630        if let RunnerRequest::GetVersion { responder } = self { Some((responder)) } else { None }
7631    }
7632
7633    #[allow(irrefutable_let_patterns)]
7634    pub fn into_is_test_enabled(self) -> Option<(Test, RunnerIsTestEnabledResponder)> {
7635        if let RunnerRequest::IsTestEnabled { test, responder } = self {
7636            Some((test, responder))
7637        } else {
7638            None
7639        }
7640    }
7641
7642    #[allow(irrefutable_let_patterns)]
7643    pub fn into_check_alive(self) -> Option<(RunnerCheckAliveResponder)> {
7644        if let RunnerRequest::CheckAlive { responder } = self { Some((responder)) } else { None }
7645    }
7646
7647    #[allow(irrefutable_let_patterns)]
7648    pub fn into_get_bindings_properties(self) -> Option<(RunnerGetBindingsPropertiesResponder)> {
7649        if let RunnerRequest::GetBindingsProperties { responder } = self {
7650            Some((responder))
7651        } else {
7652            None
7653        }
7654    }
7655
7656    #[allow(irrefutable_let_patterns)]
7657    pub fn into_call_two_way_no_payload(
7658        self,
7659    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallTwoWayNoPayloadResponder)>
7660    {
7661        if let RunnerRequest::CallTwoWayNoPayload { target, responder } = self {
7662            Some((target, responder))
7663        } else {
7664            None
7665        }
7666    }
7667
7668    #[allow(irrefutable_let_patterns)]
7669    pub fn into_call_two_way_struct_payload(
7670        self,
7671    ) -> Option<(
7672        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7673        RunnerCallTwoWayStructPayloadResponder,
7674    )> {
7675        if let RunnerRequest::CallTwoWayStructPayload { target, responder } = self {
7676            Some((target, responder))
7677        } else {
7678            None
7679        }
7680    }
7681
7682    #[allow(irrefutable_let_patterns)]
7683    pub fn into_call_two_way_table_payload(
7684        self,
7685    ) -> Option<(
7686        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7687        RunnerCallTwoWayTablePayloadResponder,
7688    )> {
7689        if let RunnerRequest::CallTwoWayTablePayload { target, responder } = self {
7690            Some((target, responder))
7691        } else {
7692            None
7693        }
7694    }
7695
7696    #[allow(irrefutable_let_patterns)]
7697    pub fn into_call_two_way_union_payload(
7698        self,
7699    ) -> Option<(
7700        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7701        RunnerCallTwoWayUnionPayloadResponder,
7702    )> {
7703        if let RunnerRequest::CallTwoWayUnionPayload { target, responder } = self {
7704            Some((target, responder))
7705        } else {
7706            None
7707        }
7708    }
7709
7710    #[allow(irrefutable_let_patterns)]
7711    pub fn into_call_two_way_struct_payload_err(
7712        self,
7713    ) -> Option<(
7714        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7715        RunnerCallTwoWayStructPayloadErrResponder,
7716    )> {
7717        if let RunnerRequest::CallTwoWayStructPayloadErr { target, responder } = self {
7718            Some((target, responder))
7719        } else {
7720            None
7721        }
7722    }
7723
7724    #[allow(irrefutable_let_patterns)]
7725    pub fn into_call_two_way_struct_request(
7726        self,
7727    ) -> Option<(
7728        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7729        NonEmptyPayload,
7730        RunnerCallTwoWayStructRequestResponder,
7731    )> {
7732        if let RunnerRequest::CallTwoWayStructRequest { target, request, responder } = self {
7733            Some((target, request, responder))
7734        } else {
7735            None
7736        }
7737    }
7738
7739    #[allow(irrefutable_let_patterns)]
7740    pub fn into_call_two_way_table_request(
7741        self,
7742    ) -> Option<(
7743        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7744        TablePayload,
7745        RunnerCallTwoWayTableRequestResponder,
7746    )> {
7747        if let RunnerRequest::CallTwoWayTableRequest { target, request, responder } = self {
7748            Some((target, request, responder))
7749        } else {
7750            None
7751        }
7752    }
7753
7754    #[allow(irrefutable_let_patterns)]
7755    pub fn into_call_two_way_union_request(
7756        self,
7757    ) -> Option<(
7758        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7759        UnionPayload,
7760        RunnerCallTwoWayUnionRequestResponder,
7761    )> {
7762        if let RunnerRequest::CallTwoWayUnionRequest { target, request, responder } = self {
7763            Some((target, request, responder))
7764        } else {
7765            None
7766        }
7767    }
7768
7769    #[allow(irrefutable_let_patterns)]
7770    pub fn into_call_one_way_no_request(
7771        self,
7772    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallOneWayNoRequestResponder)>
7773    {
7774        if let RunnerRequest::CallOneWayNoRequest { target, responder } = self {
7775            Some((target, responder))
7776        } else {
7777            None
7778        }
7779    }
7780
7781    #[allow(irrefutable_let_patterns)]
7782    pub fn into_call_one_way_struct_request(
7783        self,
7784    ) -> Option<(
7785        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7786        NonEmptyPayload,
7787        RunnerCallOneWayStructRequestResponder,
7788    )> {
7789        if let RunnerRequest::CallOneWayStructRequest { target, request, responder } = self {
7790            Some((target, request, responder))
7791        } else {
7792            None
7793        }
7794    }
7795
7796    #[allow(irrefutable_let_patterns)]
7797    pub fn into_call_one_way_table_request(
7798        self,
7799    ) -> Option<(
7800        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7801        TablePayload,
7802        RunnerCallOneWayTableRequestResponder,
7803    )> {
7804        if let RunnerRequest::CallOneWayTableRequest { target, request, responder } = self {
7805            Some((target, request, responder))
7806        } else {
7807            None
7808        }
7809    }
7810
7811    #[allow(irrefutable_let_patterns)]
7812    pub fn into_call_one_way_union_request(
7813        self,
7814    ) -> Option<(
7815        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7816        UnionPayload,
7817        RunnerCallOneWayUnionRequestResponder,
7818    )> {
7819        if let RunnerRequest::CallOneWayUnionRequest { target, request, responder } = self {
7820            Some((target, request, responder))
7821        } else {
7822            None
7823        }
7824    }
7825
7826    #[allow(irrefutable_let_patterns)]
7827    pub fn into_call_strict_one_way(
7828        self,
7829    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictOneWayResponder)>
7830    {
7831        if let RunnerRequest::CallStrictOneWay { target, responder } = self {
7832            Some((target, responder))
7833        } else {
7834            None
7835        }
7836    }
7837
7838    #[allow(irrefutable_let_patterns)]
7839    pub fn into_call_flexible_one_way(
7840        self,
7841    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleOneWayResponder)>
7842    {
7843        if let RunnerRequest::CallFlexibleOneWay { target, responder } = self {
7844            Some((target, responder))
7845        } else {
7846            None
7847        }
7848    }
7849
7850    #[allow(irrefutable_let_patterns)]
7851    pub fn into_call_strict_two_way(
7852        self,
7853    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayResponder)>
7854    {
7855        if let RunnerRequest::CallStrictTwoWay { target, responder } = self {
7856            Some((target, responder))
7857        } else {
7858            None
7859        }
7860    }
7861
7862    #[allow(irrefutable_let_patterns)]
7863    pub fn into_call_strict_two_way_fields(
7864        self,
7865    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayFieldsResponder)>
7866    {
7867        if let RunnerRequest::CallStrictTwoWayFields { target, responder } = self {
7868            Some((target, responder))
7869        } else {
7870            None
7871        }
7872    }
7873
7874    #[allow(irrefutable_let_patterns)]
7875    pub fn into_call_strict_two_way_err(
7876        self,
7877    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayErrResponder)>
7878    {
7879        if let RunnerRequest::CallStrictTwoWayErr { target, responder } = self {
7880            Some((target, responder))
7881        } else {
7882            None
7883        }
7884    }
7885
7886    #[allow(irrefutable_let_patterns)]
7887    pub fn into_call_strict_two_way_fields_err(
7888        self,
7889    ) -> Option<(
7890        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7891        RunnerCallStrictTwoWayFieldsErrResponder,
7892    )> {
7893        if let RunnerRequest::CallStrictTwoWayFieldsErr { target, responder } = self {
7894            Some((target, responder))
7895        } else {
7896            None
7897        }
7898    }
7899
7900    #[allow(irrefutable_let_patterns)]
7901    pub fn into_call_flexible_two_way(
7902        self,
7903    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayResponder)>
7904    {
7905        if let RunnerRequest::CallFlexibleTwoWay { target, responder } = self {
7906            Some((target, responder))
7907        } else {
7908            None
7909        }
7910    }
7911
7912    #[allow(irrefutable_let_patterns)]
7913    pub fn into_call_flexible_two_way_fields(
7914        self,
7915    ) -> Option<(
7916        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7917        RunnerCallFlexibleTwoWayFieldsResponder,
7918    )> {
7919        if let RunnerRequest::CallFlexibleTwoWayFields { target, responder } = self {
7920            Some((target, responder))
7921        } else {
7922            None
7923        }
7924    }
7925
7926    #[allow(irrefutable_let_patterns)]
7927    pub fn into_call_flexible_two_way_err(
7928        self,
7929    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayErrResponder)>
7930    {
7931        if let RunnerRequest::CallFlexibleTwoWayErr { target, responder } = self {
7932            Some((target, responder))
7933        } else {
7934            None
7935        }
7936    }
7937
7938    #[allow(irrefutable_let_patterns)]
7939    pub fn into_call_flexible_two_way_fields_err(
7940        self,
7941    ) -> Option<(
7942        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7943        RunnerCallFlexibleTwoWayFieldsErrResponder,
7944    )> {
7945        if let RunnerRequest::CallFlexibleTwoWayFieldsErr { target, responder } = self {
7946            Some((target, responder))
7947        } else {
7948            None
7949        }
7950    }
7951
7952    #[allow(irrefutable_let_patterns)]
7953    pub fn into_receive_closed_events(
7954        self,
7955    ) -> Option<(
7956        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7957        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7958        RunnerReceiveClosedEventsResponder,
7959    )> {
7960        if let RunnerRequest::ReceiveClosedEvents { target, reporter, responder } = self {
7961            Some((target, reporter, responder))
7962        } else {
7963            None
7964        }
7965    }
7966
7967    #[allow(irrefutable_let_patterns)]
7968    pub fn into_receive_ajar_events(
7969        self,
7970    ) -> Option<(
7971        fidl::endpoints::ClientEnd<AjarTargetMarker>,
7972        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7973        RunnerReceiveAjarEventsResponder,
7974    )> {
7975        if let RunnerRequest::ReceiveAjarEvents { target, reporter, responder } = self {
7976            Some((target, reporter, responder))
7977        } else {
7978            None
7979        }
7980    }
7981
7982    #[allow(irrefutable_let_patterns)]
7983    pub fn into_receive_open_events(
7984        self,
7985    ) -> Option<(
7986        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7987        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7988        RunnerReceiveOpenEventsResponder,
7989    )> {
7990        if let RunnerRequest::ReceiveOpenEvents { target, reporter, responder } = self {
7991            Some((target, reporter, responder))
7992        } else {
7993            None
7994        }
7995    }
7996
7997    /// Name of the method defined in FIDL
7998    pub fn method_name(&self) -> &'static str {
7999        match *self {
8000            RunnerRequest::GetVersion { .. } => "get_version",
8001            RunnerRequest::IsTestEnabled { .. } => "is_test_enabled",
8002            RunnerRequest::CheckAlive { .. } => "check_alive",
8003            RunnerRequest::GetBindingsProperties { .. } => "get_bindings_properties",
8004            RunnerRequest::CallTwoWayNoPayload { .. } => "call_two_way_no_payload",
8005            RunnerRequest::CallTwoWayStructPayload { .. } => "call_two_way_struct_payload",
8006            RunnerRequest::CallTwoWayTablePayload { .. } => "call_two_way_table_payload",
8007            RunnerRequest::CallTwoWayUnionPayload { .. } => "call_two_way_union_payload",
8008            RunnerRequest::CallTwoWayStructPayloadErr { .. } => "call_two_way_struct_payload_err",
8009            RunnerRequest::CallTwoWayStructRequest { .. } => "call_two_way_struct_request",
8010            RunnerRequest::CallTwoWayTableRequest { .. } => "call_two_way_table_request",
8011            RunnerRequest::CallTwoWayUnionRequest { .. } => "call_two_way_union_request",
8012            RunnerRequest::CallOneWayNoRequest { .. } => "call_one_way_no_request",
8013            RunnerRequest::CallOneWayStructRequest { .. } => "call_one_way_struct_request",
8014            RunnerRequest::CallOneWayTableRequest { .. } => "call_one_way_table_request",
8015            RunnerRequest::CallOneWayUnionRequest { .. } => "call_one_way_union_request",
8016            RunnerRequest::CallStrictOneWay { .. } => "call_strict_one_way",
8017            RunnerRequest::CallFlexibleOneWay { .. } => "call_flexible_one_way",
8018            RunnerRequest::CallStrictTwoWay { .. } => "call_strict_two_way",
8019            RunnerRequest::CallStrictTwoWayFields { .. } => "call_strict_two_way_fields",
8020            RunnerRequest::CallStrictTwoWayErr { .. } => "call_strict_two_way_err",
8021            RunnerRequest::CallStrictTwoWayFieldsErr { .. } => "call_strict_two_way_fields_err",
8022            RunnerRequest::CallFlexibleTwoWay { .. } => "call_flexible_two_way",
8023            RunnerRequest::CallFlexibleTwoWayFields { .. } => "call_flexible_two_way_fields",
8024            RunnerRequest::CallFlexibleTwoWayErr { .. } => "call_flexible_two_way_err",
8025            RunnerRequest::CallFlexibleTwoWayFieldsErr { .. } => "call_flexible_two_way_fields_err",
8026            RunnerRequest::ReceiveClosedEvents { .. } => "receive_closed_events",
8027            RunnerRequest::ReceiveAjarEvents { .. } => "receive_ajar_events",
8028            RunnerRequest::ReceiveOpenEvents { .. } => "receive_open_events",
8029        }
8030    }
8031}
8032
8033#[derive(Debug, Clone)]
8034pub struct RunnerControlHandle {
8035    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
8036}
8037
8038impl fidl::endpoints::ControlHandle for RunnerControlHandle {
8039    fn shutdown(&self) {
8040        self.inner.shutdown()
8041    }
8042
8043    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
8044        self.inner.shutdown_with_epitaph(status)
8045    }
8046
8047    fn is_closed(&self) -> bool {
8048        self.inner.channel().is_closed()
8049    }
8050    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
8051        self.inner.channel().on_closed()
8052    }
8053
8054    #[cfg(target_os = "fuchsia")]
8055    fn signal_peer(
8056        &self,
8057        clear_mask: zx::Signals,
8058        set_mask: zx::Signals,
8059    ) -> Result<(), zx_status::Status> {
8060        use fidl::Peered;
8061        self.inner.channel().signal_peer(clear_mask, set_mask)
8062    }
8063}
8064
8065impl RunnerControlHandle {}
8066
8067#[must_use = "FIDL methods require a response to be sent"]
8068#[derive(Debug)]
8069pub struct RunnerGetVersionResponder {
8070    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8071    tx_id: u32,
8072}
8073
8074/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8075/// if the responder is dropped without sending a response, so that the client
8076/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8077impl std::ops::Drop for RunnerGetVersionResponder {
8078    fn drop(&mut self) {
8079        self.control_handle.shutdown();
8080        // Safety: drops once, never accessed again
8081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8082    }
8083}
8084
8085impl fidl::endpoints::Responder for RunnerGetVersionResponder {
8086    type ControlHandle = RunnerControlHandle;
8087
8088    fn control_handle(&self) -> &RunnerControlHandle {
8089        &self.control_handle
8090    }
8091
8092    fn drop_without_shutdown(mut self) {
8093        // Safety: drops once, never accessed again due to mem::forget
8094        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8095        // Prevent Drop from running (which would shut down the channel)
8096        std::mem::forget(self);
8097    }
8098}
8099
8100impl RunnerGetVersionResponder {
8101    /// Sends a response to the FIDL transaction.
8102    ///
8103    /// Sets the channel to shutdown if an error occurs.
8104    pub fn send(self, mut version: u64) -> Result<(), fidl::Error> {
8105        let _result = self.send_raw(version);
8106        if _result.is_err() {
8107            self.control_handle.shutdown();
8108        }
8109        self.drop_without_shutdown();
8110        _result
8111    }
8112
8113    /// Similar to "send" but does not shutdown the channel if an error occurs.
8114    pub fn send_no_shutdown_on_err(self, mut version: u64) -> Result<(), fidl::Error> {
8115        let _result = self.send_raw(version);
8116        self.drop_without_shutdown();
8117        _result
8118    }
8119
8120    fn send_raw(&self, mut version: u64) -> Result<(), fidl::Error> {
8121        self.control_handle.inner.send::<RunnerGetVersionResponse>(
8122            (version,),
8123            self.tx_id,
8124            0x555d1430b913cdd4,
8125            fidl::encoding::DynamicFlags::empty(),
8126        )
8127    }
8128}
8129
8130#[must_use = "FIDL methods require a response to be sent"]
8131#[derive(Debug)]
8132pub struct RunnerIsTestEnabledResponder {
8133    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8134    tx_id: u32,
8135}
8136
8137/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8138/// if the responder is dropped without sending a response, so that the client
8139/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8140impl std::ops::Drop for RunnerIsTestEnabledResponder {
8141    fn drop(&mut self) {
8142        self.control_handle.shutdown();
8143        // Safety: drops once, never accessed again
8144        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8145    }
8146}
8147
8148impl fidl::endpoints::Responder for RunnerIsTestEnabledResponder {
8149    type ControlHandle = RunnerControlHandle;
8150
8151    fn control_handle(&self) -> &RunnerControlHandle {
8152        &self.control_handle
8153    }
8154
8155    fn drop_without_shutdown(mut self) {
8156        // Safety: drops once, never accessed again due to mem::forget
8157        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8158        // Prevent Drop from running (which would shut down the channel)
8159        std::mem::forget(self);
8160    }
8161}
8162
8163impl RunnerIsTestEnabledResponder {
8164    /// Sends a response to the FIDL transaction.
8165    ///
8166    /// Sets the channel to shutdown if an error occurs.
8167    pub fn send(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8168        let _result = self.send_raw(is_enabled);
8169        if _result.is_err() {
8170            self.control_handle.shutdown();
8171        }
8172        self.drop_without_shutdown();
8173        _result
8174    }
8175
8176    /// Similar to "send" but does not shutdown the channel if an error occurs.
8177    pub fn send_no_shutdown_on_err(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8178        let _result = self.send_raw(is_enabled);
8179        self.drop_without_shutdown();
8180        _result
8181    }
8182
8183    fn send_raw(&self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8184        self.control_handle.inner.send::<RunnerIsTestEnabledResponse>(
8185            (is_enabled,),
8186            self.tx_id,
8187            0x755bc493368d7c50,
8188            fidl::encoding::DynamicFlags::empty(),
8189        )
8190    }
8191}
8192
8193#[must_use = "FIDL methods require a response to be sent"]
8194#[derive(Debug)]
8195pub struct RunnerCheckAliveResponder {
8196    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8197    tx_id: u32,
8198}
8199
8200/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8201/// if the responder is dropped without sending a response, so that the client
8202/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8203impl std::ops::Drop for RunnerCheckAliveResponder {
8204    fn drop(&mut self) {
8205        self.control_handle.shutdown();
8206        // Safety: drops once, never accessed again
8207        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8208    }
8209}
8210
8211impl fidl::endpoints::Responder for RunnerCheckAliveResponder {
8212    type ControlHandle = RunnerControlHandle;
8213
8214    fn control_handle(&self) -> &RunnerControlHandle {
8215        &self.control_handle
8216    }
8217
8218    fn drop_without_shutdown(mut self) {
8219        // Safety: drops once, never accessed again due to mem::forget
8220        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8221        // Prevent Drop from running (which would shut down the channel)
8222        std::mem::forget(self);
8223    }
8224}
8225
8226impl RunnerCheckAliveResponder {
8227    /// Sends a response to the FIDL transaction.
8228    ///
8229    /// Sets the channel to shutdown if an error occurs.
8230    pub fn send(self) -> Result<(), fidl::Error> {
8231        let _result = self.send_raw();
8232        if _result.is_err() {
8233            self.control_handle.shutdown();
8234        }
8235        self.drop_without_shutdown();
8236        _result
8237    }
8238
8239    /// Similar to "send" but does not shutdown the channel if an error occurs.
8240    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8241        let _result = self.send_raw();
8242        self.drop_without_shutdown();
8243        _result
8244    }
8245
8246    fn send_raw(&self) -> Result<(), fidl::Error> {
8247        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8248            (),
8249            self.tx_id,
8250            0x5a77b04abdfde130,
8251            fidl::encoding::DynamicFlags::empty(),
8252        )
8253    }
8254}
8255
8256#[must_use = "FIDL methods require a response to be sent"]
8257#[derive(Debug)]
8258pub struct RunnerGetBindingsPropertiesResponder {
8259    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8260    tx_id: u32,
8261}
8262
8263/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8264/// if the responder is dropped without sending a response, so that the client
8265/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8266impl std::ops::Drop for RunnerGetBindingsPropertiesResponder {
8267    fn drop(&mut self) {
8268        self.control_handle.shutdown();
8269        // Safety: drops once, never accessed again
8270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8271    }
8272}
8273
8274impl fidl::endpoints::Responder for RunnerGetBindingsPropertiesResponder {
8275    type ControlHandle = RunnerControlHandle;
8276
8277    fn control_handle(&self) -> &RunnerControlHandle {
8278        &self.control_handle
8279    }
8280
8281    fn drop_without_shutdown(mut self) {
8282        // Safety: drops once, never accessed again due to mem::forget
8283        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8284        // Prevent Drop from running (which would shut down the channel)
8285        std::mem::forget(self);
8286    }
8287}
8288
8289impl RunnerGetBindingsPropertiesResponder {
8290    /// Sends a response to the FIDL transaction.
8291    ///
8292    /// Sets the channel to shutdown if an error occurs.
8293    pub fn send(self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8294        let _result = self.send_raw(payload);
8295        if _result.is_err() {
8296            self.control_handle.shutdown();
8297        }
8298        self.drop_without_shutdown();
8299        _result
8300    }
8301
8302    /// Similar to "send" but does not shutdown the channel if an error occurs.
8303    pub fn send_no_shutdown_on_err(
8304        self,
8305        mut payload: &BindingsProperties,
8306    ) -> Result<(), fidl::Error> {
8307        let _result = self.send_raw(payload);
8308        self.drop_without_shutdown();
8309        _result
8310    }
8311
8312    fn send_raw(&self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8313        self.control_handle.inner.send::<BindingsProperties>(
8314            payload,
8315            self.tx_id,
8316            0x76b5610bfd4fa636,
8317            fidl::encoding::DynamicFlags::empty(),
8318        )
8319    }
8320}
8321
8322#[must_use = "FIDL methods require a response to be sent"]
8323#[derive(Debug)]
8324pub struct RunnerCallTwoWayNoPayloadResponder {
8325    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8326    tx_id: u32,
8327}
8328
8329/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8330/// if the responder is dropped without sending a response, so that the client
8331/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8332impl std::ops::Drop for RunnerCallTwoWayNoPayloadResponder {
8333    fn drop(&mut self) {
8334        self.control_handle.shutdown();
8335        // Safety: drops once, never accessed again
8336        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8337    }
8338}
8339
8340impl fidl::endpoints::Responder for RunnerCallTwoWayNoPayloadResponder {
8341    type ControlHandle = RunnerControlHandle;
8342
8343    fn control_handle(&self) -> &RunnerControlHandle {
8344        &self.control_handle
8345    }
8346
8347    fn drop_without_shutdown(mut self) {
8348        // Safety: drops once, never accessed again due to mem::forget
8349        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8350        // Prevent Drop from running (which would shut down the channel)
8351        std::mem::forget(self);
8352    }
8353}
8354
8355impl RunnerCallTwoWayNoPayloadResponder {
8356    /// Sends a response to the FIDL transaction.
8357    ///
8358    /// Sets the channel to shutdown if an error occurs.
8359    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8360        let _result = self.send_raw(payload);
8361        if _result.is_err() {
8362            self.control_handle.shutdown();
8363        }
8364        self.drop_without_shutdown();
8365        _result
8366    }
8367
8368    /// Similar to "send" but does not shutdown the channel if an error occurs.
8369    pub fn send_no_shutdown_on_err(
8370        self,
8371        mut payload: &EmptyResultClassification,
8372    ) -> Result<(), fidl::Error> {
8373        let _result = self.send_raw(payload);
8374        self.drop_without_shutdown();
8375        _result
8376    }
8377
8378    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8379        self.control_handle.inner.send::<EmptyResultClassification>(
8380            payload,
8381            self.tx_id,
8382            0x53ac710c20b320a1,
8383            fidl::encoding::DynamicFlags::empty(),
8384        )
8385    }
8386}
8387
8388#[must_use = "FIDL methods require a response to be sent"]
8389#[derive(Debug)]
8390pub struct RunnerCallTwoWayStructPayloadResponder {
8391    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8392    tx_id: u32,
8393}
8394
8395/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8396/// if the responder is dropped without sending a response, so that the client
8397/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8398impl std::ops::Drop for RunnerCallTwoWayStructPayloadResponder {
8399    fn drop(&mut self) {
8400        self.control_handle.shutdown();
8401        // Safety: drops once, never accessed again
8402        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8403    }
8404}
8405
8406impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadResponder {
8407    type ControlHandle = RunnerControlHandle;
8408
8409    fn control_handle(&self) -> &RunnerControlHandle {
8410        &self.control_handle
8411    }
8412
8413    fn drop_without_shutdown(mut self) {
8414        // Safety: drops once, never accessed again due to mem::forget
8415        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8416        // Prevent Drop from running (which would shut down the channel)
8417        std::mem::forget(self);
8418    }
8419}
8420
8421impl RunnerCallTwoWayStructPayloadResponder {
8422    /// Sends a response to the FIDL transaction.
8423    ///
8424    /// Sets the channel to shutdown if an error occurs.
8425    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8426        let _result = self.send_raw(payload);
8427        if _result.is_err() {
8428            self.control_handle.shutdown();
8429        }
8430        self.drop_without_shutdown();
8431        _result
8432    }
8433
8434    /// Similar to "send" but does not shutdown the channel if an error occurs.
8435    pub fn send_no_shutdown_on_err(
8436        self,
8437        mut payload: &NonEmptyResultClassification,
8438    ) -> Result<(), fidl::Error> {
8439        let _result = self.send_raw(payload);
8440        self.drop_without_shutdown();
8441        _result
8442    }
8443
8444    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8445        self.control_handle.inner.send::<NonEmptyResultClassification>(
8446            payload,
8447            self.tx_id,
8448            0x24e98c668499b946,
8449            fidl::encoding::DynamicFlags::empty(),
8450        )
8451    }
8452}
8453
8454#[must_use = "FIDL methods require a response to be sent"]
8455#[derive(Debug)]
8456pub struct RunnerCallTwoWayTablePayloadResponder {
8457    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8458    tx_id: u32,
8459}
8460
8461/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8462/// if the responder is dropped without sending a response, so that the client
8463/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8464impl std::ops::Drop for RunnerCallTwoWayTablePayloadResponder {
8465    fn drop(&mut self) {
8466        self.control_handle.shutdown();
8467        // Safety: drops once, never accessed again
8468        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8469    }
8470}
8471
8472impl fidl::endpoints::Responder for RunnerCallTwoWayTablePayloadResponder {
8473    type ControlHandle = RunnerControlHandle;
8474
8475    fn control_handle(&self) -> &RunnerControlHandle {
8476        &self.control_handle
8477    }
8478
8479    fn drop_without_shutdown(mut self) {
8480        // Safety: drops once, never accessed again due to mem::forget
8481        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8482        // Prevent Drop from running (which would shut down the channel)
8483        std::mem::forget(self);
8484    }
8485}
8486
8487impl RunnerCallTwoWayTablePayloadResponder {
8488    /// Sends a response to the FIDL transaction.
8489    ///
8490    /// Sets the channel to shutdown if an error occurs.
8491    pub fn send(self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8492        let _result = self.send_raw(payload);
8493        if _result.is_err() {
8494            self.control_handle.shutdown();
8495        }
8496        self.drop_without_shutdown();
8497        _result
8498    }
8499
8500    /// Similar to "send" but does not shutdown the channel if an error occurs.
8501    pub fn send_no_shutdown_on_err(
8502        self,
8503        mut payload: &TableResultClassification,
8504    ) -> Result<(), fidl::Error> {
8505        let _result = self.send_raw(payload);
8506        self.drop_without_shutdown();
8507        _result
8508    }
8509
8510    fn send_raw(&self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8511        self.control_handle.inner.send::<TableResultClassification>(
8512            payload,
8513            self.tx_id,
8514            0x72e428e1605b76a,
8515            fidl::encoding::DynamicFlags::empty(),
8516        )
8517    }
8518}
8519
8520#[must_use = "FIDL methods require a response to be sent"]
8521#[derive(Debug)]
8522pub struct RunnerCallTwoWayUnionPayloadResponder {
8523    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8524    tx_id: u32,
8525}
8526
8527/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8528/// if the responder is dropped without sending a response, so that the client
8529/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8530impl std::ops::Drop for RunnerCallTwoWayUnionPayloadResponder {
8531    fn drop(&mut self) {
8532        self.control_handle.shutdown();
8533        // Safety: drops once, never accessed again
8534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8535    }
8536}
8537
8538impl fidl::endpoints::Responder for RunnerCallTwoWayUnionPayloadResponder {
8539    type ControlHandle = RunnerControlHandle;
8540
8541    fn control_handle(&self) -> &RunnerControlHandle {
8542        &self.control_handle
8543    }
8544
8545    fn drop_without_shutdown(mut self) {
8546        // Safety: drops once, never accessed again due to mem::forget
8547        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8548        // Prevent Drop from running (which would shut down the channel)
8549        std::mem::forget(self);
8550    }
8551}
8552
8553impl RunnerCallTwoWayUnionPayloadResponder {
8554    /// Sends a response to the FIDL transaction.
8555    ///
8556    /// Sets the channel to shutdown if an error occurs.
8557    pub fn send(self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8558        let _result = self.send_raw(payload);
8559        if _result.is_err() {
8560            self.control_handle.shutdown();
8561        }
8562        self.drop_without_shutdown();
8563        _result
8564    }
8565
8566    /// Similar to "send" but does not shutdown the channel if an error occurs.
8567    pub fn send_no_shutdown_on_err(
8568        self,
8569        mut payload: &UnionResultClassification,
8570    ) -> Result<(), fidl::Error> {
8571        let _result = self.send_raw(payload);
8572        self.drop_without_shutdown();
8573        _result
8574    }
8575
8576    fn send_raw(&self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8577        self.control_handle.inner.send::<UnionResultClassification>(
8578            payload,
8579            self.tx_id,
8580            0x7dc9d67218343860,
8581            fidl::encoding::DynamicFlags::empty(),
8582        )
8583    }
8584}
8585
8586#[must_use = "FIDL methods require a response to be sent"]
8587#[derive(Debug)]
8588pub struct RunnerCallTwoWayStructPayloadErrResponder {
8589    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8590    tx_id: u32,
8591}
8592
8593/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8594/// if the responder is dropped without sending a response, so that the client
8595/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8596impl std::ops::Drop for RunnerCallTwoWayStructPayloadErrResponder {
8597    fn drop(&mut self) {
8598        self.control_handle.shutdown();
8599        // Safety: drops once, never accessed again
8600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8601    }
8602}
8603
8604impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadErrResponder {
8605    type ControlHandle = RunnerControlHandle;
8606
8607    fn control_handle(&self) -> &RunnerControlHandle {
8608        &self.control_handle
8609    }
8610
8611    fn drop_without_shutdown(mut self) {
8612        // Safety: drops once, never accessed again due to mem::forget
8613        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8614        // Prevent Drop from running (which would shut down the channel)
8615        std::mem::forget(self);
8616    }
8617}
8618
8619impl RunnerCallTwoWayStructPayloadErrResponder {
8620    /// Sends a response to the FIDL transaction.
8621    ///
8622    /// Sets the channel to shutdown if an error occurs.
8623    pub fn send(
8624        self,
8625        mut payload: &NonEmptyResultWithErrorClassification,
8626    ) -> Result<(), fidl::Error> {
8627        let _result = self.send_raw(payload);
8628        if _result.is_err() {
8629            self.control_handle.shutdown();
8630        }
8631        self.drop_without_shutdown();
8632        _result
8633    }
8634
8635    /// Similar to "send" but does not shutdown the channel if an error occurs.
8636    pub fn send_no_shutdown_on_err(
8637        self,
8638        mut payload: &NonEmptyResultWithErrorClassification,
8639    ) -> Result<(), fidl::Error> {
8640        let _result = self.send_raw(payload);
8641        self.drop_without_shutdown();
8642        _result
8643    }
8644
8645    fn send_raw(
8646        &self,
8647        mut payload: &NonEmptyResultWithErrorClassification,
8648    ) -> Result<(), fidl::Error> {
8649        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
8650            payload,
8651            self.tx_id,
8652            0x2b07a57942c5f6e5,
8653            fidl::encoding::DynamicFlags::empty(),
8654        )
8655    }
8656}
8657
8658#[must_use = "FIDL methods require a response to be sent"]
8659#[derive(Debug)]
8660pub struct RunnerCallTwoWayStructRequestResponder {
8661    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8662    tx_id: u32,
8663}
8664
8665/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8666/// if the responder is dropped without sending a response, so that the client
8667/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8668impl std::ops::Drop for RunnerCallTwoWayStructRequestResponder {
8669    fn drop(&mut self) {
8670        self.control_handle.shutdown();
8671        // Safety: drops once, never accessed again
8672        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8673    }
8674}
8675
8676impl fidl::endpoints::Responder for RunnerCallTwoWayStructRequestResponder {
8677    type ControlHandle = RunnerControlHandle;
8678
8679    fn control_handle(&self) -> &RunnerControlHandle {
8680        &self.control_handle
8681    }
8682
8683    fn drop_without_shutdown(mut self) {
8684        // Safety: drops once, never accessed again due to mem::forget
8685        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8686        // Prevent Drop from running (which would shut down the channel)
8687        std::mem::forget(self);
8688    }
8689}
8690
8691impl RunnerCallTwoWayStructRequestResponder {
8692    /// Sends a response to the FIDL transaction.
8693    ///
8694    /// Sets the channel to shutdown if an error occurs.
8695    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8696        let _result = self.send_raw(payload);
8697        if _result.is_err() {
8698            self.control_handle.shutdown();
8699        }
8700        self.drop_without_shutdown();
8701        _result
8702    }
8703
8704    /// Similar to "send" but does not shutdown the channel if an error occurs.
8705    pub fn send_no_shutdown_on_err(
8706        self,
8707        mut payload: &EmptyResultClassification,
8708    ) -> Result<(), fidl::Error> {
8709        let _result = self.send_raw(payload);
8710        self.drop_without_shutdown();
8711        _result
8712    }
8713
8714    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8715        self.control_handle.inner.send::<EmptyResultClassification>(
8716            payload,
8717            self.tx_id,
8718            0x7c00a6ba2e6c9b45,
8719            fidl::encoding::DynamicFlags::empty(),
8720        )
8721    }
8722}
8723
8724#[must_use = "FIDL methods require a response to be sent"]
8725#[derive(Debug)]
8726pub struct RunnerCallTwoWayTableRequestResponder {
8727    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8728    tx_id: u32,
8729}
8730
8731/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8732/// if the responder is dropped without sending a response, so that the client
8733/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8734impl std::ops::Drop for RunnerCallTwoWayTableRequestResponder {
8735    fn drop(&mut self) {
8736        self.control_handle.shutdown();
8737        // Safety: drops once, never accessed again
8738        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8739    }
8740}
8741
8742impl fidl::endpoints::Responder for RunnerCallTwoWayTableRequestResponder {
8743    type ControlHandle = RunnerControlHandle;
8744
8745    fn control_handle(&self) -> &RunnerControlHandle {
8746        &self.control_handle
8747    }
8748
8749    fn drop_without_shutdown(mut self) {
8750        // Safety: drops once, never accessed again due to mem::forget
8751        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8752        // Prevent Drop from running (which would shut down the channel)
8753        std::mem::forget(self);
8754    }
8755}
8756
8757impl RunnerCallTwoWayTableRequestResponder {
8758    /// Sends a response to the FIDL transaction.
8759    ///
8760    /// Sets the channel to shutdown if an error occurs.
8761    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8762        let _result = self.send_raw(payload);
8763        if _result.is_err() {
8764            self.control_handle.shutdown();
8765        }
8766        self.drop_without_shutdown();
8767        _result
8768    }
8769
8770    /// Similar to "send" but does not shutdown the channel if an error occurs.
8771    pub fn send_no_shutdown_on_err(
8772        self,
8773        mut payload: &EmptyResultClassification,
8774    ) -> Result<(), fidl::Error> {
8775        let _result = self.send_raw(payload);
8776        self.drop_without_shutdown();
8777        _result
8778    }
8779
8780    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8781        self.control_handle.inner.send::<EmptyResultClassification>(
8782            payload,
8783            self.tx_id,
8784            0x641763237d3885be,
8785            fidl::encoding::DynamicFlags::empty(),
8786        )
8787    }
8788}
8789
8790#[must_use = "FIDL methods require a response to be sent"]
8791#[derive(Debug)]
8792pub struct RunnerCallTwoWayUnionRequestResponder {
8793    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8794    tx_id: u32,
8795}
8796
8797/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8798/// if the responder is dropped without sending a response, so that the client
8799/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8800impl std::ops::Drop for RunnerCallTwoWayUnionRequestResponder {
8801    fn drop(&mut self) {
8802        self.control_handle.shutdown();
8803        // Safety: drops once, never accessed again
8804        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8805    }
8806}
8807
8808impl fidl::endpoints::Responder for RunnerCallTwoWayUnionRequestResponder {
8809    type ControlHandle = RunnerControlHandle;
8810
8811    fn control_handle(&self) -> &RunnerControlHandle {
8812        &self.control_handle
8813    }
8814
8815    fn drop_without_shutdown(mut self) {
8816        // Safety: drops once, never accessed again due to mem::forget
8817        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8818        // Prevent Drop from running (which would shut down the channel)
8819        std::mem::forget(self);
8820    }
8821}
8822
8823impl RunnerCallTwoWayUnionRequestResponder {
8824    /// Sends a response to the FIDL transaction.
8825    ///
8826    /// Sets the channel to shutdown if an error occurs.
8827    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8828        let _result = self.send_raw(payload);
8829        if _result.is_err() {
8830            self.control_handle.shutdown();
8831        }
8832        self.drop_without_shutdown();
8833        _result
8834    }
8835
8836    /// Similar to "send" but does not shutdown the channel if an error occurs.
8837    pub fn send_no_shutdown_on_err(
8838        self,
8839        mut payload: &EmptyResultClassification,
8840    ) -> Result<(), fidl::Error> {
8841        let _result = self.send_raw(payload);
8842        self.drop_without_shutdown();
8843        _result
8844    }
8845
8846    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8847        self.control_handle.inner.send::<EmptyResultClassification>(
8848            payload,
8849            self.tx_id,
8850            0x4be5f061df42619e,
8851            fidl::encoding::DynamicFlags::empty(),
8852        )
8853    }
8854}
8855
8856#[must_use = "FIDL methods require a response to be sent"]
8857#[derive(Debug)]
8858pub struct RunnerCallOneWayNoRequestResponder {
8859    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8860    tx_id: u32,
8861}
8862
8863/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8864/// if the responder is dropped without sending a response, so that the client
8865/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8866impl std::ops::Drop for RunnerCallOneWayNoRequestResponder {
8867    fn drop(&mut self) {
8868        self.control_handle.shutdown();
8869        // Safety: drops once, never accessed again
8870        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8871    }
8872}
8873
8874impl fidl::endpoints::Responder for RunnerCallOneWayNoRequestResponder {
8875    type ControlHandle = RunnerControlHandle;
8876
8877    fn control_handle(&self) -> &RunnerControlHandle {
8878        &self.control_handle
8879    }
8880
8881    fn drop_without_shutdown(mut self) {
8882        // Safety: drops once, never accessed again due to mem::forget
8883        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8884        // Prevent Drop from running (which would shut down the channel)
8885        std::mem::forget(self);
8886    }
8887}
8888
8889impl RunnerCallOneWayNoRequestResponder {
8890    /// Sends a response to the FIDL transaction.
8891    ///
8892    /// Sets the channel to shutdown if an error occurs.
8893    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8894        let _result = self.send_raw(payload);
8895        if _result.is_err() {
8896            self.control_handle.shutdown();
8897        }
8898        self.drop_without_shutdown();
8899        _result
8900    }
8901
8902    /// Similar to "send" but does not shutdown the channel if an error occurs.
8903    pub fn send_no_shutdown_on_err(
8904        self,
8905        mut payload: &EmptyResultClassification,
8906    ) -> Result<(), fidl::Error> {
8907        let _result = self.send_raw(payload);
8908        self.drop_without_shutdown();
8909        _result
8910    }
8911
8912    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8913        self.control_handle.inner.send::<EmptyResultClassification>(
8914            payload,
8915            self.tx_id,
8916            0x24b6eea8cbdccc09,
8917            fidl::encoding::DynamicFlags::empty(),
8918        )
8919    }
8920}
8921
8922#[must_use = "FIDL methods require a response to be sent"]
8923#[derive(Debug)]
8924pub struct RunnerCallOneWayStructRequestResponder {
8925    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8926    tx_id: u32,
8927}
8928
8929/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8930/// if the responder is dropped without sending a response, so that the client
8931/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8932impl std::ops::Drop for RunnerCallOneWayStructRequestResponder {
8933    fn drop(&mut self) {
8934        self.control_handle.shutdown();
8935        // Safety: drops once, never accessed again
8936        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8937    }
8938}
8939
8940impl fidl::endpoints::Responder for RunnerCallOneWayStructRequestResponder {
8941    type ControlHandle = RunnerControlHandle;
8942
8943    fn control_handle(&self) -> &RunnerControlHandle {
8944        &self.control_handle
8945    }
8946
8947    fn drop_without_shutdown(mut self) {
8948        // Safety: drops once, never accessed again due to mem::forget
8949        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8950        // Prevent Drop from running (which would shut down the channel)
8951        std::mem::forget(self);
8952    }
8953}
8954
8955impl RunnerCallOneWayStructRequestResponder {
8956    /// Sends a response to the FIDL transaction.
8957    ///
8958    /// Sets the channel to shutdown if an error occurs.
8959    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8960        let _result = self.send_raw(payload);
8961        if _result.is_err() {
8962            self.control_handle.shutdown();
8963        }
8964        self.drop_without_shutdown();
8965        _result
8966    }
8967
8968    /// Similar to "send" but does not shutdown the channel if an error occurs.
8969    pub fn send_no_shutdown_on_err(
8970        self,
8971        mut payload: &EmptyResultClassification,
8972    ) -> Result<(), fidl::Error> {
8973        let _result = self.send_raw(payload);
8974        self.drop_without_shutdown();
8975        _result
8976    }
8977
8978    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8979        self.control_handle.inner.send::<EmptyResultClassification>(
8980            payload,
8981            self.tx_id,
8982            0x352a2907a0fcb420,
8983            fidl::encoding::DynamicFlags::empty(),
8984        )
8985    }
8986}
8987
8988#[must_use = "FIDL methods require a response to be sent"]
8989#[derive(Debug)]
8990pub struct RunnerCallOneWayTableRequestResponder {
8991    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8992    tx_id: u32,
8993}
8994
8995/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8996/// if the responder is dropped without sending a response, so that the client
8997/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8998impl std::ops::Drop for RunnerCallOneWayTableRequestResponder {
8999    fn drop(&mut self) {
9000        self.control_handle.shutdown();
9001        // Safety: drops once, never accessed again
9002        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9003    }
9004}
9005
9006impl fidl::endpoints::Responder for RunnerCallOneWayTableRequestResponder {
9007    type ControlHandle = RunnerControlHandle;
9008
9009    fn control_handle(&self) -> &RunnerControlHandle {
9010        &self.control_handle
9011    }
9012
9013    fn drop_without_shutdown(mut self) {
9014        // Safety: drops once, never accessed again due to mem::forget
9015        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9016        // Prevent Drop from running (which would shut down the channel)
9017        std::mem::forget(self);
9018    }
9019}
9020
9021impl RunnerCallOneWayTableRequestResponder {
9022    /// Sends a response to the FIDL transaction.
9023    ///
9024    /// Sets the channel to shutdown if an error occurs.
9025    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9026        let _result = self.send_raw(payload);
9027        if _result.is_err() {
9028            self.control_handle.shutdown();
9029        }
9030        self.drop_without_shutdown();
9031        _result
9032    }
9033
9034    /// Similar to "send" but does not shutdown the channel if an error occurs.
9035    pub fn send_no_shutdown_on_err(
9036        self,
9037        mut payload: &EmptyResultClassification,
9038    ) -> Result<(), fidl::Error> {
9039        let _result = self.send_raw(payload);
9040        self.drop_without_shutdown();
9041        _result
9042    }
9043
9044    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9045        self.control_handle.inner.send::<EmptyResultClassification>(
9046            payload,
9047            self.tx_id,
9048            0x734121bf8bf336ef,
9049            fidl::encoding::DynamicFlags::empty(),
9050        )
9051    }
9052}
9053
9054#[must_use = "FIDL methods require a response to be sent"]
9055#[derive(Debug)]
9056pub struct RunnerCallOneWayUnionRequestResponder {
9057    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9058    tx_id: u32,
9059}
9060
9061/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9062/// if the responder is dropped without sending a response, so that the client
9063/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9064impl std::ops::Drop for RunnerCallOneWayUnionRequestResponder {
9065    fn drop(&mut self) {
9066        self.control_handle.shutdown();
9067        // Safety: drops once, never accessed again
9068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9069    }
9070}
9071
9072impl fidl::endpoints::Responder for RunnerCallOneWayUnionRequestResponder {
9073    type ControlHandle = RunnerControlHandle;
9074
9075    fn control_handle(&self) -> &RunnerControlHandle {
9076        &self.control_handle
9077    }
9078
9079    fn drop_without_shutdown(mut self) {
9080        // Safety: drops once, never accessed again due to mem::forget
9081        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9082        // Prevent Drop from running (which would shut down the channel)
9083        std::mem::forget(self);
9084    }
9085}
9086
9087impl RunnerCallOneWayUnionRequestResponder {
9088    /// Sends a response to the FIDL transaction.
9089    ///
9090    /// Sets the channel to shutdown if an error occurs.
9091    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9092        let _result = self.send_raw(payload);
9093        if _result.is_err() {
9094            self.control_handle.shutdown();
9095        }
9096        self.drop_without_shutdown();
9097        _result
9098    }
9099
9100    /// Similar to "send" but does not shutdown the channel if an error occurs.
9101    pub fn send_no_shutdown_on_err(
9102        self,
9103        mut payload: &EmptyResultClassification,
9104    ) -> Result<(), fidl::Error> {
9105        let _result = self.send_raw(payload);
9106        self.drop_without_shutdown();
9107        _result
9108    }
9109
9110    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9111        self.control_handle.inner.send::<EmptyResultClassification>(
9112            payload,
9113            self.tx_id,
9114            0x9be8e5eb7d50eb6,
9115            fidl::encoding::DynamicFlags::empty(),
9116        )
9117    }
9118}
9119
9120#[must_use = "FIDL methods require a response to be sent"]
9121#[derive(Debug)]
9122pub struct RunnerCallStrictOneWayResponder {
9123    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9124    tx_id: u32,
9125}
9126
9127/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9128/// if the responder is dropped without sending a response, so that the client
9129/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9130impl std::ops::Drop for RunnerCallStrictOneWayResponder {
9131    fn drop(&mut self) {
9132        self.control_handle.shutdown();
9133        // Safety: drops once, never accessed again
9134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9135    }
9136}
9137
9138impl fidl::endpoints::Responder for RunnerCallStrictOneWayResponder {
9139    type ControlHandle = RunnerControlHandle;
9140
9141    fn control_handle(&self) -> &RunnerControlHandle {
9142        &self.control_handle
9143    }
9144
9145    fn drop_without_shutdown(mut self) {
9146        // Safety: drops once, never accessed again due to mem::forget
9147        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9148        // Prevent Drop from running (which would shut down the channel)
9149        std::mem::forget(self);
9150    }
9151}
9152
9153impl RunnerCallStrictOneWayResponder {
9154    /// Sends a response to the FIDL transaction.
9155    ///
9156    /// Sets the channel to shutdown if an error occurs.
9157    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9158        let _result = self.send_raw(payload);
9159        if _result.is_err() {
9160            self.control_handle.shutdown();
9161        }
9162        self.drop_without_shutdown();
9163        _result
9164    }
9165
9166    /// Similar to "send" but does not shutdown the channel if an error occurs.
9167    pub fn send_no_shutdown_on_err(
9168        self,
9169        mut payload: &EmptyResultClassification,
9170    ) -> Result<(), fidl::Error> {
9171        let _result = self.send_raw(payload);
9172        self.drop_without_shutdown();
9173        _result
9174    }
9175
9176    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9177        self.control_handle.inner.send::<EmptyResultClassification>(
9178            payload,
9179            self.tx_id,
9180            0x4edd0b6f52c0446b,
9181            fidl::encoding::DynamicFlags::empty(),
9182        )
9183    }
9184}
9185
9186#[must_use = "FIDL methods require a response to be sent"]
9187#[derive(Debug)]
9188pub struct RunnerCallFlexibleOneWayResponder {
9189    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9190    tx_id: u32,
9191}
9192
9193/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9194/// if the responder is dropped without sending a response, so that the client
9195/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9196impl std::ops::Drop for RunnerCallFlexibleOneWayResponder {
9197    fn drop(&mut self) {
9198        self.control_handle.shutdown();
9199        // Safety: drops once, never accessed again
9200        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9201    }
9202}
9203
9204impl fidl::endpoints::Responder for RunnerCallFlexibleOneWayResponder {
9205    type ControlHandle = RunnerControlHandle;
9206
9207    fn control_handle(&self) -> &RunnerControlHandle {
9208        &self.control_handle
9209    }
9210
9211    fn drop_without_shutdown(mut self) {
9212        // Safety: drops once, never accessed again due to mem::forget
9213        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9214        // Prevent Drop from running (which would shut down the channel)
9215        std::mem::forget(self);
9216    }
9217}
9218
9219impl RunnerCallFlexibleOneWayResponder {
9220    /// Sends a response to the FIDL transaction.
9221    ///
9222    /// Sets the channel to shutdown if an error occurs.
9223    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9224        let _result = self.send_raw(payload);
9225        if _result.is_err() {
9226            self.control_handle.shutdown();
9227        }
9228        self.drop_without_shutdown();
9229        _result
9230    }
9231
9232    /// Similar to "send" but does not shutdown the channel if an error occurs.
9233    pub fn send_no_shutdown_on_err(
9234        self,
9235        mut payload: &EmptyResultClassification,
9236    ) -> Result<(), fidl::Error> {
9237        let _result = self.send_raw(payload);
9238        self.drop_without_shutdown();
9239        _result
9240    }
9241
9242    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9243        self.control_handle.inner.send::<EmptyResultClassification>(
9244            payload,
9245            self.tx_id,
9246            0x7253f10a77dfe817,
9247            fidl::encoding::DynamicFlags::empty(),
9248        )
9249    }
9250}
9251
9252#[must_use = "FIDL methods require a response to be sent"]
9253#[derive(Debug)]
9254pub struct RunnerCallStrictTwoWayResponder {
9255    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9256    tx_id: u32,
9257}
9258
9259/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9260/// if the responder is dropped without sending a response, so that the client
9261/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9262impl std::ops::Drop for RunnerCallStrictTwoWayResponder {
9263    fn drop(&mut self) {
9264        self.control_handle.shutdown();
9265        // Safety: drops once, never accessed again
9266        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9267    }
9268}
9269
9270impl fidl::endpoints::Responder for RunnerCallStrictTwoWayResponder {
9271    type ControlHandle = RunnerControlHandle;
9272
9273    fn control_handle(&self) -> &RunnerControlHandle {
9274        &self.control_handle
9275    }
9276
9277    fn drop_without_shutdown(mut self) {
9278        // Safety: drops once, never accessed again due to mem::forget
9279        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9280        // Prevent Drop from running (which would shut down the channel)
9281        std::mem::forget(self);
9282    }
9283}
9284
9285impl RunnerCallStrictTwoWayResponder {
9286    /// Sends a response to the FIDL transaction.
9287    ///
9288    /// Sets the channel to shutdown if an error occurs.
9289    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9290        let _result = self.send_raw(payload);
9291        if _result.is_err() {
9292            self.control_handle.shutdown();
9293        }
9294        self.drop_without_shutdown();
9295        _result
9296    }
9297
9298    /// Similar to "send" but does not shutdown the channel if an error occurs.
9299    pub fn send_no_shutdown_on_err(
9300        self,
9301        mut payload: &EmptyResultClassification,
9302    ) -> Result<(), fidl::Error> {
9303        let _result = self.send_raw(payload);
9304        self.drop_without_shutdown();
9305        _result
9306    }
9307
9308    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9309        self.control_handle.inner.send::<EmptyResultClassification>(
9310            payload,
9311            self.tx_id,
9312            0x1fa9fb7414aedd27,
9313            fidl::encoding::DynamicFlags::empty(),
9314        )
9315    }
9316}
9317
9318#[must_use = "FIDL methods require a response to be sent"]
9319#[derive(Debug)]
9320pub struct RunnerCallStrictTwoWayFieldsResponder {
9321    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9322    tx_id: u32,
9323}
9324
9325/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9326/// if the responder is dropped without sending a response, so that the client
9327/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9328impl std::ops::Drop for RunnerCallStrictTwoWayFieldsResponder {
9329    fn drop(&mut self) {
9330        self.control_handle.shutdown();
9331        // Safety: drops once, never accessed again
9332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9333    }
9334}
9335
9336impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsResponder {
9337    type ControlHandle = RunnerControlHandle;
9338
9339    fn control_handle(&self) -> &RunnerControlHandle {
9340        &self.control_handle
9341    }
9342
9343    fn drop_without_shutdown(mut self) {
9344        // Safety: drops once, never accessed again due to mem::forget
9345        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9346        // Prevent Drop from running (which would shut down the channel)
9347        std::mem::forget(self);
9348    }
9349}
9350
9351impl RunnerCallStrictTwoWayFieldsResponder {
9352    /// Sends a response to the FIDL transaction.
9353    ///
9354    /// Sets the channel to shutdown if an error occurs.
9355    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9356        let _result = self.send_raw(payload);
9357        if _result.is_err() {
9358            self.control_handle.shutdown();
9359        }
9360        self.drop_without_shutdown();
9361        _result
9362    }
9363
9364    /// Similar to "send" but does not shutdown the channel if an error occurs.
9365    pub fn send_no_shutdown_on_err(
9366        self,
9367        mut payload: &NonEmptyResultClassification,
9368    ) -> Result<(), fidl::Error> {
9369        let _result = self.send_raw(payload);
9370        self.drop_without_shutdown();
9371        _result
9372    }
9373
9374    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9375        self.control_handle.inner.send::<NonEmptyResultClassification>(
9376            payload,
9377            self.tx_id,
9378            0x6f690e00ebf6f123,
9379            fidl::encoding::DynamicFlags::empty(),
9380        )
9381    }
9382}
9383
9384#[must_use = "FIDL methods require a response to be sent"]
9385#[derive(Debug)]
9386pub struct RunnerCallStrictTwoWayErrResponder {
9387    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9388    tx_id: u32,
9389}
9390
9391/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9392/// if the responder is dropped without sending a response, so that the client
9393/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9394impl std::ops::Drop for RunnerCallStrictTwoWayErrResponder {
9395    fn drop(&mut self) {
9396        self.control_handle.shutdown();
9397        // Safety: drops once, never accessed again
9398        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9399    }
9400}
9401
9402impl fidl::endpoints::Responder for RunnerCallStrictTwoWayErrResponder {
9403    type ControlHandle = RunnerControlHandle;
9404
9405    fn control_handle(&self) -> &RunnerControlHandle {
9406        &self.control_handle
9407    }
9408
9409    fn drop_without_shutdown(mut self) {
9410        // Safety: drops once, never accessed again due to mem::forget
9411        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9412        // Prevent Drop from running (which would shut down the channel)
9413        std::mem::forget(self);
9414    }
9415}
9416
9417impl RunnerCallStrictTwoWayErrResponder {
9418    /// Sends a response to the FIDL transaction.
9419    ///
9420    /// Sets the channel to shutdown if an error occurs.
9421    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9422        let _result = self.send_raw(payload);
9423        if _result.is_err() {
9424            self.control_handle.shutdown();
9425        }
9426        self.drop_without_shutdown();
9427        _result
9428    }
9429
9430    /// Similar to "send" but does not shutdown the channel if an error occurs.
9431    pub fn send_no_shutdown_on_err(
9432        self,
9433        mut payload: &EmptyResultWithErrorClassification,
9434    ) -> Result<(), fidl::Error> {
9435        let _result = self.send_raw(payload);
9436        self.drop_without_shutdown();
9437        _result
9438    }
9439
9440    fn send_raw(
9441        &self,
9442        mut payload: &EmptyResultWithErrorClassification,
9443    ) -> Result<(), fidl::Error> {
9444        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9445            payload,
9446            self.tx_id,
9447            0x51d6bc7cf6cbaf1a,
9448            fidl::encoding::DynamicFlags::empty(),
9449        )
9450    }
9451}
9452
9453#[must_use = "FIDL methods require a response to be sent"]
9454#[derive(Debug)]
9455pub struct RunnerCallStrictTwoWayFieldsErrResponder {
9456    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9457    tx_id: u32,
9458}
9459
9460/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9461/// if the responder is dropped without sending a response, so that the client
9462/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9463impl std::ops::Drop for RunnerCallStrictTwoWayFieldsErrResponder {
9464    fn drop(&mut self) {
9465        self.control_handle.shutdown();
9466        // Safety: drops once, never accessed again
9467        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9468    }
9469}
9470
9471impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsErrResponder {
9472    type ControlHandle = RunnerControlHandle;
9473
9474    fn control_handle(&self) -> &RunnerControlHandle {
9475        &self.control_handle
9476    }
9477
9478    fn drop_without_shutdown(mut self) {
9479        // Safety: drops once, never accessed again due to mem::forget
9480        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9481        // Prevent Drop from running (which would shut down the channel)
9482        std::mem::forget(self);
9483    }
9484}
9485
9486impl RunnerCallStrictTwoWayFieldsErrResponder {
9487    /// Sends a response to the FIDL transaction.
9488    ///
9489    /// Sets the channel to shutdown if an error occurs.
9490    pub fn send(
9491        self,
9492        mut payload: &NonEmptyResultWithErrorClassification,
9493    ) -> Result<(), fidl::Error> {
9494        let _result = self.send_raw(payload);
9495        if _result.is_err() {
9496            self.control_handle.shutdown();
9497        }
9498        self.drop_without_shutdown();
9499        _result
9500    }
9501
9502    /// Similar to "send" but does not shutdown the channel if an error occurs.
9503    pub fn send_no_shutdown_on_err(
9504        self,
9505        mut payload: &NonEmptyResultWithErrorClassification,
9506    ) -> Result<(), fidl::Error> {
9507        let _result = self.send_raw(payload);
9508        self.drop_without_shutdown();
9509        _result
9510    }
9511
9512    fn send_raw(
9513        &self,
9514        mut payload: &NonEmptyResultWithErrorClassification,
9515    ) -> Result<(), fidl::Error> {
9516        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9517            payload,
9518            self.tx_id,
9519            0x6fa31ced05074c05,
9520            fidl::encoding::DynamicFlags::empty(),
9521        )
9522    }
9523}
9524
9525#[must_use = "FIDL methods require a response to be sent"]
9526#[derive(Debug)]
9527pub struct RunnerCallFlexibleTwoWayResponder {
9528    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9529    tx_id: u32,
9530}
9531
9532/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9533/// if the responder is dropped without sending a response, so that the client
9534/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9535impl std::ops::Drop for RunnerCallFlexibleTwoWayResponder {
9536    fn drop(&mut self) {
9537        self.control_handle.shutdown();
9538        // Safety: drops once, never accessed again
9539        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9540    }
9541}
9542
9543impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayResponder {
9544    type ControlHandle = RunnerControlHandle;
9545
9546    fn control_handle(&self) -> &RunnerControlHandle {
9547        &self.control_handle
9548    }
9549
9550    fn drop_without_shutdown(mut self) {
9551        // Safety: drops once, never accessed again due to mem::forget
9552        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9553        // Prevent Drop from running (which would shut down the channel)
9554        std::mem::forget(self);
9555    }
9556}
9557
9558impl RunnerCallFlexibleTwoWayResponder {
9559    /// Sends a response to the FIDL transaction.
9560    ///
9561    /// Sets the channel to shutdown if an error occurs.
9562    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9563        let _result = self.send_raw(payload);
9564        if _result.is_err() {
9565            self.control_handle.shutdown();
9566        }
9567        self.drop_without_shutdown();
9568        _result
9569    }
9570
9571    /// Similar to "send" but does not shutdown the channel if an error occurs.
9572    pub fn send_no_shutdown_on_err(
9573        self,
9574        mut payload: &EmptyResultClassification,
9575    ) -> Result<(), fidl::Error> {
9576        let _result = self.send_raw(payload);
9577        self.drop_without_shutdown();
9578        _result
9579    }
9580
9581    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9582        self.control_handle.inner.send::<EmptyResultClassification>(
9583            payload,
9584            self.tx_id,
9585            0x411f70724876d49,
9586            fidl::encoding::DynamicFlags::empty(),
9587        )
9588    }
9589}
9590
9591#[must_use = "FIDL methods require a response to be sent"]
9592#[derive(Debug)]
9593pub struct RunnerCallFlexibleTwoWayFieldsResponder {
9594    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9595    tx_id: u32,
9596}
9597
9598/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9599/// if the responder is dropped without sending a response, so that the client
9600/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9601impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsResponder {
9602    fn drop(&mut self) {
9603        self.control_handle.shutdown();
9604        // Safety: drops once, never accessed again
9605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9606    }
9607}
9608
9609impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsResponder {
9610    type ControlHandle = RunnerControlHandle;
9611
9612    fn control_handle(&self) -> &RunnerControlHandle {
9613        &self.control_handle
9614    }
9615
9616    fn drop_without_shutdown(mut self) {
9617        // Safety: drops once, never accessed again due to mem::forget
9618        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9619        // Prevent Drop from running (which would shut down the channel)
9620        std::mem::forget(self);
9621    }
9622}
9623
9624impl RunnerCallFlexibleTwoWayFieldsResponder {
9625    /// Sends a response to the FIDL transaction.
9626    ///
9627    /// Sets the channel to shutdown if an error occurs.
9628    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9629        let _result = self.send_raw(payload);
9630        if _result.is_err() {
9631            self.control_handle.shutdown();
9632        }
9633        self.drop_without_shutdown();
9634        _result
9635    }
9636
9637    /// Similar to "send" but does not shutdown the channel if an error occurs.
9638    pub fn send_no_shutdown_on_err(
9639        self,
9640        mut payload: &NonEmptyResultClassification,
9641    ) -> Result<(), fidl::Error> {
9642        let _result = self.send_raw(payload);
9643        self.drop_without_shutdown();
9644        _result
9645    }
9646
9647    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9648        self.control_handle.inner.send::<NonEmptyResultClassification>(
9649            payload,
9650            self.tx_id,
9651            0x330996b623598eed,
9652            fidl::encoding::DynamicFlags::empty(),
9653        )
9654    }
9655}
9656
9657#[must_use = "FIDL methods require a response to be sent"]
9658#[derive(Debug)]
9659pub struct RunnerCallFlexibleTwoWayErrResponder {
9660    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9661    tx_id: u32,
9662}
9663
9664/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9665/// if the responder is dropped without sending a response, so that the client
9666/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9667impl std::ops::Drop for RunnerCallFlexibleTwoWayErrResponder {
9668    fn drop(&mut self) {
9669        self.control_handle.shutdown();
9670        // Safety: drops once, never accessed again
9671        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9672    }
9673}
9674
9675impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayErrResponder {
9676    type ControlHandle = RunnerControlHandle;
9677
9678    fn control_handle(&self) -> &RunnerControlHandle {
9679        &self.control_handle
9680    }
9681
9682    fn drop_without_shutdown(mut self) {
9683        // Safety: drops once, never accessed again due to mem::forget
9684        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9685        // Prevent Drop from running (which would shut down the channel)
9686        std::mem::forget(self);
9687    }
9688}
9689
9690impl RunnerCallFlexibleTwoWayErrResponder {
9691    /// Sends a response to the FIDL transaction.
9692    ///
9693    /// Sets the channel to shutdown if an error occurs.
9694    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9695        let _result = self.send_raw(payload);
9696        if _result.is_err() {
9697            self.control_handle.shutdown();
9698        }
9699        self.drop_without_shutdown();
9700        _result
9701    }
9702
9703    /// Similar to "send" but does not shutdown the channel if an error occurs.
9704    pub fn send_no_shutdown_on_err(
9705        self,
9706        mut payload: &EmptyResultWithErrorClassification,
9707    ) -> Result<(), fidl::Error> {
9708        let _result = self.send_raw(payload);
9709        self.drop_without_shutdown();
9710        _result
9711    }
9712
9713    fn send_raw(
9714        &self,
9715        mut payload: &EmptyResultWithErrorClassification,
9716    ) -> Result<(), fidl::Error> {
9717        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9718            payload,
9719            self.tx_id,
9720            0x5ddbf88a353a2a57,
9721            fidl::encoding::DynamicFlags::empty(),
9722        )
9723    }
9724}
9725
9726#[must_use = "FIDL methods require a response to be sent"]
9727#[derive(Debug)]
9728pub struct RunnerCallFlexibleTwoWayFieldsErrResponder {
9729    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9730    tx_id: u32,
9731}
9732
9733/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9734/// if the responder is dropped without sending a response, so that the client
9735/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9736impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsErrResponder {
9737    fn drop(&mut self) {
9738        self.control_handle.shutdown();
9739        // Safety: drops once, never accessed again
9740        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9741    }
9742}
9743
9744impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsErrResponder {
9745    type ControlHandle = RunnerControlHandle;
9746
9747    fn control_handle(&self) -> &RunnerControlHandle {
9748        &self.control_handle
9749    }
9750
9751    fn drop_without_shutdown(mut self) {
9752        // Safety: drops once, never accessed again due to mem::forget
9753        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9754        // Prevent Drop from running (which would shut down the channel)
9755        std::mem::forget(self);
9756    }
9757}
9758
9759impl RunnerCallFlexibleTwoWayFieldsErrResponder {
9760    /// Sends a response to the FIDL transaction.
9761    ///
9762    /// Sets the channel to shutdown if an error occurs.
9763    pub fn send(
9764        self,
9765        mut payload: &NonEmptyResultWithErrorClassification,
9766    ) -> Result<(), fidl::Error> {
9767        let _result = self.send_raw(payload);
9768        if _result.is_err() {
9769            self.control_handle.shutdown();
9770        }
9771        self.drop_without_shutdown();
9772        _result
9773    }
9774
9775    /// Similar to "send" but does not shutdown the channel if an error occurs.
9776    pub fn send_no_shutdown_on_err(
9777        self,
9778        mut payload: &NonEmptyResultWithErrorClassification,
9779    ) -> Result<(), fidl::Error> {
9780        let _result = self.send_raw(payload);
9781        self.drop_without_shutdown();
9782        _result
9783    }
9784
9785    fn send_raw(
9786        &self,
9787        mut payload: &NonEmptyResultWithErrorClassification,
9788    ) -> Result<(), fidl::Error> {
9789        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9790            payload,
9791            self.tx_id,
9792            0x7ae309383b07048e,
9793            fidl::encoding::DynamicFlags::empty(),
9794        )
9795    }
9796}
9797
9798#[must_use = "FIDL methods require a response to be sent"]
9799#[derive(Debug)]
9800pub struct RunnerReceiveClosedEventsResponder {
9801    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9802    tx_id: u32,
9803}
9804
9805/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9806/// if the responder is dropped without sending a response, so that the client
9807/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9808impl std::ops::Drop for RunnerReceiveClosedEventsResponder {
9809    fn drop(&mut self) {
9810        self.control_handle.shutdown();
9811        // Safety: drops once, never accessed again
9812        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9813    }
9814}
9815
9816impl fidl::endpoints::Responder for RunnerReceiveClosedEventsResponder {
9817    type ControlHandle = RunnerControlHandle;
9818
9819    fn control_handle(&self) -> &RunnerControlHandle {
9820        &self.control_handle
9821    }
9822
9823    fn drop_without_shutdown(mut self) {
9824        // Safety: drops once, never accessed again due to mem::forget
9825        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9826        // Prevent Drop from running (which would shut down the channel)
9827        std::mem::forget(self);
9828    }
9829}
9830
9831impl RunnerReceiveClosedEventsResponder {
9832    /// Sends a response to the FIDL transaction.
9833    ///
9834    /// Sets the channel to shutdown if an error occurs.
9835    pub fn send(self) -> Result<(), fidl::Error> {
9836        let _result = self.send_raw();
9837        if _result.is_err() {
9838            self.control_handle.shutdown();
9839        }
9840        self.drop_without_shutdown();
9841        _result
9842    }
9843
9844    /// Similar to "send" but does not shutdown the channel if an error occurs.
9845    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9846        let _result = self.send_raw();
9847        self.drop_without_shutdown();
9848        _result
9849    }
9850
9851    fn send_raw(&self) -> Result<(), fidl::Error> {
9852        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9853            (),
9854            self.tx_id,
9855            0x48da834910571aeb,
9856            fidl::encoding::DynamicFlags::empty(),
9857        )
9858    }
9859}
9860
9861#[must_use = "FIDL methods require a response to be sent"]
9862#[derive(Debug)]
9863pub struct RunnerReceiveAjarEventsResponder {
9864    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9865    tx_id: u32,
9866}
9867
9868/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9869/// if the responder is dropped without sending a response, so that the client
9870/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9871impl std::ops::Drop for RunnerReceiveAjarEventsResponder {
9872    fn drop(&mut self) {
9873        self.control_handle.shutdown();
9874        // Safety: drops once, never accessed again
9875        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9876    }
9877}
9878
9879impl fidl::endpoints::Responder for RunnerReceiveAjarEventsResponder {
9880    type ControlHandle = RunnerControlHandle;
9881
9882    fn control_handle(&self) -> &RunnerControlHandle {
9883        &self.control_handle
9884    }
9885
9886    fn drop_without_shutdown(mut self) {
9887        // Safety: drops once, never accessed again due to mem::forget
9888        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9889        // Prevent Drop from running (which would shut down the channel)
9890        std::mem::forget(self);
9891    }
9892}
9893
9894impl RunnerReceiveAjarEventsResponder {
9895    /// Sends a response to the FIDL transaction.
9896    ///
9897    /// Sets the channel to shutdown if an error occurs.
9898    pub fn send(self) -> Result<(), fidl::Error> {
9899        let _result = self.send_raw();
9900        if _result.is_err() {
9901            self.control_handle.shutdown();
9902        }
9903        self.drop_without_shutdown();
9904        _result
9905    }
9906
9907    /// Similar to "send" but does not shutdown the channel if an error occurs.
9908    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9909        let _result = self.send_raw();
9910        self.drop_without_shutdown();
9911        _result
9912    }
9913
9914    fn send_raw(&self) -> Result<(), fidl::Error> {
9915        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9916            (),
9917            self.tx_id,
9918            0xc5662b9a9c007a3,
9919            fidl::encoding::DynamicFlags::empty(),
9920        )
9921    }
9922}
9923
9924#[must_use = "FIDL methods require a response to be sent"]
9925#[derive(Debug)]
9926pub struct RunnerReceiveOpenEventsResponder {
9927    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9928    tx_id: u32,
9929}
9930
9931/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9932/// if the responder is dropped without sending a response, so that the client
9933/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9934impl std::ops::Drop for RunnerReceiveOpenEventsResponder {
9935    fn drop(&mut self) {
9936        self.control_handle.shutdown();
9937        // Safety: drops once, never accessed again
9938        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9939    }
9940}
9941
9942impl fidl::endpoints::Responder for RunnerReceiveOpenEventsResponder {
9943    type ControlHandle = RunnerControlHandle;
9944
9945    fn control_handle(&self) -> &RunnerControlHandle {
9946        &self.control_handle
9947    }
9948
9949    fn drop_without_shutdown(mut self) {
9950        // Safety: drops once, never accessed again due to mem::forget
9951        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9952        // Prevent Drop from running (which would shut down the channel)
9953        std::mem::forget(self);
9954    }
9955}
9956
9957impl RunnerReceiveOpenEventsResponder {
9958    /// Sends a response to the FIDL transaction.
9959    ///
9960    /// Sets the channel to shutdown if an error occurs.
9961    pub fn send(self) -> Result<(), fidl::Error> {
9962        let _result = self.send_raw();
9963        if _result.is_err() {
9964            self.control_handle.shutdown();
9965        }
9966        self.drop_without_shutdown();
9967        _result
9968    }
9969
9970    /// Similar to "send" but does not shutdown the channel if an error occurs.
9971    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9972        let _result = self.send_raw();
9973        self.drop_without_shutdown();
9974        _result
9975    }
9976
9977    fn send_raw(&self) -> Result<(), fidl::Error> {
9978        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9979            (),
9980            self.tx_id,
9981            0x79a7073fd18edbdf,
9982            fidl::encoding::DynamicFlags::empty(),
9983        )
9984    }
9985}
9986
9987mod internal {
9988    use super::*;
9989
9990    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleOneWayRequest {
9991        type Borrowed<'a> = &'a mut Self;
9992        fn take_or_borrow<'a>(
9993            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
9994        ) -> Self::Borrowed<'a> {
9995            value
9996        }
9997    }
9998
9999    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleOneWayRequest {
10000        type Owned = Self;
10001
10002        #[inline(always)]
10003        fn inline_align(_context: fidl::encoding::Context) -> usize {
10004            4
10005        }
10006
10007        #[inline(always)]
10008        fn inline_size(_context: fidl::encoding::Context) -> usize {
10009            4
10010        }
10011    }
10012
10013    unsafe impl
10014        fidl::encoding::Encode<
10015            RunnerCallFlexibleOneWayRequest,
10016            fidl::encoding::DefaultFuchsiaResourceDialect,
10017        > for &mut RunnerCallFlexibleOneWayRequest
10018    {
10019        #[inline]
10020        unsafe fn encode(
10021            self,
10022            encoder: &mut fidl::encoding::Encoder<
10023                '_,
10024                fidl::encoding::DefaultFuchsiaResourceDialect,
10025            >,
10026            offset: usize,
10027            _depth: fidl::encoding::Depth,
10028        ) -> fidl::Result<()> {
10029            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
10030            // Delegate to tuple encoding.
10031            fidl::encoding::Encode::<RunnerCallFlexibleOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10032                (
10033                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10034                ),
10035                encoder, offset, _depth
10036            )
10037        }
10038    }
10039    unsafe impl<
10040        T0: fidl::encoding::Encode<
10041                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10042                fidl::encoding::DefaultFuchsiaResourceDialect,
10043            >,
10044    >
10045        fidl::encoding::Encode<
10046            RunnerCallFlexibleOneWayRequest,
10047            fidl::encoding::DefaultFuchsiaResourceDialect,
10048        > for (T0,)
10049    {
10050        #[inline]
10051        unsafe fn encode(
10052            self,
10053            encoder: &mut fidl::encoding::Encoder<
10054                '_,
10055                fidl::encoding::DefaultFuchsiaResourceDialect,
10056            >,
10057            offset: usize,
10058            depth: fidl::encoding::Depth,
10059        ) -> fidl::Result<()> {
10060            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
10061            // Zero out padding regions. There's no need to apply masks
10062            // because the unmasked parts will be overwritten by fields.
10063            // Write the fields.
10064            self.0.encode(encoder, offset + 0, depth)?;
10065            Ok(())
10066        }
10067    }
10068
10069    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10070        for RunnerCallFlexibleOneWayRequest
10071    {
10072        #[inline(always)]
10073        fn new_empty() -> Self {
10074            Self {
10075                target: fidl::new_empty!(
10076                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10077                    fidl::encoding::DefaultFuchsiaResourceDialect
10078                ),
10079            }
10080        }
10081
10082        #[inline]
10083        unsafe fn decode(
10084            &mut self,
10085            decoder: &mut fidl::encoding::Decoder<
10086                '_,
10087                fidl::encoding::DefaultFuchsiaResourceDialect,
10088            >,
10089            offset: usize,
10090            _depth: fidl::encoding::Depth,
10091        ) -> fidl::Result<()> {
10092            decoder.debug_check_bounds::<Self>(offset);
10093            // Verify that padding bytes are zero.
10094            fidl::decode!(
10095                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10096                fidl::encoding::DefaultFuchsiaResourceDialect,
10097                &mut self.target,
10098                decoder,
10099                offset + 0,
10100                _depth
10101            )?;
10102            Ok(())
10103        }
10104    }
10105
10106    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10107        type Borrowed<'a> = &'a mut Self;
10108        fn take_or_borrow<'a>(
10109            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10110        ) -> Self::Borrowed<'a> {
10111            value
10112        }
10113    }
10114
10115    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10116        type Owned = Self;
10117
10118        #[inline(always)]
10119        fn inline_align(_context: fidl::encoding::Context) -> usize {
10120            4
10121        }
10122
10123        #[inline(always)]
10124        fn inline_size(_context: fidl::encoding::Context) -> usize {
10125            4
10126        }
10127    }
10128
10129    unsafe impl
10130        fidl::encoding::Encode<
10131            RunnerCallFlexibleTwoWayErrRequest,
10132            fidl::encoding::DefaultFuchsiaResourceDialect,
10133        > for &mut RunnerCallFlexibleTwoWayErrRequest
10134    {
10135        #[inline]
10136        unsafe fn encode(
10137            self,
10138            encoder: &mut fidl::encoding::Encoder<
10139                '_,
10140                fidl::encoding::DefaultFuchsiaResourceDialect,
10141            >,
10142            offset: usize,
10143            _depth: fidl::encoding::Depth,
10144        ) -> fidl::Result<()> {
10145            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10146            // Delegate to tuple encoding.
10147            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10148                (
10149                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10150                ),
10151                encoder, offset, _depth
10152            )
10153        }
10154    }
10155    unsafe impl<
10156        T0: fidl::encoding::Encode<
10157                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10158                fidl::encoding::DefaultFuchsiaResourceDialect,
10159            >,
10160    >
10161        fidl::encoding::Encode<
10162            RunnerCallFlexibleTwoWayErrRequest,
10163            fidl::encoding::DefaultFuchsiaResourceDialect,
10164        > for (T0,)
10165    {
10166        #[inline]
10167        unsafe fn encode(
10168            self,
10169            encoder: &mut fidl::encoding::Encoder<
10170                '_,
10171                fidl::encoding::DefaultFuchsiaResourceDialect,
10172            >,
10173            offset: usize,
10174            depth: fidl::encoding::Depth,
10175        ) -> fidl::Result<()> {
10176            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10177            // Zero out padding regions. There's no need to apply masks
10178            // because the unmasked parts will be overwritten by fields.
10179            // Write the fields.
10180            self.0.encode(encoder, offset + 0, depth)?;
10181            Ok(())
10182        }
10183    }
10184
10185    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10186        for RunnerCallFlexibleTwoWayErrRequest
10187    {
10188        #[inline(always)]
10189        fn new_empty() -> Self {
10190            Self {
10191                target: fidl::new_empty!(
10192                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10193                    fidl::encoding::DefaultFuchsiaResourceDialect
10194                ),
10195            }
10196        }
10197
10198        #[inline]
10199        unsafe fn decode(
10200            &mut self,
10201            decoder: &mut fidl::encoding::Decoder<
10202                '_,
10203                fidl::encoding::DefaultFuchsiaResourceDialect,
10204            >,
10205            offset: usize,
10206            _depth: fidl::encoding::Depth,
10207        ) -> fidl::Result<()> {
10208            decoder.debug_check_bounds::<Self>(offset);
10209            // Verify that padding bytes are zero.
10210            fidl::decode!(
10211                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10212                fidl::encoding::DefaultFuchsiaResourceDialect,
10213                &mut self.target,
10214                decoder,
10215                offset + 0,
10216                _depth
10217            )?;
10218            Ok(())
10219        }
10220    }
10221
10222    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10223        type Borrowed<'a> = &'a mut Self;
10224        fn take_or_borrow<'a>(
10225            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10226        ) -> Self::Borrowed<'a> {
10227            value
10228        }
10229    }
10230
10231    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10232        type Owned = Self;
10233
10234        #[inline(always)]
10235        fn inline_align(_context: fidl::encoding::Context) -> usize {
10236            4
10237        }
10238
10239        #[inline(always)]
10240        fn inline_size(_context: fidl::encoding::Context) -> usize {
10241            4
10242        }
10243    }
10244
10245    unsafe impl
10246        fidl::encoding::Encode<
10247            RunnerCallFlexibleTwoWayFieldsErrRequest,
10248            fidl::encoding::DefaultFuchsiaResourceDialect,
10249        > for &mut RunnerCallFlexibleTwoWayFieldsErrRequest
10250    {
10251        #[inline]
10252        unsafe fn encode(
10253            self,
10254            encoder: &mut fidl::encoding::Encoder<
10255                '_,
10256                fidl::encoding::DefaultFuchsiaResourceDialect,
10257            >,
10258            offset: usize,
10259            _depth: fidl::encoding::Depth,
10260        ) -> fidl::Result<()> {
10261            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10262            // Delegate to tuple encoding.
10263            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10264                (
10265                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10266                ),
10267                encoder, offset, _depth
10268            )
10269        }
10270    }
10271    unsafe impl<
10272        T0: fidl::encoding::Encode<
10273                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10274                fidl::encoding::DefaultFuchsiaResourceDialect,
10275            >,
10276    >
10277        fidl::encoding::Encode<
10278            RunnerCallFlexibleTwoWayFieldsErrRequest,
10279            fidl::encoding::DefaultFuchsiaResourceDialect,
10280        > for (T0,)
10281    {
10282        #[inline]
10283        unsafe fn encode(
10284            self,
10285            encoder: &mut fidl::encoding::Encoder<
10286                '_,
10287                fidl::encoding::DefaultFuchsiaResourceDialect,
10288            >,
10289            offset: usize,
10290            depth: fidl::encoding::Depth,
10291        ) -> fidl::Result<()> {
10292            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10293            // Zero out padding regions. There's no need to apply masks
10294            // because the unmasked parts will be overwritten by fields.
10295            // Write the fields.
10296            self.0.encode(encoder, offset + 0, depth)?;
10297            Ok(())
10298        }
10299    }
10300
10301    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10302        for RunnerCallFlexibleTwoWayFieldsErrRequest
10303    {
10304        #[inline(always)]
10305        fn new_empty() -> Self {
10306            Self {
10307                target: fidl::new_empty!(
10308                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10309                    fidl::encoding::DefaultFuchsiaResourceDialect
10310                ),
10311            }
10312        }
10313
10314        #[inline]
10315        unsafe fn decode(
10316            &mut self,
10317            decoder: &mut fidl::encoding::Decoder<
10318                '_,
10319                fidl::encoding::DefaultFuchsiaResourceDialect,
10320            >,
10321            offset: usize,
10322            _depth: fidl::encoding::Depth,
10323        ) -> fidl::Result<()> {
10324            decoder.debug_check_bounds::<Self>(offset);
10325            // Verify that padding bytes are zero.
10326            fidl::decode!(
10327                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10328                fidl::encoding::DefaultFuchsiaResourceDialect,
10329                &mut self.target,
10330                decoder,
10331                offset + 0,
10332                _depth
10333            )?;
10334            Ok(())
10335        }
10336    }
10337
10338    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10339        type Borrowed<'a> = &'a mut Self;
10340        fn take_or_borrow<'a>(
10341            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10342        ) -> Self::Borrowed<'a> {
10343            value
10344        }
10345    }
10346
10347    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10348        type Owned = Self;
10349
10350        #[inline(always)]
10351        fn inline_align(_context: fidl::encoding::Context) -> usize {
10352            4
10353        }
10354
10355        #[inline(always)]
10356        fn inline_size(_context: fidl::encoding::Context) -> usize {
10357            4
10358        }
10359    }
10360
10361    unsafe impl
10362        fidl::encoding::Encode<
10363            RunnerCallFlexibleTwoWayFieldsRequest,
10364            fidl::encoding::DefaultFuchsiaResourceDialect,
10365        > for &mut RunnerCallFlexibleTwoWayFieldsRequest
10366    {
10367        #[inline]
10368        unsafe fn encode(
10369            self,
10370            encoder: &mut fidl::encoding::Encoder<
10371                '_,
10372                fidl::encoding::DefaultFuchsiaResourceDialect,
10373            >,
10374            offset: usize,
10375            _depth: fidl::encoding::Depth,
10376        ) -> fidl::Result<()> {
10377            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10378            // Delegate to tuple encoding.
10379            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10380                (
10381                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10382                ),
10383                encoder, offset, _depth
10384            )
10385        }
10386    }
10387    unsafe impl<
10388        T0: fidl::encoding::Encode<
10389                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10390                fidl::encoding::DefaultFuchsiaResourceDialect,
10391            >,
10392    >
10393        fidl::encoding::Encode<
10394            RunnerCallFlexibleTwoWayFieldsRequest,
10395            fidl::encoding::DefaultFuchsiaResourceDialect,
10396        > for (T0,)
10397    {
10398        #[inline]
10399        unsafe fn encode(
10400            self,
10401            encoder: &mut fidl::encoding::Encoder<
10402                '_,
10403                fidl::encoding::DefaultFuchsiaResourceDialect,
10404            >,
10405            offset: usize,
10406            depth: fidl::encoding::Depth,
10407        ) -> fidl::Result<()> {
10408            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10409            // Zero out padding regions. There's no need to apply masks
10410            // because the unmasked parts will be overwritten by fields.
10411            // Write the fields.
10412            self.0.encode(encoder, offset + 0, depth)?;
10413            Ok(())
10414        }
10415    }
10416
10417    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10418        for RunnerCallFlexibleTwoWayFieldsRequest
10419    {
10420        #[inline(always)]
10421        fn new_empty() -> Self {
10422            Self {
10423                target: fidl::new_empty!(
10424                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10425                    fidl::encoding::DefaultFuchsiaResourceDialect
10426                ),
10427            }
10428        }
10429
10430        #[inline]
10431        unsafe fn decode(
10432            &mut self,
10433            decoder: &mut fidl::encoding::Decoder<
10434                '_,
10435                fidl::encoding::DefaultFuchsiaResourceDialect,
10436            >,
10437            offset: usize,
10438            _depth: fidl::encoding::Depth,
10439        ) -> fidl::Result<()> {
10440            decoder.debug_check_bounds::<Self>(offset);
10441            // Verify that padding bytes are zero.
10442            fidl::decode!(
10443                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10444                fidl::encoding::DefaultFuchsiaResourceDialect,
10445                &mut self.target,
10446                decoder,
10447                offset + 0,
10448                _depth
10449            )?;
10450            Ok(())
10451        }
10452    }
10453
10454    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayRequest {
10455        type Borrowed<'a> = &'a mut Self;
10456        fn take_or_borrow<'a>(
10457            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10458        ) -> Self::Borrowed<'a> {
10459            value
10460        }
10461    }
10462
10463    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayRequest {
10464        type Owned = Self;
10465
10466        #[inline(always)]
10467        fn inline_align(_context: fidl::encoding::Context) -> usize {
10468            4
10469        }
10470
10471        #[inline(always)]
10472        fn inline_size(_context: fidl::encoding::Context) -> usize {
10473            4
10474        }
10475    }
10476
10477    unsafe impl
10478        fidl::encoding::Encode<
10479            RunnerCallFlexibleTwoWayRequest,
10480            fidl::encoding::DefaultFuchsiaResourceDialect,
10481        > for &mut RunnerCallFlexibleTwoWayRequest
10482    {
10483        #[inline]
10484        unsafe fn encode(
10485            self,
10486            encoder: &mut fidl::encoding::Encoder<
10487                '_,
10488                fidl::encoding::DefaultFuchsiaResourceDialect,
10489            >,
10490            offset: usize,
10491            _depth: fidl::encoding::Depth,
10492        ) -> fidl::Result<()> {
10493            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10494            // Delegate to tuple encoding.
10495            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10496                (
10497                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10498                ),
10499                encoder, offset, _depth
10500            )
10501        }
10502    }
10503    unsafe impl<
10504        T0: fidl::encoding::Encode<
10505                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10506                fidl::encoding::DefaultFuchsiaResourceDialect,
10507            >,
10508    >
10509        fidl::encoding::Encode<
10510            RunnerCallFlexibleTwoWayRequest,
10511            fidl::encoding::DefaultFuchsiaResourceDialect,
10512        > for (T0,)
10513    {
10514        #[inline]
10515        unsafe fn encode(
10516            self,
10517            encoder: &mut fidl::encoding::Encoder<
10518                '_,
10519                fidl::encoding::DefaultFuchsiaResourceDialect,
10520            >,
10521            offset: usize,
10522            depth: fidl::encoding::Depth,
10523        ) -> fidl::Result<()> {
10524            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10525            // Zero out padding regions. There's no need to apply masks
10526            // because the unmasked parts will be overwritten by fields.
10527            // Write the fields.
10528            self.0.encode(encoder, offset + 0, depth)?;
10529            Ok(())
10530        }
10531    }
10532
10533    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10534        for RunnerCallFlexibleTwoWayRequest
10535    {
10536        #[inline(always)]
10537        fn new_empty() -> Self {
10538            Self {
10539                target: fidl::new_empty!(
10540                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10541                    fidl::encoding::DefaultFuchsiaResourceDialect
10542                ),
10543            }
10544        }
10545
10546        #[inline]
10547        unsafe fn decode(
10548            &mut self,
10549            decoder: &mut fidl::encoding::Decoder<
10550                '_,
10551                fidl::encoding::DefaultFuchsiaResourceDialect,
10552            >,
10553            offset: usize,
10554            _depth: fidl::encoding::Depth,
10555        ) -> fidl::Result<()> {
10556            decoder.debug_check_bounds::<Self>(offset);
10557            // Verify that padding bytes are zero.
10558            fidl::decode!(
10559                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10560                fidl::encoding::DefaultFuchsiaResourceDialect,
10561                &mut self.target,
10562                decoder,
10563                offset + 0,
10564                _depth
10565            )?;
10566            Ok(())
10567        }
10568    }
10569
10570    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayNoRequestRequest {
10571        type Borrowed<'a> = &'a mut Self;
10572        fn take_or_borrow<'a>(
10573            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10574        ) -> Self::Borrowed<'a> {
10575            value
10576        }
10577    }
10578
10579    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayNoRequestRequest {
10580        type Owned = Self;
10581
10582        #[inline(always)]
10583        fn inline_align(_context: fidl::encoding::Context) -> usize {
10584            4
10585        }
10586
10587        #[inline(always)]
10588        fn inline_size(_context: fidl::encoding::Context) -> usize {
10589            4
10590        }
10591    }
10592
10593    unsafe impl
10594        fidl::encoding::Encode<
10595            RunnerCallOneWayNoRequestRequest,
10596            fidl::encoding::DefaultFuchsiaResourceDialect,
10597        > for &mut RunnerCallOneWayNoRequestRequest
10598    {
10599        #[inline]
10600        unsafe fn encode(
10601            self,
10602            encoder: &mut fidl::encoding::Encoder<
10603                '_,
10604                fidl::encoding::DefaultFuchsiaResourceDialect,
10605            >,
10606            offset: usize,
10607            _depth: fidl::encoding::Depth,
10608        ) -> fidl::Result<()> {
10609            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10610            // Delegate to tuple encoding.
10611            fidl::encoding::Encode::<RunnerCallOneWayNoRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10612                (
10613                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10614                ),
10615                encoder, offset, _depth
10616            )
10617        }
10618    }
10619    unsafe impl<
10620        T0: fidl::encoding::Encode<
10621                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10622                fidl::encoding::DefaultFuchsiaResourceDialect,
10623            >,
10624    >
10625        fidl::encoding::Encode<
10626            RunnerCallOneWayNoRequestRequest,
10627            fidl::encoding::DefaultFuchsiaResourceDialect,
10628        > for (T0,)
10629    {
10630        #[inline]
10631        unsafe fn encode(
10632            self,
10633            encoder: &mut fidl::encoding::Encoder<
10634                '_,
10635                fidl::encoding::DefaultFuchsiaResourceDialect,
10636            >,
10637            offset: usize,
10638            depth: fidl::encoding::Depth,
10639        ) -> fidl::Result<()> {
10640            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10641            // Zero out padding regions. There's no need to apply masks
10642            // because the unmasked parts will be overwritten by fields.
10643            // Write the fields.
10644            self.0.encode(encoder, offset + 0, depth)?;
10645            Ok(())
10646        }
10647    }
10648
10649    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10650        for RunnerCallOneWayNoRequestRequest
10651    {
10652        #[inline(always)]
10653        fn new_empty() -> Self {
10654            Self {
10655                target: fidl::new_empty!(
10656                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10657                    fidl::encoding::DefaultFuchsiaResourceDialect
10658                ),
10659            }
10660        }
10661
10662        #[inline]
10663        unsafe fn decode(
10664            &mut self,
10665            decoder: &mut fidl::encoding::Decoder<
10666                '_,
10667                fidl::encoding::DefaultFuchsiaResourceDialect,
10668            >,
10669            offset: usize,
10670            _depth: fidl::encoding::Depth,
10671        ) -> fidl::Result<()> {
10672            decoder.debug_check_bounds::<Self>(offset);
10673            // Verify that padding bytes are zero.
10674            fidl::decode!(
10675                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10676                fidl::encoding::DefaultFuchsiaResourceDialect,
10677                &mut self.target,
10678                decoder,
10679                offset + 0,
10680                _depth
10681            )?;
10682            Ok(())
10683        }
10684    }
10685
10686    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayStructRequestRequest {
10687        type Borrowed<'a> = &'a mut Self;
10688        fn take_or_borrow<'a>(
10689            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10690        ) -> Self::Borrowed<'a> {
10691            value
10692        }
10693    }
10694
10695    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayStructRequestRequest {
10696        type Owned = Self;
10697
10698        #[inline(always)]
10699        fn inline_align(_context: fidl::encoding::Context) -> usize {
10700            4
10701        }
10702
10703        #[inline(always)]
10704        fn inline_size(_context: fidl::encoding::Context) -> usize {
10705            8
10706        }
10707    }
10708
10709    unsafe impl
10710        fidl::encoding::Encode<
10711            RunnerCallOneWayStructRequestRequest,
10712            fidl::encoding::DefaultFuchsiaResourceDialect,
10713        > for &mut RunnerCallOneWayStructRequestRequest
10714    {
10715        #[inline]
10716        unsafe fn encode(
10717            self,
10718            encoder: &mut fidl::encoding::Encoder<
10719                '_,
10720                fidl::encoding::DefaultFuchsiaResourceDialect,
10721            >,
10722            offset: usize,
10723            _depth: fidl::encoding::Depth,
10724        ) -> fidl::Result<()> {
10725            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10726            // Delegate to tuple encoding.
10727            fidl::encoding::Encode::<RunnerCallOneWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10728                (
10729                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10730                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10731                ),
10732                encoder, offset, _depth
10733            )
10734        }
10735    }
10736    unsafe impl<
10737        T0: fidl::encoding::Encode<
10738                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10739                fidl::encoding::DefaultFuchsiaResourceDialect,
10740            >,
10741        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10742    >
10743        fidl::encoding::Encode<
10744            RunnerCallOneWayStructRequestRequest,
10745            fidl::encoding::DefaultFuchsiaResourceDialect,
10746        > for (T0, T1)
10747    {
10748        #[inline]
10749        unsafe fn encode(
10750            self,
10751            encoder: &mut fidl::encoding::Encoder<
10752                '_,
10753                fidl::encoding::DefaultFuchsiaResourceDialect,
10754            >,
10755            offset: usize,
10756            depth: fidl::encoding::Depth,
10757        ) -> fidl::Result<()> {
10758            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10759            // Zero out padding regions. There's no need to apply masks
10760            // because the unmasked parts will be overwritten by fields.
10761            // Write the fields.
10762            self.0.encode(encoder, offset + 0, depth)?;
10763            self.1.encode(encoder, offset + 4, depth)?;
10764            Ok(())
10765        }
10766    }
10767
10768    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10769        for RunnerCallOneWayStructRequestRequest
10770    {
10771        #[inline(always)]
10772        fn new_empty() -> Self {
10773            Self {
10774                target: fidl::new_empty!(
10775                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10776                    fidl::encoding::DefaultFuchsiaResourceDialect
10777                ),
10778                request: fidl::new_empty!(
10779                    NonEmptyPayload,
10780                    fidl::encoding::DefaultFuchsiaResourceDialect
10781                ),
10782            }
10783        }
10784
10785        #[inline]
10786        unsafe fn decode(
10787            &mut self,
10788            decoder: &mut fidl::encoding::Decoder<
10789                '_,
10790                fidl::encoding::DefaultFuchsiaResourceDialect,
10791            >,
10792            offset: usize,
10793            _depth: fidl::encoding::Depth,
10794        ) -> fidl::Result<()> {
10795            decoder.debug_check_bounds::<Self>(offset);
10796            // Verify that padding bytes are zero.
10797            fidl::decode!(
10798                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10799                fidl::encoding::DefaultFuchsiaResourceDialect,
10800                &mut self.target,
10801                decoder,
10802                offset + 0,
10803                _depth
10804            )?;
10805            fidl::decode!(
10806                NonEmptyPayload,
10807                fidl::encoding::DefaultFuchsiaResourceDialect,
10808                &mut self.request,
10809                decoder,
10810                offset + 4,
10811                _depth
10812            )?;
10813            Ok(())
10814        }
10815    }
10816
10817    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayTableRequestRequest {
10818        type Borrowed<'a> = &'a mut Self;
10819        fn take_or_borrow<'a>(
10820            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10821        ) -> Self::Borrowed<'a> {
10822            value
10823        }
10824    }
10825
10826    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayTableRequestRequest {
10827        type Owned = Self;
10828
10829        #[inline(always)]
10830        fn inline_align(_context: fidl::encoding::Context) -> usize {
10831            8
10832        }
10833
10834        #[inline(always)]
10835        fn inline_size(_context: fidl::encoding::Context) -> usize {
10836            24
10837        }
10838    }
10839
10840    unsafe impl
10841        fidl::encoding::Encode<
10842            RunnerCallOneWayTableRequestRequest,
10843            fidl::encoding::DefaultFuchsiaResourceDialect,
10844        > for &mut RunnerCallOneWayTableRequestRequest
10845    {
10846        #[inline]
10847        unsafe fn encode(
10848            self,
10849            encoder: &mut fidl::encoding::Encoder<
10850                '_,
10851                fidl::encoding::DefaultFuchsiaResourceDialect,
10852            >,
10853            offset: usize,
10854            _depth: fidl::encoding::Depth,
10855        ) -> fidl::Result<()> {
10856            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10857            // Delegate to tuple encoding.
10858            fidl::encoding::Encode::<RunnerCallOneWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10859                (
10860                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10861                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10862                ),
10863                encoder, offset, _depth
10864            )
10865        }
10866    }
10867    unsafe impl<
10868        T0: fidl::encoding::Encode<
10869                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10870                fidl::encoding::DefaultFuchsiaResourceDialect,
10871            >,
10872        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10873    >
10874        fidl::encoding::Encode<
10875            RunnerCallOneWayTableRequestRequest,
10876            fidl::encoding::DefaultFuchsiaResourceDialect,
10877        > for (T0, T1)
10878    {
10879        #[inline]
10880        unsafe fn encode(
10881            self,
10882            encoder: &mut fidl::encoding::Encoder<
10883                '_,
10884                fidl::encoding::DefaultFuchsiaResourceDialect,
10885            >,
10886            offset: usize,
10887            depth: fidl::encoding::Depth,
10888        ) -> fidl::Result<()> {
10889            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10890            // Zero out padding regions. There's no need to apply masks
10891            // because the unmasked parts will be overwritten by fields.
10892            unsafe {
10893                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10894                (ptr as *mut u64).write_unaligned(0);
10895            }
10896            // Write the fields.
10897            self.0.encode(encoder, offset + 0, depth)?;
10898            self.1.encode(encoder, offset + 8, depth)?;
10899            Ok(())
10900        }
10901    }
10902
10903    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10904        for RunnerCallOneWayTableRequestRequest
10905    {
10906        #[inline(always)]
10907        fn new_empty() -> Self {
10908            Self {
10909                target: fidl::new_empty!(
10910                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10911                    fidl::encoding::DefaultFuchsiaResourceDialect
10912                ),
10913                request: fidl::new_empty!(
10914                    TablePayload,
10915                    fidl::encoding::DefaultFuchsiaResourceDialect
10916                ),
10917            }
10918        }
10919
10920        #[inline]
10921        unsafe fn decode(
10922            &mut self,
10923            decoder: &mut fidl::encoding::Decoder<
10924                '_,
10925                fidl::encoding::DefaultFuchsiaResourceDialect,
10926            >,
10927            offset: usize,
10928            _depth: fidl::encoding::Depth,
10929        ) -> fidl::Result<()> {
10930            decoder.debug_check_bounds::<Self>(offset);
10931            // Verify that padding bytes are zero.
10932            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
10933            let padval = unsafe { (ptr as *const u64).read_unaligned() };
10934            let mask = 0xffffffff00000000u64;
10935            let maskedval = padval & mask;
10936            if maskedval != 0 {
10937                return Err(fidl::Error::NonZeroPadding {
10938                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
10939                });
10940            }
10941            fidl::decode!(
10942                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10943                fidl::encoding::DefaultFuchsiaResourceDialect,
10944                &mut self.target,
10945                decoder,
10946                offset + 0,
10947                _depth
10948            )?;
10949            fidl::decode!(
10950                TablePayload,
10951                fidl::encoding::DefaultFuchsiaResourceDialect,
10952                &mut self.request,
10953                decoder,
10954                offset + 8,
10955                _depth
10956            )?;
10957            Ok(())
10958        }
10959    }
10960
10961    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayUnionRequestRequest {
10962        type Borrowed<'a> = &'a mut Self;
10963        fn take_or_borrow<'a>(
10964            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10965        ) -> Self::Borrowed<'a> {
10966            value
10967        }
10968    }
10969
10970    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayUnionRequestRequest {
10971        type Owned = Self;
10972
10973        #[inline(always)]
10974        fn inline_align(_context: fidl::encoding::Context) -> usize {
10975            8
10976        }
10977
10978        #[inline(always)]
10979        fn inline_size(_context: fidl::encoding::Context) -> usize {
10980            24
10981        }
10982    }
10983
10984    unsafe impl
10985        fidl::encoding::Encode<
10986            RunnerCallOneWayUnionRequestRequest,
10987            fidl::encoding::DefaultFuchsiaResourceDialect,
10988        > for &mut RunnerCallOneWayUnionRequestRequest
10989    {
10990        #[inline]
10991        unsafe fn encode(
10992            self,
10993            encoder: &mut fidl::encoding::Encoder<
10994                '_,
10995                fidl::encoding::DefaultFuchsiaResourceDialect,
10996            >,
10997            offset: usize,
10998            _depth: fidl::encoding::Depth,
10999        ) -> fidl::Result<()> {
11000            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
11001            // Delegate to tuple encoding.
11002            fidl::encoding::Encode::<RunnerCallOneWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11003                (
11004                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11005                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
11006                ),
11007                encoder, offset, _depth
11008            )
11009        }
11010    }
11011    unsafe impl<
11012        T0: fidl::encoding::Encode<
11013                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11014                fidl::encoding::DefaultFuchsiaResourceDialect,
11015            >,
11016        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
11017    >
11018        fidl::encoding::Encode<
11019            RunnerCallOneWayUnionRequestRequest,
11020            fidl::encoding::DefaultFuchsiaResourceDialect,
11021        > for (T0, T1)
11022    {
11023        #[inline]
11024        unsafe fn encode(
11025            self,
11026            encoder: &mut fidl::encoding::Encoder<
11027                '_,
11028                fidl::encoding::DefaultFuchsiaResourceDialect,
11029            >,
11030            offset: usize,
11031            depth: fidl::encoding::Depth,
11032        ) -> fidl::Result<()> {
11033            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
11034            // Zero out padding regions. There's no need to apply masks
11035            // because the unmasked parts will be overwritten by fields.
11036            unsafe {
11037                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
11038                (ptr as *mut u64).write_unaligned(0);
11039            }
11040            // Write the fields.
11041            self.0.encode(encoder, offset + 0, depth)?;
11042            self.1.encode(encoder, offset + 8, depth)?;
11043            Ok(())
11044        }
11045    }
11046
11047    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11048        for RunnerCallOneWayUnionRequestRequest
11049    {
11050        #[inline(always)]
11051        fn new_empty() -> Self {
11052            Self {
11053                target: fidl::new_empty!(
11054                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11055                    fidl::encoding::DefaultFuchsiaResourceDialect
11056                ),
11057                request: fidl::new_empty!(
11058                    UnionPayload,
11059                    fidl::encoding::DefaultFuchsiaResourceDialect
11060                ),
11061            }
11062        }
11063
11064        #[inline]
11065        unsafe fn decode(
11066            &mut self,
11067            decoder: &mut fidl::encoding::Decoder<
11068                '_,
11069                fidl::encoding::DefaultFuchsiaResourceDialect,
11070            >,
11071            offset: usize,
11072            _depth: fidl::encoding::Depth,
11073        ) -> fidl::Result<()> {
11074            decoder.debug_check_bounds::<Self>(offset);
11075            // Verify that padding bytes are zero.
11076            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
11077            let padval = unsafe { (ptr as *const u64).read_unaligned() };
11078            let mask = 0xffffffff00000000u64;
11079            let maskedval = padval & mask;
11080            if maskedval != 0 {
11081                return Err(fidl::Error::NonZeroPadding {
11082                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
11083                });
11084            }
11085            fidl::decode!(
11086                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11087                fidl::encoding::DefaultFuchsiaResourceDialect,
11088                &mut self.target,
11089                decoder,
11090                offset + 0,
11091                _depth
11092            )?;
11093            fidl::decode!(
11094                UnionPayload,
11095                fidl::encoding::DefaultFuchsiaResourceDialect,
11096                &mut self.request,
11097                decoder,
11098                offset + 8,
11099                _depth
11100            )?;
11101            Ok(())
11102        }
11103    }
11104
11105    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictOneWayRequest {
11106        type Borrowed<'a> = &'a mut Self;
11107        fn take_or_borrow<'a>(
11108            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11109        ) -> Self::Borrowed<'a> {
11110            value
11111        }
11112    }
11113
11114    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictOneWayRequest {
11115        type Owned = Self;
11116
11117        #[inline(always)]
11118        fn inline_align(_context: fidl::encoding::Context) -> usize {
11119            4
11120        }
11121
11122        #[inline(always)]
11123        fn inline_size(_context: fidl::encoding::Context) -> usize {
11124            4
11125        }
11126    }
11127
11128    unsafe impl
11129        fidl::encoding::Encode<
11130            RunnerCallStrictOneWayRequest,
11131            fidl::encoding::DefaultFuchsiaResourceDialect,
11132        > for &mut RunnerCallStrictOneWayRequest
11133    {
11134        #[inline]
11135        unsafe fn encode(
11136            self,
11137            encoder: &mut fidl::encoding::Encoder<
11138                '_,
11139                fidl::encoding::DefaultFuchsiaResourceDialect,
11140            >,
11141            offset: usize,
11142            _depth: fidl::encoding::Depth,
11143        ) -> fidl::Result<()> {
11144            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11145            // Delegate to tuple encoding.
11146            fidl::encoding::Encode::<RunnerCallStrictOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11147                (
11148                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11149                ),
11150                encoder, offset, _depth
11151            )
11152        }
11153    }
11154    unsafe impl<
11155        T0: fidl::encoding::Encode<
11156                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11157                fidl::encoding::DefaultFuchsiaResourceDialect,
11158            >,
11159    >
11160        fidl::encoding::Encode<
11161            RunnerCallStrictOneWayRequest,
11162            fidl::encoding::DefaultFuchsiaResourceDialect,
11163        > for (T0,)
11164    {
11165        #[inline]
11166        unsafe fn encode(
11167            self,
11168            encoder: &mut fidl::encoding::Encoder<
11169                '_,
11170                fidl::encoding::DefaultFuchsiaResourceDialect,
11171            >,
11172            offset: usize,
11173            depth: fidl::encoding::Depth,
11174        ) -> fidl::Result<()> {
11175            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11176            // Zero out padding regions. There's no need to apply masks
11177            // because the unmasked parts will be overwritten by fields.
11178            // Write the fields.
11179            self.0.encode(encoder, offset + 0, depth)?;
11180            Ok(())
11181        }
11182    }
11183
11184    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11185        for RunnerCallStrictOneWayRequest
11186    {
11187        #[inline(always)]
11188        fn new_empty() -> Self {
11189            Self {
11190                target: fidl::new_empty!(
11191                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11192                    fidl::encoding::DefaultFuchsiaResourceDialect
11193                ),
11194            }
11195        }
11196
11197        #[inline]
11198        unsafe fn decode(
11199            &mut self,
11200            decoder: &mut fidl::encoding::Decoder<
11201                '_,
11202                fidl::encoding::DefaultFuchsiaResourceDialect,
11203            >,
11204            offset: usize,
11205            _depth: fidl::encoding::Depth,
11206        ) -> fidl::Result<()> {
11207            decoder.debug_check_bounds::<Self>(offset);
11208            // Verify that padding bytes are zero.
11209            fidl::decode!(
11210                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11211                fidl::encoding::DefaultFuchsiaResourceDialect,
11212                &mut self.target,
11213                decoder,
11214                offset + 0,
11215                _depth
11216            )?;
11217            Ok(())
11218        }
11219    }
11220
11221    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayErrRequest {
11222        type Borrowed<'a> = &'a mut Self;
11223        fn take_or_borrow<'a>(
11224            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11225        ) -> Self::Borrowed<'a> {
11226            value
11227        }
11228    }
11229
11230    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayErrRequest {
11231        type Owned = Self;
11232
11233        #[inline(always)]
11234        fn inline_align(_context: fidl::encoding::Context) -> usize {
11235            4
11236        }
11237
11238        #[inline(always)]
11239        fn inline_size(_context: fidl::encoding::Context) -> usize {
11240            4
11241        }
11242    }
11243
11244    unsafe impl
11245        fidl::encoding::Encode<
11246            RunnerCallStrictTwoWayErrRequest,
11247            fidl::encoding::DefaultFuchsiaResourceDialect,
11248        > for &mut RunnerCallStrictTwoWayErrRequest
11249    {
11250        #[inline]
11251        unsafe fn encode(
11252            self,
11253            encoder: &mut fidl::encoding::Encoder<
11254                '_,
11255                fidl::encoding::DefaultFuchsiaResourceDialect,
11256            >,
11257            offset: usize,
11258            _depth: fidl::encoding::Depth,
11259        ) -> fidl::Result<()> {
11260            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11261            // Delegate to tuple encoding.
11262            fidl::encoding::Encode::<RunnerCallStrictTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11263                (
11264                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11265                ),
11266                encoder, offset, _depth
11267            )
11268        }
11269    }
11270    unsafe impl<
11271        T0: fidl::encoding::Encode<
11272                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11273                fidl::encoding::DefaultFuchsiaResourceDialect,
11274            >,
11275    >
11276        fidl::encoding::Encode<
11277            RunnerCallStrictTwoWayErrRequest,
11278            fidl::encoding::DefaultFuchsiaResourceDialect,
11279        > for (T0,)
11280    {
11281        #[inline]
11282        unsafe fn encode(
11283            self,
11284            encoder: &mut fidl::encoding::Encoder<
11285                '_,
11286                fidl::encoding::DefaultFuchsiaResourceDialect,
11287            >,
11288            offset: usize,
11289            depth: fidl::encoding::Depth,
11290        ) -> fidl::Result<()> {
11291            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11292            // Zero out padding regions. There's no need to apply masks
11293            // because the unmasked parts will be overwritten by fields.
11294            // Write the fields.
11295            self.0.encode(encoder, offset + 0, depth)?;
11296            Ok(())
11297        }
11298    }
11299
11300    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11301        for RunnerCallStrictTwoWayErrRequest
11302    {
11303        #[inline(always)]
11304        fn new_empty() -> Self {
11305            Self {
11306                target: fidl::new_empty!(
11307                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11308                    fidl::encoding::DefaultFuchsiaResourceDialect
11309                ),
11310            }
11311        }
11312
11313        #[inline]
11314        unsafe fn decode(
11315            &mut self,
11316            decoder: &mut fidl::encoding::Decoder<
11317                '_,
11318                fidl::encoding::DefaultFuchsiaResourceDialect,
11319            >,
11320            offset: usize,
11321            _depth: fidl::encoding::Depth,
11322        ) -> fidl::Result<()> {
11323            decoder.debug_check_bounds::<Self>(offset);
11324            // Verify that padding bytes are zero.
11325            fidl::decode!(
11326                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11327                fidl::encoding::DefaultFuchsiaResourceDialect,
11328                &mut self.target,
11329                decoder,
11330                offset + 0,
11331                _depth
11332            )?;
11333            Ok(())
11334        }
11335    }
11336
11337    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11338        type Borrowed<'a> = &'a mut Self;
11339        fn take_or_borrow<'a>(
11340            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11341        ) -> Self::Borrowed<'a> {
11342            value
11343        }
11344    }
11345
11346    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11347        type Owned = Self;
11348
11349        #[inline(always)]
11350        fn inline_align(_context: fidl::encoding::Context) -> usize {
11351            4
11352        }
11353
11354        #[inline(always)]
11355        fn inline_size(_context: fidl::encoding::Context) -> usize {
11356            4
11357        }
11358    }
11359
11360    unsafe impl
11361        fidl::encoding::Encode<
11362            RunnerCallStrictTwoWayFieldsErrRequest,
11363            fidl::encoding::DefaultFuchsiaResourceDialect,
11364        > for &mut RunnerCallStrictTwoWayFieldsErrRequest
11365    {
11366        #[inline]
11367        unsafe fn encode(
11368            self,
11369            encoder: &mut fidl::encoding::Encoder<
11370                '_,
11371                fidl::encoding::DefaultFuchsiaResourceDialect,
11372            >,
11373            offset: usize,
11374            _depth: fidl::encoding::Depth,
11375        ) -> fidl::Result<()> {
11376            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11377            // Delegate to tuple encoding.
11378            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11379                (
11380                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11381                ),
11382                encoder, offset, _depth
11383            )
11384        }
11385    }
11386    unsafe impl<
11387        T0: fidl::encoding::Encode<
11388                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11389                fidl::encoding::DefaultFuchsiaResourceDialect,
11390            >,
11391    >
11392        fidl::encoding::Encode<
11393            RunnerCallStrictTwoWayFieldsErrRequest,
11394            fidl::encoding::DefaultFuchsiaResourceDialect,
11395        > for (T0,)
11396    {
11397        #[inline]
11398        unsafe fn encode(
11399            self,
11400            encoder: &mut fidl::encoding::Encoder<
11401                '_,
11402                fidl::encoding::DefaultFuchsiaResourceDialect,
11403            >,
11404            offset: usize,
11405            depth: fidl::encoding::Depth,
11406        ) -> fidl::Result<()> {
11407            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11408            // Zero out padding regions. There's no need to apply masks
11409            // because the unmasked parts will be overwritten by fields.
11410            // Write the fields.
11411            self.0.encode(encoder, offset + 0, depth)?;
11412            Ok(())
11413        }
11414    }
11415
11416    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11417        for RunnerCallStrictTwoWayFieldsErrRequest
11418    {
11419        #[inline(always)]
11420        fn new_empty() -> Self {
11421            Self {
11422                target: fidl::new_empty!(
11423                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11424                    fidl::encoding::DefaultFuchsiaResourceDialect
11425                ),
11426            }
11427        }
11428
11429        #[inline]
11430        unsafe fn decode(
11431            &mut self,
11432            decoder: &mut fidl::encoding::Decoder<
11433                '_,
11434                fidl::encoding::DefaultFuchsiaResourceDialect,
11435            >,
11436            offset: usize,
11437            _depth: fidl::encoding::Depth,
11438        ) -> fidl::Result<()> {
11439            decoder.debug_check_bounds::<Self>(offset);
11440            // Verify that padding bytes are zero.
11441            fidl::decode!(
11442                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11443                fidl::encoding::DefaultFuchsiaResourceDialect,
11444                &mut self.target,
11445                decoder,
11446                offset + 0,
11447                _depth
11448            )?;
11449            Ok(())
11450        }
11451    }
11452
11453    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11454        type Borrowed<'a> = &'a mut Self;
11455        fn take_or_borrow<'a>(
11456            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11457        ) -> Self::Borrowed<'a> {
11458            value
11459        }
11460    }
11461
11462    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11463        type Owned = Self;
11464
11465        #[inline(always)]
11466        fn inline_align(_context: fidl::encoding::Context) -> usize {
11467            4
11468        }
11469
11470        #[inline(always)]
11471        fn inline_size(_context: fidl::encoding::Context) -> usize {
11472            4
11473        }
11474    }
11475
11476    unsafe impl
11477        fidl::encoding::Encode<
11478            RunnerCallStrictTwoWayFieldsRequest,
11479            fidl::encoding::DefaultFuchsiaResourceDialect,
11480        > for &mut RunnerCallStrictTwoWayFieldsRequest
11481    {
11482        #[inline]
11483        unsafe fn encode(
11484            self,
11485            encoder: &mut fidl::encoding::Encoder<
11486                '_,
11487                fidl::encoding::DefaultFuchsiaResourceDialect,
11488            >,
11489            offset: usize,
11490            _depth: fidl::encoding::Depth,
11491        ) -> fidl::Result<()> {
11492            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11493            // Delegate to tuple encoding.
11494            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11495                (
11496                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11497                ),
11498                encoder, offset, _depth
11499            )
11500        }
11501    }
11502    unsafe impl<
11503        T0: fidl::encoding::Encode<
11504                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11505                fidl::encoding::DefaultFuchsiaResourceDialect,
11506            >,
11507    >
11508        fidl::encoding::Encode<
11509            RunnerCallStrictTwoWayFieldsRequest,
11510            fidl::encoding::DefaultFuchsiaResourceDialect,
11511        > for (T0,)
11512    {
11513        #[inline]
11514        unsafe fn encode(
11515            self,
11516            encoder: &mut fidl::encoding::Encoder<
11517                '_,
11518                fidl::encoding::DefaultFuchsiaResourceDialect,
11519            >,
11520            offset: usize,
11521            depth: fidl::encoding::Depth,
11522        ) -> fidl::Result<()> {
11523            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11524            // Zero out padding regions. There's no need to apply masks
11525            // because the unmasked parts will be overwritten by fields.
11526            // Write the fields.
11527            self.0.encode(encoder, offset + 0, depth)?;
11528            Ok(())
11529        }
11530    }
11531
11532    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11533        for RunnerCallStrictTwoWayFieldsRequest
11534    {
11535        #[inline(always)]
11536        fn new_empty() -> Self {
11537            Self {
11538                target: fidl::new_empty!(
11539                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11540                    fidl::encoding::DefaultFuchsiaResourceDialect
11541                ),
11542            }
11543        }
11544
11545        #[inline]
11546        unsafe fn decode(
11547            &mut self,
11548            decoder: &mut fidl::encoding::Decoder<
11549                '_,
11550                fidl::encoding::DefaultFuchsiaResourceDialect,
11551            >,
11552            offset: usize,
11553            _depth: fidl::encoding::Depth,
11554        ) -> fidl::Result<()> {
11555            decoder.debug_check_bounds::<Self>(offset);
11556            // Verify that padding bytes are zero.
11557            fidl::decode!(
11558                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11559                fidl::encoding::DefaultFuchsiaResourceDialect,
11560                &mut self.target,
11561                decoder,
11562                offset + 0,
11563                _depth
11564            )?;
11565            Ok(())
11566        }
11567    }
11568
11569    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayRequest {
11570        type Borrowed<'a> = &'a mut Self;
11571        fn take_or_borrow<'a>(
11572            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11573        ) -> Self::Borrowed<'a> {
11574            value
11575        }
11576    }
11577
11578    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayRequest {
11579        type Owned = Self;
11580
11581        #[inline(always)]
11582        fn inline_align(_context: fidl::encoding::Context) -> usize {
11583            4
11584        }
11585
11586        #[inline(always)]
11587        fn inline_size(_context: fidl::encoding::Context) -> usize {
11588            4
11589        }
11590    }
11591
11592    unsafe impl
11593        fidl::encoding::Encode<
11594            RunnerCallStrictTwoWayRequest,
11595            fidl::encoding::DefaultFuchsiaResourceDialect,
11596        > for &mut RunnerCallStrictTwoWayRequest
11597    {
11598        #[inline]
11599        unsafe fn encode(
11600            self,
11601            encoder: &mut fidl::encoding::Encoder<
11602                '_,
11603                fidl::encoding::DefaultFuchsiaResourceDialect,
11604            >,
11605            offset: usize,
11606            _depth: fidl::encoding::Depth,
11607        ) -> fidl::Result<()> {
11608            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11609            // Delegate to tuple encoding.
11610            fidl::encoding::Encode::<RunnerCallStrictTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11611                (
11612                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11613                ),
11614                encoder, offset, _depth
11615            )
11616        }
11617    }
11618    unsafe impl<
11619        T0: fidl::encoding::Encode<
11620                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11621                fidl::encoding::DefaultFuchsiaResourceDialect,
11622            >,
11623    >
11624        fidl::encoding::Encode<
11625            RunnerCallStrictTwoWayRequest,
11626            fidl::encoding::DefaultFuchsiaResourceDialect,
11627        > for (T0,)
11628    {
11629        #[inline]
11630        unsafe fn encode(
11631            self,
11632            encoder: &mut fidl::encoding::Encoder<
11633                '_,
11634                fidl::encoding::DefaultFuchsiaResourceDialect,
11635            >,
11636            offset: usize,
11637            depth: fidl::encoding::Depth,
11638        ) -> fidl::Result<()> {
11639            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11640            // Zero out padding regions. There's no need to apply masks
11641            // because the unmasked parts will be overwritten by fields.
11642            // Write the fields.
11643            self.0.encode(encoder, offset + 0, depth)?;
11644            Ok(())
11645        }
11646    }
11647
11648    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11649        for RunnerCallStrictTwoWayRequest
11650    {
11651        #[inline(always)]
11652        fn new_empty() -> Self {
11653            Self {
11654                target: fidl::new_empty!(
11655                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11656                    fidl::encoding::DefaultFuchsiaResourceDialect
11657                ),
11658            }
11659        }
11660
11661        #[inline]
11662        unsafe fn decode(
11663            &mut self,
11664            decoder: &mut fidl::encoding::Decoder<
11665                '_,
11666                fidl::encoding::DefaultFuchsiaResourceDialect,
11667            >,
11668            offset: usize,
11669            _depth: fidl::encoding::Depth,
11670        ) -> fidl::Result<()> {
11671            decoder.debug_check_bounds::<Self>(offset);
11672            // Verify that padding bytes are zero.
11673            fidl::decode!(
11674                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11675                fidl::encoding::DefaultFuchsiaResourceDialect,
11676                &mut self.target,
11677                decoder,
11678                offset + 0,
11679                _depth
11680            )?;
11681            Ok(())
11682        }
11683    }
11684
11685    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayNoPayloadRequest {
11686        type Borrowed<'a> = &'a mut Self;
11687        fn take_or_borrow<'a>(
11688            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11689        ) -> Self::Borrowed<'a> {
11690            value
11691        }
11692    }
11693
11694    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayNoPayloadRequest {
11695        type Owned = Self;
11696
11697        #[inline(always)]
11698        fn inline_align(_context: fidl::encoding::Context) -> usize {
11699            4
11700        }
11701
11702        #[inline(always)]
11703        fn inline_size(_context: fidl::encoding::Context) -> usize {
11704            4
11705        }
11706    }
11707
11708    unsafe impl
11709        fidl::encoding::Encode<
11710            RunnerCallTwoWayNoPayloadRequest,
11711            fidl::encoding::DefaultFuchsiaResourceDialect,
11712        > for &mut RunnerCallTwoWayNoPayloadRequest
11713    {
11714        #[inline]
11715        unsafe fn encode(
11716            self,
11717            encoder: &mut fidl::encoding::Encoder<
11718                '_,
11719                fidl::encoding::DefaultFuchsiaResourceDialect,
11720            >,
11721            offset: usize,
11722            _depth: fidl::encoding::Depth,
11723        ) -> fidl::Result<()> {
11724            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11725            // Delegate to tuple encoding.
11726            fidl::encoding::Encode::<RunnerCallTwoWayNoPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11727                (
11728                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11729                ),
11730                encoder, offset, _depth
11731            )
11732        }
11733    }
11734    unsafe impl<
11735        T0: fidl::encoding::Encode<
11736                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11737                fidl::encoding::DefaultFuchsiaResourceDialect,
11738            >,
11739    >
11740        fidl::encoding::Encode<
11741            RunnerCallTwoWayNoPayloadRequest,
11742            fidl::encoding::DefaultFuchsiaResourceDialect,
11743        > for (T0,)
11744    {
11745        #[inline]
11746        unsafe fn encode(
11747            self,
11748            encoder: &mut fidl::encoding::Encoder<
11749                '_,
11750                fidl::encoding::DefaultFuchsiaResourceDialect,
11751            >,
11752            offset: usize,
11753            depth: fidl::encoding::Depth,
11754        ) -> fidl::Result<()> {
11755            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11756            // Zero out padding regions. There's no need to apply masks
11757            // because the unmasked parts will be overwritten by fields.
11758            // Write the fields.
11759            self.0.encode(encoder, offset + 0, depth)?;
11760            Ok(())
11761        }
11762    }
11763
11764    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11765        for RunnerCallTwoWayNoPayloadRequest
11766    {
11767        #[inline(always)]
11768        fn new_empty() -> Self {
11769            Self {
11770                target: fidl::new_empty!(
11771                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11772                    fidl::encoding::DefaultFuchsiaResourceDialect
11773                ),
11774            }
11775        }
11776
11777        #[inline]
11778        unsafe fn decode(
11779            &mut self,
11780            decoder: &mut fidl::encoding::Decoder<
11781                '_,
11782                fidl::encoding::DefaultFuchsiaResourceDialect,
11783            >,
11784            offset: usize,
11785            _depth: fidl::encoding::Depth,
11786        ) -> fidl::Result<()> {
11787            decoder.debug_check_bounds::<Self>(offset);
11788            // Verify that padding bytes are zero.
11789            fidl::decode!(
11790                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11791                fidl::encoding::DefaultFuchsiaResourceDialect,
11792                &mut self.target,
11793                decoder,
11794                offset + 0,
11795                _depth
11796            )?;
11797            Ok(())
11798        }
11799    }
11800
11801    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11802        type Borrowed<'a> = &'a mut Self;
11803        fn take_or_borrow<'a>(
11804            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11805        ) -> Self::Borrowed<'a> {
11806            value
11807        }
11808    }
11809
11810    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11811        type Owned = Self;
11812
11813        #[inline(always)]
11814        fn inline_align(_context: fidl::encoding::Context) -> usize {
11815            4
11816        }
11817
11818        #[inline(always)]
11819        fn inline_size(_context: fidl::encoding::Context) -> usize {
11820            4
11821        }
11822    }
11823
11824    unsafe impl
11825        fidl::encoding::Encode<
11826            RunnerCallTwoWayStructPayloadErrRequest,
11827            fidl::encoding::DefaultFuchsiaResourceDialect,
11828        > for &mut RunnerCallTwoWayStructPayloadErrRequest
11829    {
11830        #[inline]
11831        unsafe fn encode(
11832            self,
11833            encoder: &mut fidl::encoding::Encoder<
11834                '_,
11835                fidl::encoding::DefaultFuchsiaResourceDialect,
11836            >,
11837            offset: usize,
11838            _depth: fidl::encoding::Depth,
11839        ) -> fidl::Result<()> {
11840            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11841            // Delegate to tuple encoding.
11842            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11843                (
11844                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11845                ),
11846                encoder, offset, _depth
11847            )
11848        }
11849    }
11850    unsafe impl<
11851        T0: fidl::encoding::Encode<
11852                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11853                fidl::encoding::DefaultFuchsiaResourceDialect,
11854            >,
11855    >
11856        fidl::encoding::Encode<
11857            RunnerCallTwoWayStructPayloadErrRequest,
11858            fidl::encoding::DefaultFuchsiaResourceDialect,
11859        > for (T0,)
11860    {
11861        #[inline]
11862        unsafe fn encode(
11863            self,
11864            encoder: &mut fidl::encoding::Encoder<
11865                '_,
11866                fidl::encoding::DefaultFuchsiaResourceDialect,
11867            >,
11868            offset: usize,
11869            depth: fidl::encoding::Depth,
11870        ) -> fidl::Result<()> {
11871            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11872            // Zero out padding regions. There's no need to apply masks
11873            // because the unmasked parts will be overwritten by fields.
11874            // Write the fields.
11875            self.0.encode(encoder, offset + 0, depth)?;
11876            Ok(())
11877        }
11878    }
11879
11880    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11881        for RunnerCallTwoWayStructPayloadErrRequest
11882    {
11883        #[inline(always)]
11884        fn new_empty() -> Self {
11885            Self {
11886                target: fidl::new_empty!(
11887                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11888                    fidl::encoding::DefaultFuchsiaResourceDialect
11889                ),
11890            }
11891        }
11892
11893        #[inline]
11894        unsafe fn decode(
11895            &mut self,
11896            decoder: &mut fidl::encoding::Decoder<
11897                '_,
11898                fidl::encoding::DefaultFuchsiaResourceDialect,
11899            >,
11900            offset: usize,
11901            _depth: fidl::encoding::Depth,
11902        ) -> fidl::Result<()> {
11903            decoder.debug_check_bounds::<Self>(offset);
11904            // Verify that padding bytes are zero.
11905            fidl::decode!(
11906                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11907                fidl::encoding::DefaultFuchsiaResourceDialect,
11908                &mut self.target,
11909                decoder,
11910                offset + 0,
11911                _depth
11912            )?;
11913            Ok(())
11914        }
11915    }
11916
11917    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadRequest {
11918        type Borrowed<'a> = &'a mut Self;
11919        fn take_or_borrow<'a>(
11920            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11921        ) -> Self::Borrowed<'a> {
11922            value
11923        }
11924    }
11925
11926    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadRequest {
11927        type Owned = Self;
11928
11929        #[inline(always)]
11930        fn inline_align(_context: fidl::encoding::Context) -> usize {
11931            4
11932        }
11933
11934        #[inline(always)]
11935        fn inline_size(_context: fidl::encoding::Context) -> usize {
11936            4
11937        }
11938    }
11939
11940    unsafe impl
11941        fidl::encoding::Encode<
11942            RunnerCallTwoWayStructPayloadRequest,
11943            fidl::encoding::DefaultFuchsiaResourceDialect,
11944        > for &mut RunnerCallTwoWayStructPayloadRequest
11945    {
11946        #[inline]
11947        unsafe fn encode(
11948            self,
11949            encoder: &mut fidl::encoding::Encoder<
11950                '_,
11951                fidl::encoding::DefaultFuchsiaResourceDialect,
11952            >,
11953            offset: usize,
11954            _depth: fidl::encoding::Depth,
11955        ) -> fidl::Result<()> {
11956            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11957            // Delegate to tuple encoding.
11958            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11959                (
11960                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11961                ),
11962                encoder, offset, _depth
11963            )
11964        }
11965    }
11966    unsafe impl<
11967        T0: fidl::encoding::Encode<
11968                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11969                fidl::encoding::DefaultFuchsiaResourceDialect,
11970            >,
11971    >
11972        fidl::encoding::Encode<
11973            RunnerCallTwoWayStructPayloadRequest,
11974            fidl::encoding::DefaultFuchsiaResourceDialect,
11975        > for (T0,)
11976    {
11977        #[inline]
11978        unsafe fn encode(
11979            self,
11980            encoder: &mut fidl::encoding::Encoder<
11981                '_,
11982                fidl::encoding::DefaultFuchsiaResourceDialect,
11983            >,
11984            offset: usize,
11985            depth: fidl::encoding::Depth,
11986        ) -> fidl::Result<()> {
11987            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11988            // Zero out padding regions. There's no need to apply masks
11989            // because the unmasked parts will be overwritten by fields.
11990            // Write the fields.
11991            self.0.encode(encoder, offset + 0, depth)?;
11992            Ok(())
11993        }
11994    }
11995
11996    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11997        for RunnerCallTwoWayStructPayloadRequest
11998    {
11999        #[inline(always)]
12000        fn new_empty() -> Self {
12001            Self {
12002                target: fidl::new_empty!(
12003                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12004                    fidl::encoding::DefaultFuchsiaResourceDialect
12005                ),
12006            }
12007        }
12008
12009        #[inline]
12010        unsafe fn decode(
12011            &mut self,
12012            decoder: &mut fidl::encoding::Decoder<
12013                '_,
12014                fidl::encoding::DefaultFuchsiaResourceDialect,
12015            >,
12016            offset: usize,
12017            _depth: fidl::encoding::Depth,
12018        ) -> fidl::Result<()> {
12019            decoder.debug_check_bounds::<Self>(offset);
12020            // Verify that padding bytes are zero.
12021            fidl::decode!(
12022                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12023                fidl::encoding::DefaultFuchsiaResourceDialect,
12024                &mut self.target,
12025                decoder,
12026                offset + 0,
12027                _depth
12028            )?;
12029            Ok(())
12030        }
12031    }
12032
12033    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructRequestRequest {
12034        type Borrowed<'a> = &'a mut Self;
12035        fn take_or_borrow<'a>(
12036            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12037        ) -> Self::Borrowed<'a> {
12038            value
12039        }
12040    }
12041
12042    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructRequestRequest {
12043        type Owned = Self;
12044
12045        #[inline(always)]
12046        fn inline_align(_context: fidl::encoding::Context) -> usize {
12047            4
12048        }
12049
12050        #[inline(always)]
12051        fn inline_size(_context: fidl::encoding::Context) -> usize {
12052            8
12053        }
12054    }
12055
12056    unsafe impl
12057        fidl::encoding::Encode<
12058            RunnerCallTwoWayStructRequestRequest,
12059            fidl::encoding::DefaultFuchsiaResourceDialect,
12060        > for &mut RunnerCallTwoWayStructRequestRequest
12061    {
12062        #[inline]
12063        unsafe fn encode(
12064            self,
12065            encoder: &mut fidl::encoding::Encoder<
12066                '_,
12067                fidl::encoding::DefaultFuchsiaResourceDialect,
12068            >,
12069            offset: usize,
12070            _depth: fidl::encoding::Depth,
12071        ) -> fidl::Result<()> {
12072            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
12073            // Delegate to tuple encoding.
12074            fidl::encoding::Encode::<RunnerCallTwoWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12075                (
12076                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12077                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12078                ),
12079                encoder, offset, _depth
12080            )
12081        }
12082    }
12083    unsafe impl<
12084        T0: fidl::encoding::Encode<
12085                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12086                fidl::encoding::DefaultFuchsiaResourceDialect,
12087            >,
12088        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12089    >
12090        fidl::encoding::Encode<
12091            RunnerCallTwoWayStructRequestRequest,
12092            fidl::encoding::DefaultFuchsiaResourceDialect,
12093        > for (T0, T1)
12094    {
12095        #[inline]
12096        unsafe fn encode(
12097            self,
12098            encoder: &mut fidl::encoding::Encoder<
12099                '_,
12100                fidl::encoding::DefaultFuchsiaResourceDialect,
12101            >,
12102            offset: usize,
12103            depth: fidl::encoding::Depth,
12104        ) -> fidl::Result<()> {
12105            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
12106            // Zero out padding regions. There's no need to apply masks
12107            // because the unmasked parts will be overwritten by fields.
12108            // Write the fields.
12109            self.0.encode(encoder, offset + 0, depth)?;
12110            self.1.encode(encoder, offset + 4, depth)?;
12111            Ok(())
12112        }
12113    }
12114
12115    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12116        for RunnerCallTwoWayStructRequestRequest
12117    {
12118        #[inline(always)]
12119        fn new_empty() -> Self {
12120            Self {
12121                target: fidl::new_empty!(
12122                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12123                    fidl::encoding::DefaultFuchsiaResourceDialect
12124                ),
12125                request: fidl::new_empty!(
12126                    NonEmptyPayload,
12127                    fidl::encoding::DefaultFuchsiaResourceDialect
12128                ),
12129            }
12130        }
12131
12132        #[inline]
12133        unsafe fn decode(
12134            &mut self,
12135            decoder: &mut fidl::encoding::Decoder<
12136                '_,
12137                fidl::encoding::DefaultFuchsiaResourceDialect,
12138            >,
12139            offset: usize,
12140            _depth: fidl::encoding::Depth,
12141        ) -> fidl::Result<()> {
12142            decoder.debug_check_bounds::<Self>(offset);
12143            // Verify that padding bytes are zero.
12144            fidl::decode!(
12145                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12146                fidl::encoding::DefaultFuchsiaResourceDialect,
12147                &mut self.target,
12148                decoder,
12149                offset + 0,
12150                _depth
12151            )?;
12152            fidl::decode!(
12153                NonEmptyPayload,
12154                fidl::encoding::DefaultFuchsiaResourceDialect,
12155                &mut self.request,
12156                decoder,
12157                offset + 4,
12158                _depth
12159            )?;
12160            Ok(())
12161        }
12162    }
12163
12164    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTablePayloadRequest {
12165        type Borrowed<'a> = &'a mut Self;
12166        fn take_or_borrow<'a>(
12167            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12168        ) -> Self::Borrowed<'a> {
12169            value
12170        }
12171    }
12172
12173    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTablePayloadRequest {
12174        type Owned = Self;
12175
12176        #[inline(always)]
12177        fn inline_align(_context: fidl::encoding::Context) -> usize {
12178            4
12179        }
12180
12181        #[inline(always)]
12182        fn inline_size(_context: fidl::encoding::Context) -> usize {
12183            4
12184        }
12185    }
12186
12187    unsafe impl
12188        fidl::encoding::Encode<
12189            RunnerCallTwoWayTablePayloadRequest,
12190            fidl::encoding::DefaultFuchsiaResourceDialect,
12191        > for &mut RunnerCallTwoWayTablePayloadRequest
12192    {
12193        #[inline]
12194        unsafe fn encode(
12195            self,
12196            encoder: &mut fidl::encoding::Encoder<
12197                '_,
12198                fidl::encoding::DefaultFuchsiaResourceDialect,
12199            >,
12200            offset: usize,
12201            _depth: fidl::encoding::Depth,
12202        ) -> fidl::Result<()> {
12203            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12204            // Delegate to tuple encoding.
12205            fidl::encoding::Encode::<RunnerCallTwoWayTablePayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12206                (
12207                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12208                ),
12209                encoder, offset, _depth
12210            )
12211        }
12212    }
12213    unsafe impl<
12214        T0: fidl::encoding::Encode<
12215                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12216                fidl::encoding::DefaultFuchsiaResourceDialect,
12217            >,
12218    >
12219        fidl::encoding::Encode<
12220            RunnerCallTwoWayTablePayloadRequest,
12221            fidl::encoding::DefaultFuchsiaResourceDialect,
12222        > for (T0,)
12223    {
12224        #[inline]
12225        unsafe fn encode(
12226            self,
12227            encoder: &mut fidl::encoding::Encoder<
12228                '_,
12229                fidl::encoding::DefaultFuchsiaResourceDialect,
12230            >,
12231            offset: usize,
12232            depth: fidl::encoding::Depth,
12233        ) -> fidl::Result<()> {
12234            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12235            // Zero out padding regions. There's no need to apply masks
12236            // because the unmasked parts will be overwritten by fields.
12237            // Write the fields.
12238            self.0.encode(encoder, offset + 0, depth)?;
12239            Ok(())
12240        }
12241    }
12242
12243    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12244        for RunnerCallTwoWayTablePayloadRequest
12245    {
12246        #[inline(always)]
12247        fn new_empty() -> Self {
12248            Self {
12249                target: fidl::new_empty!(
12250                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12251                    fidl::encoding::DefaultFuchsiaResourceDialect
12252                ),
12253            }
12254        }
12255
12256        #[inline]
12257        unsafe fn decode(
12258            &mut self,
12259            decoder: &mut fidl::encoding::Decoder<
12260                '_,
12261                fidl::encoding::DefaultFuchsiaResourceDialect,
12262            >,
12263            offset: usize,
12264            _depth: fidl::encoding::Depth,
12265        ) -> fidl::Result<()> {
12266            decoder.debug_check_bounds::<Self>(offset);
12267            // Verify that padding bytes are zero.
12268            fidl::decode!(
12269                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12270                fidl::encoding::DefaultFuchsiaResourceDialect,
12271                &mut self.target,
12272                decoder,
12273                offset + 0,
12274                _depth
12275            )?;
12276            Ok(())
12277        }
12278    }
12279
12280    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTableRequestRequest {
12281        type Borrowed<'a> = &'a mut Self;
12282        fn take_or_borrow<'a>(
12283            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12284        ) -> Self::Borrowed<'a> {
12285            value
12286        }
12287    }
12288
12289    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTableRequestRequest {
12290        type Owned = Self;
12291
12292        #[inline(always)]
12293        fn inline_align(_context: fidl::encoding::Context) -> usize {
12294            8
12295        }
12296
12297        #[inline(always)]
12298        fn inline_size(_context: fidl::encoding::Context) -> usize {
12299            24
12300        }
12301    }
12302
12303    unsafe impl
12304        fidl::encoding::Encode<
12305            RunnerCallTwoWayTableRequestRequest,
12306            fidl::encoding::DefaultFuchsiaResourceDialect,
12307        > for &mut RunnerCallTwoWayTableRequestRequest
12308    {
12309        #[inline]
12310        unsafe fn encode(
12311            self,
12312            encoder: &mut fidl::encoding::Encoder<
12313                '_,
12314                fidl::encoding::DefaultFuchsiaResourceDialect,
12315            >,
12316            offset: usize,
12317            _depth: fidl::encoding::Depth,
12318        ) -> fidl::Result<()> {
12319            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12320            // Delegate to tuple encoding.
12321            fidl::encoding::Encode::<RunnerCallTwoWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12322                (
12323                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12324                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12325                ),
12326                encoder, offset, _depth
12327            )
12328        }
12329    }
12330    unsafe impl<
12331        T0: fidl::encoding::Encode<
12332                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12333                fidl::encoding::DefaultFuchsiaResourceDialect,
12334            >,
12335        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12336    >
12337        fidl::encoding::Encode<
12338            RunnerCallTwoWayTableRequestRequest,
12339            fidl::encoding::DefaultFuchsiaResourceDialect,
12340        > for (T0, T1)
12341    {
12342        #[inline]
12343        unsafe fn encode(
12344            self,
12345            encoder: &mut fidl::encoding::Encoder<
12346                '_,
12347                fidl::encoding::DefaultFuchsiaResourceDialect,
12348            >,
12349            offset: usize,
12350            depth: fidl::encoding::Depth,
12351        ) -> fidl::Result<()> {
12352            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12353            // Zero out padding regions. There's no need to apply masks
12354            // because the unmasked parts will be overwritten by fields.
12355            unsafe {
12356                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12357                (ptr as *mut u64).write_unaligned(0);
12358            }
12359            // Write the fields.
12360            self.0.encode(encoder, offset + 0, depth)?;
12361            self.1.encode(encoder, offset + 8, depth)?;
12362            Ok(())
12363        }
12364    }
12365
12366    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12367        for RunnerCallTwoWayTableRequestRequest
12368    {
12369        #[inline(always)]
12370        fn new_empty() -> Self {
12371            Self {
12372                target: fidl::new_empty!(
12373                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12374                    fidl::encoding::DefaultFuchsiaResourceDialect
12375                ),
12376                request: fidl::new_empty!(
12377                    TablePayload,
12378                    fidl::encoding::DefaultFuchsiaResourceDialect
12379                ),
12380            }
12381        }
12382
12383        #[inline]
12384        unsafe fn decode(
12385            &mut self,
12386            decoder: &mut fidl::encoding::Decoder<
12387                '_,
12388                fidl::encoding::DefaultFuchsiaResourceDialect,
12389            >,
12390            offset: usize,
12391            _depth: fidl::encoding::Depth,
12392        ) -> fidl::Result<()> {
12393            decoder.debug_check_bounds::<Self>(offset);
12394            // Verify that padding bytes are zero.
12395            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12396            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12397            let mask = 0xffffffff00000000u64;
12398            let maskedval = padval & mask;
12399            if maskedval != 0 {
12400                return Err(fidl::Error::NonZeroPadding {
12401                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12402                });
12403            }
12404            fidl::decode!(
12405                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12406                fidl::encoding::DefaultFuchsiaResourceDialect,
12407                &mut self.target,
12408                decoder,
12409                offset + 0,
12410                _depth
12411            )?;
12412            fidl::decode!(
12413                TablePayload,
12414                fidl::encoding::DefaultFuchsiaResourceDialect,
12415                &mut self.request,
12416                decoder,
12417                offset + 8,
12418                _depth
12419            )?;
12420            Ok(())
12421        }
12422    }
12423
12424    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12425        type Borrowed<'a> = &'a mut Self;
12426        fn take_or_borrow<'a>(
12427            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12428        ) -> Self::Borrowed<'a> {
12429            value
12430        }
12431    }
12432
12433    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12434        type Owned = Self;
12435
12436        #[inline(always)]
12437        fn inline_align(_context: fidl::encoding::Context) -> usize {
12438            4
12439        }
12440
12441        #[inline(always)]
12442        fn inline_size(_context: fidl::encoding::Context) -> usize {
12443            4
12444        }
12445    }
12446
12447    unsafe impl
12448        fidl::encoding::Encode<
12449            RunnerCallTwoWayUnionPayloadRequest,
12450            fidl::encoding::DefaultFuchsiaResourceDialect,
12451        > for &mut RunnerCallTwoWayUnionPayloadRequest
12452    {
12453        #[inline]
12454        unsafe fn encode(
12455            self,
12456            encoder: &mut fidl::encoding::Encoder<
12457                '_,
12458                fidl::encoding::DefaultFuchsiaResourceDialect,
12459            >,
12460            offset: usize,
12461            _depth: fidl::encoding::Depth,
12462        ) -> fidl::Result<()> {
12463            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12464            // Delegate to tuple encoding.
12465            fidl::encoding::Encode::<RunnerCallTwoWayUnionPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12466                (
12467                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12468                ),
12469                encoder, offset, _depth
12470            )
12471        }
12472    }
12473    unsafe impl<
12474        T0: fidl::encoding::Encode<
12475                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12476                fidl::encoding::DefaultFuchsiaResourceDialect,
12477            >,
12478    >
12479        fidl::encoding::Encode<
12480            RunnerCallTwoWayUnionPayloadRequest,
12481            fidl::encoding::DefaultFuchsiaResourceDialect,
12482        > for (T0,)
12483    {
12484        #[inline]
12485        unsafe fn encode(
12486            self,
12487            encoder: &mut fidl::encoding::Encoder<
12488                '_,
12489                fidl::encoding::DefaultFuchsiaResourceDialect,
12490            >,
12491            offset: usize,
12492            depth: fidl::encoding::Depth,
12493        ) -> fidl::Result<()> {
12494            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12495            // Zero out padding regions. There's no need to apply masks
12496            // because the unmasked parts will be overwritten by fields.
12497            // Write the fields.
12498            self.0.encode(encoder, offset + 0, depth)?;
12499            Ok(())
12500        }
12501    }
12502
12503    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12504        for RunnerCallTwoWayUnionPayloadRequest
12505    {
12506        #[inline(always)]
12507        fn new_empty() -> Self {
12508            Self {
12509                target: fidl::new_empty!(
12510                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12511                    fidl::encoding::DefaultFuchsiaResourceDialect
12512                ),
12513            }
12514        }
12515
12516        #[inline]
12517        unsafe fn decode(
12518            &mut self,
12519            decoder: &mut fidl::encoding::Decoder<
12520                '_,
12521                fidl::encoding::DefaultFuchsiaResourceDialect,
12522            >,
12523            offset: usize,
12524            _depth: fidl::encoding::Depth,
12525        ) -> fidl::Result<()> {
12526            decoder.debug_check_bounds::<Self>(offset);
12527            // Verify that padding bytes are zero.
12528            fidl::decode!(
12529                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12530                fidl::encoding::DefaultFuchsiaResourceDialect,
12531                &mut self.target,
12532                decoder,
12533                offset + 0,
12534                _depth
12535            )?;
12536            Ok(())
12537        }
12538    }
12539
12540    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionRequestRequest {
12541        type Borrowed<'a> = &'a mut Self;
12542        fn take_or_borrow<'a>(
12543            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12544        ) -> Self::Borrowed<'a> {
12545            value
12546        }
12547    }
12548
12549    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionRequestRequest {
12550        type Owned = Self;
12551
12552        #[inline(always)]
12553        fn inline_align(_context: fidl::encoding::Context) -> usize {
12554            8
12555        }
12556
12557        #[inline(always)]
12558        fn inline_size(_context: fidl::encoding::Context) -> usize {
12559            24
12560        }
12561    }
12562
12563    unsafe impl
12564        fidl::encoding::Encode<
12565            RunnerCallTwoWayUnionRequestRequest,
12566            fidl::encoding::DefaultFuchsiaResourceDialect,
12567        > for &mut RunnerCallTwoWayUnionRequestRequest
12568    {
12569        #[inline]
12570        unsafe fn encode(
12571            self,
12572            encoder: &mut fidl::encoding::Encoder<
12573                '_,
12574                fidl::encoding::DefaultFuchsiaResourceDialect,
12575            >,
12576            offset: usize,
12577            _depth: fidl::encoding::Depth,
12578        ) -> fidl::Result<()> {
12579            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12580            // Delegate to tuple encoding.
12581            fidl::encoding::Encode::<RunnerCallTwoWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12582                (
12583                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12584                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12585                ),
12586                encoder, offset, _depth
12587            )
12588        }
12589    }
12590    unsafe impl<
12591        T0: fidl::encoding::Encode<
12592                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12593                fidl::encoding::DefaultFuchsiaResourceDialect,
12594            >,
12595        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12596    >
12597        fidl::encoding::Encode<
12598            RunnerCallTwoWayUnionRequestRequest,
12599            fidl::encoding::DefaultFuchsiaResourceDialect,
12600        > for (T0, T1)
12601    {
12602        #[inline]
12603        unsafe fn encode(
12604            self,
12605            encoder: &mut fidl::encoding::Encoder<
12606                '_,
12607                fidl::encoding::DefaultFuchsiaResourceDialect,
12608            >,
12609            offset: usize,
12610            depth: fidl::encoding::Depth,
12611        ) -> fidl::Result<()> {
12612            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12613            // Zero out padding regions. There's no need to apply masks
12614            // because the unmasked parts will be overwritten by fields.
12615            unsafe {
12616                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12617                (ptr as *mut u64).write_unaligned(0);
12618            }
12619            // Write the fields.
12620            self.0.encode(encoder, offset + 0, depth)?;
12621            self.1.encode(encoder, offset + 8, depth)?;
12622            Ok(())
12623        }
12624    }
12625
12626    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12627        for RunnerCallTwoWayUnionRequestRequest
12628    {
12629        #[inline(always)]
12630        fn new_empty() -> Self {
12631            Self {
12632                target: fidl::new_empty!(
12633                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12634                    fidl::encoding::DefaultFuchsiaResourceDialect
12635                ),
12636                request: fidl::new_empty!(
12637                    UnionPayload,
12638                    fidl::encoding::DefaultFuchsiaResourceDialect
12639                ),
12640            }
12641        }
12642
12643        #[inline]
12644        unsafe fn decode(
12645            &mut self,
12646            decoder: &mut fidl::encoding::Decoder<
12647                '_,
12648                fidl::encoding::DefaultFuchsiaResourceDialect,
12649            >,
12650            offset: usize,
12651            _depth: fidl::encoding::Depth,
12652        ) -> fidl::Result<()> {
12653            decoder.debug_check_bounds::<Self>(offset);
12654            // Verify that padding bytes are zero.
12655            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12656            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12657            let mask = 0xffffffff00000000u64;
12658            let maskedval = padval & mask;
12659            if maskedval != 0 {
12660                return Err(fidl::Error::NonZeroPadding {
12661                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12662                });
12663            }
12664            fidl::decode!(
12665                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12666                fidl::encoding::DefaultFuchsiaResourceDialect,
12667                &mut self.target,
12668                decoder,
12669                offset + 0,
12670                _depth
12671            )?;
12672            fidl::decode!(
12673                UnionPayload,
12674                fidl::encoding::DefaultFuchsiaResourceDialect,
12675                &mut self.request,
12676                decoder,
12677                offset + 8,
12678                _depth
12679            )?;
12680            Ok(())
12681        }
12682    }
12683
12684    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveAjarEventsRequest {
12685        type Borrowed<'a> = &'a mut Self;
12686        fn take_or_borrow<'a>(
12687            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12688        ) -> Self::Borrowed<'a> {
12689            value
12690        }
12691    }
12692
12693    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveAjarEventsRequest {
12694        type Owned = Self;
12695
12696        #[inline(always)]
12697        fn inline_align(_context: fidl::encoding::Context) -> usize {
12698            4
12699        }
12700
12701        #[inline(always)]
12702        fn inline_size(_context: fidl::encoding::Context) -> usize {
12703            8
12704        }
12705    }
12706
12707    unsafe impl
12708        fidl::encoding::Encode<
12709            RunnerReceiveAjarEventsRequest,
12710            fidl::encoding::DefaultFuchsiaResourceDialect,
12711        > for &mut RunnerReceiveAjarEventsRequest
12712    {
12713        #[inline]
12714        unsafe fn encode(
12715            self,
12716            encoder: &mut fidl::encoding::Encoder<
12717                '_,
12718                fidl::encoding::DefaultFuchsiaResourceDialect,
12719            >,
12720            offset: usize,
12721            _depth: fidl::encoding::Depth,
12722        ) -> fidl::Result<()> {
12723            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12724            // Delegate to tuple encoding.
12725            fidl::encoding::Encode::<RunnerReceiveAjarEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12726                (
12727                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12728                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12729                ),
12730                encoder, offset, _depth
12731            )
12732        }
12733    }
12734    unsafe impl<
12735        T0: fidl::encoding::Encode<
12736                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12737                fidl::encoding::DefaultFuchsiaResourceDialect,
12738            >,
12739        T1: fidl::encoding::Encode<
12740                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12741                fidl::encoding::DefaultFuchsiaResourceDialect,
12742            >,
12743    >
12744        fidl::encoding::Encode<
12745            RunnerReceiveAjarEventsRequest,
12746            fidl::encoding::DefaultFuchsiaResourceDialect,
12747        > for (T0, T1)
12748    {
12749        #[inline]
12750        unsafe fn encode(
12751            self,
12752            encoder: &mut fidl::encoding::Encoder<
12753                '_,
12754                fidl::encoding::DefaultFuchsiaResourceDialect,
12755            >,
12756            offset: usize,
12757            depth: fidl::encoding::Depth,
12758        ) -> fidl::Result<()> {
12759            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12760            // Zero out padding regions. There's no need to apply masks
12761            // because the unmasked parts will be overwritten by fields.
12762            // Write the fields.
12763            self.0.encode(encoder, offset + 0, depth)?;
12764            self.1.encode(encoder, offset + 4, depth)?;
12765            Ok(())
12766        }
12767    }
12768
12769    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12770        for RunnerReceiveAjarEventsRequest
12771    {
12772        #[inline(always)]
12773        fn new_empty() -> Self {
12774            Self {
12775                target: fidl::new_empty!(
12776                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12777                    fidl::encoding::DefaultFuchsiaResourceDialect
12778                ),
12779                reporter: fidl::new_empty!(
12780                    fidl::encoding::Endpoint<
12781                        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
12782                    >,
12783                    fidl::encoding::DefaultFuchsiaResourceDialect
12784                ),
12785            }
12786        }
12787
12788        #[inline]
12789        unsafe fn decode(
12790            &mut self,
12791            decoder: &mut fidl::encoding::Decoder<
12792                '_,
12793                fidl::encoding::DefaultFuchsiaResourceDialect,
12794            >,
12795            offset: usize,
12796            _depth: fidl::encoding::Depth,
12797        ) -> fidl::Result<()> {
12798            decoder.debug_check_bounds::<Self>(offset);
12799            // Verify that padding bytes are zero.
12800            fidl::decode!(
12801                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12802                fidl::encoding::DefaultFuchsiaResourceDialect,
12803                &mut self.target,
12804                decoder,
12805                offset + 0,
12806                _depth
12807            )?;
12808            fidl::decode!(
12809                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12810                fidl::encoding::DefaultFuchsiaResourceDialect,
12811                &mut self.reporter,
12812                decoder,
12813                offset + 4,
12814                _depth
12815            )?;
12816            Ok(())
12817        }
12818    }
12819
12820    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveClosedEventsRequest {
12821        type Borrowed<'a> = &'a mut Self;
12822        fn take_or_borrow<'a>(
12823            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12824        ) -> Self::Borrowed<'a> {
12825            value
12826        }
12827    }
12828
12829    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveClosedEventsRequest {
12830        type Owned = Self;
12831
12832        #[inline(always)]
12833        fn inline_align(_context: fidl::encoding::Context) -> usize {
12834            4
12835        }
12836
12837        #[inline(always)]
12838        fn inline_size(_context: fidl::encoding::Context) -> usize {
12839            8
12840        }
12841    }
12842
12843    unsafe impl
12844        fidl::encoding::Encode<
12845            RunnerReceiveClosedEventsRequest,
12846            fidl::encoding::DefaultFuchsiaResourceDialect,
12847        > for &mut RunnerReceiveClosedEventsRequest
12848    {
12849        #[inline]
12850        unsafe fn encode(
12851            self,
12852            encoder: &mut fidl::encoding::Encoder<
12853                '_,
12854                fidl::encoding::DefaultFuchsiaResourceDialect,
12855            >,
12856            offset: usize,
12857            _depth: fidl::encoding::Depth,
12858        ) -> fidl::Result<()> {
12859            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12860            // Delegate to tuple encoding.
12861            fidl::encoding::Encode::<RunnerReceiveClosedEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12862                (
12863                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12864                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12865                ),
12866                encoder, offset, _depth
12867            )
12868        }
12869    }
12870    unsafe impl<
12871        T0: fidl::encoding::Encode<
12872                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12873                fidl::encoding::DefaultFuchsiaResourceDialect,
12874            >,
12875        T1: fidl::encoding::Encode<
12876                fidl::encoding::Endpoint<
12877                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12878                >,
12879                fidl::encoding::DefaultFuchsiaResourceDialect,
12880            >,
12881    >
12882        fidl::encoding::Encode<
12883            RunnerReceiveClosedEventsRequest,
12884            fidl::encoding::DefaultFuchsiaResourceDialect,
12885        > for (T0, T1)
12886    {
12887        #[inline]
12888        unsafe fn encode(
12889            self,
12890            encoder: &mut fidl::encoding::Encoder<
12891                '_,
12892                fidl::encoding::DefaultFuchsiaResourceDialect,
12893            >,
12894            offset: usize,
12895            depth: fidl::encoding::Depth,
12896        ) -> fidl::Result<()> {
12897            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12898            // Zero out padding regions. There's no need to apply masks
12899            // because the unmasked parts will be overwritten by fields.
12900            // Write the fields.
12901            self.0.encode(encoder, offset + 0, depth)?;
12902            self.1.encode(encoder, offset + 4, depth)?;
12903            Ok(())
12904        }
12905    }
12906
12907    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12908        for RunnerReceiveClosedEventsRequest
12909    {
12910        #[inline(always)]
12911        fn new_empty() -> Self {
12912            Self {
12913                target: fidl::new_empty!(
12914                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12915                    fidl::encoding::DefaultFuchsiaResourceDialect
12916                ),
12917                reporter: fidl::new_empty!(
12918                    fidl::encoding::Endpoint<
12919                        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12920                    >,
12921                    fidl::encoding::DefaultFuchsiaResourceDialect
12922                ),
12923            }
12924        }
12925
12926        #[inline]
12927        unsafe fn decode(
12928            &mut self,
12929            decoder: &mut fidl::encoding::Decoder<
12930                '_,
12931                fidl::encoding::DefaultFuchsiaResourceDialect,
12932            >,
12933            offset: usize,
12934            _depth: fidl::encoding::Depth,
12935        ) -> fidl::Result<()> {
12936            decoder.debug_check_bounds::<Self>(offset);
12937            // Verify that padding bytes are zero.
12938            fidl::decode!(
12939                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12940                fidl::encoding::DefaultFuchsiaResourceDialect,
12941                &mut self.target,
12942                decoder,
12943                offset + 0,
12944                _depth
12945            )?;
12946            fidl::decode!(
12947                fidl::encoding::Endpoint<
12948                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12949                >,
12950                fidl::encoding::DefaultFuchsiaResourceDialect,
12951                &mut self.reporter,
12952                decoder,
12953                offset + 4,
12954                _depth
12955            )?;
12956            Ok(())
12957        }
12958    }
12959
12960    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveOpenEventsRequest {
12961        type Borrowed<'a> = &'a mut Self;
12962        fn take_or_borrow<'a>(
12963            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12964        ) -> Self::Borrowed<'a> {
12965            value
12966        }
12967    }
12968
12969    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveOpenEventsRequest {
12970        type Owned = Self;
12971
12972        #[inline(always)]
12973        fn inline_align(_context: fidl::encoding::Context) -> usize {
12974            4
12975        }
12976
12977        #[inline(always)]
12978        fn inline_size(_context: fidl::encoding::Context) -> usize {
12979            8
12980        }
12981    }
12982
12983    unsafe impl
12984        fidl::encoding::Encode<
12985            RunnerReceiveOpenEventsRequest,
12986            fidl::encoding::DefaultFuchsiaResourceDialect,
12987        > for &mut RunnerReceiveOpenEventsRequest
12988    {
12989        #[inline]
12990        unsafe fn encode(
12991            self,
12992            encoder: &mut fidl::encoding::Encoder<
12993                '_,
12994                fidl::encoding::DefaultFuchsiaResourceDialect,
12995            >,
12996            offset: usize,
12997            _depth: fidl::encoding::Depth,
12998        ) -> fidl::Result<()> {
12999            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
13000            // Delegate to tuple encoding.
13001            fidl::encoding::Encode::<RunnerReceiveOpenEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
13002                (
13003                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
13004                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
13005                ),
13006                encoder, offset, _depth
13007            )
13008        }
13009    }
13010    unsafe impl<
13011        T0: fidl::encoding::Encode<
13012                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
13013                fidl::encoding::DefaultFuchsiaResourceDialect,
13014            >,
13015        T1: fidl::encoding::Encode<
13016                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
13017                fidl::encoding::DefaultFuchsiaResourceDialect,
13018            >,
13019    >
13020        fidl::encoding::Encode<
13021            RunnerReceiveOpenEventsRequest,
13022            fidl::encoding::DefaultFuchsiaResourceDialect,
13023        > for (T0, T1)
13024    {
13025        #[inline]
13026        unsafe fn encode(
13027            self,
13028            encoder: &mut fidl::encoding::Encoder<
13029                '_,
13030                fidl::encoding::DefaultFuchsiaResourceDialect,
13031            >,
13032            offset: usize,
13033            depth: fidl::encoding::Depth,
13034        ) -> fidl::Result<()> {
13035            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
13036            // Zero out padding regions. There's no need to apply masks
13037            // because the unmasked parts will be overwritten by fields.
13038            // Write the fields.
13039            self.0.encode(encoder, offset + 0, depth)?;
13040            self.1.encode(encoder, offset + 4, depth)?;
13041            Ok(())
13042        }
13043    }
13044
13045    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
13046        for RunnerReceiveOpenEventsRequest
13047    {
13048        #[inline(always)]
13049        fn new_empty() -> Self {
13050            Self {
13051                target: fidl::new_empty!(
13052                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
13053                    fidl::encoding::DefaultFuchsiaResourceDialect
13054                ),
13055                reporter: fidl::new_empty!(
13056                    fidl::encoding::Endpoint<
13057                        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
13058                    >,
13059                    fidl::encoding::DefaultFuchsiaResourceDialect
13060                ),
13061            }
13062        }
13063
13064        #[inline]
13065        unsafe fn decode(
13066            &mut self,
13067            decoder: &mut fidl::encoding::Decoder<
13068                '_,
13069                fidl::encoding::DefaultFuchsiaResourceDialect,
13070            >,
13071            offset: usize,
13072            _depth: fidl::encoding::Depth,
13073        ) -> fidl::Result<()> {
13074            decoder.debug_check_bounds::<Self>(offset);
13075            // Verify that padding bytes are zero.
13076            fidl::decode!(
13077                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
13078                fidl::encoding::DefaultFuchsiaResourceDialect,
13079                &mut self.target,
13080                decoder,
13081                offset + 0,
13082                _depth
13083            )?;
13084            fidl::decode!(
13085                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
13086                fidl::encoding::DefaultFuchsiaResourceDialect,
13087                &mut self.reporter,
13088                decoder,
13089                offset + 4,
13090                _depth
13091            )?;
13092            Ok(())
13093        }
13094    }
13095}