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 AjarTargetControlHandle {
574    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
575        self.inner.shutdown_with_epitaph(status.into())
576    }
577}
578
579impl fidl::endpoints::ControlHandle for AjarTargetControlHandle {
580    fn shutdown(&self) {
581        self.inner.shutdown()
582    }
583
584    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
585        self.inner.shutdown_with_epitaph(status)
586    }
587
588    fn is_closed(&self) -> bool {
589        self.inner.channel().is_closed()
590    }
591    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
592        self.inner.channel().on_closed()
593    }
594
595    #[cfg(target_os = "fuchsia")]
596    fn signal_peer(
597        &self,
598        clear_mask: zx::Signals,
599        set_mask: zx::Signals,
600    ) -> Result<(), zx_status::Status> {
601        use fidl::Peered;
602        self.inner.channel().signal_peer(clear_mask, set_mask)
603    }
604}
605
606impl AjarTargetControlHandle {}
607
608#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
609pub struct AjarTargetEventReporterMarker;
610
611impl fidl::endpoints::ProtocolMarker for AjarTargetEventReporterMarker {
612    type Proxy = AjarTargetEventReporterProxy;
613    type RequestStream = AjarTargetEventReporterRequestStream;
614    #[cfg(target_os = "fuchsia")]
615    type SynchronousProxy = AjarTargetEventReporterSynchronousProxy;
616
617    const DEBUG_NAME: &'static str = "(anonymous) AjarTargetEventReporter";
618}
619
620pub trait AjarTargetEventReporterProxyInterface: Send + Sync {
621    fn r#report_event(&self, payload: &AjarTargetEventReport) -> Result<(), fidl::Error>;
622}
623#[derive(Debug)]
624#[cfg(target_os = "fuchsia")]
625pub struct AjarTargetEventReporterSynchronousProxy {
626    client: fidl::client::sync::Client,
627}
628
629#[cfg(target_os = "fuchsia")]
630impl fidl::endpoints::SynchronousProxy for AjarTargetEventReporterSynchronousProxy {
631    type Proxy = AjarTargetEventReporterProxy;
632    type Protocol = AjarTargetEventReporterMarker;
633
634    fn from_channel(inner: fidl::Channel) -> Self {
635        Self::new(inner)
636    }
637
638    fn into_channel(self) -> fidl::Channel {
639        self.client.into_channel()
640    }
641
642    fn as_channel(&self) -> &fidl::Channel {
643        self.client.as_channel()
644    }
645}
646
647#[cfg(target_os = "fuchsia")]
648impl AjarTargetEventReporterSynchronousProxy {
649    pub fn new(channel: fidl::Channel) -> Self {
650        Self { client: fidl::client::sync::Client::new(channel) }
651    }
652
653    pub fn into_channel(self) -> fidl::Channel {
654        self.client.into_channel()
655    }
656
657    /// Waits until an event arrives and returns it. It is safe for other
658    /// threads to make concurrent requests while waiting for an event.
659    pub fn wait_for_event(
660        &self,
661        deadline: zx::MonotonicInstant,
662    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
663        AjarTargetEventReporterEvent::decode(
664            self.client.wait_for_event::<AjarTargetEventReporterMarker>(deadline)?,
665        )
666    }
667
668    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
669        self.client.send::<AjarTargetEventReport>(
670            payload,
671            0x477b93390be99238,
672            fidl::encoding::DynamicFlags::empty(),
673        )
674    }
675}
676
677#[cfg(target_os = "fuchsia")]
678impl From<AjarTargetEventReporterSynchronousProxy> for zx::NullableHandle {
679    fn from(value: AjarTargetEventReporterSynchronousProxy) -> Self {
680        value.into_channel().into()
681    }
682}
683
684#[cfg(target_os = "fuchsia")]
685impl From<fidl::Channel> for AjarTargetEventReporterSynchronousProxy {
686    fn from(value: fidl::Channel) -> Self {
687        Self::new(value)
688    }
689}
690
691#[cfg(target_os = "fuchsia")]
692impl fidl::endpoints::FromClient for AjarTargetEventReporterSynchronousProxy {
693    type Protocol = AjarTargetEventReporterMarker;
694
695    fn from_client(value: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>) -> Self {
696        Self::new(value.into_channel())
697    }
698}
699
700#[derive(Debug, Clone)]
701pub struct AjarTargetEventReporterProxy {
702    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
703}
704
705impl fidl::endpoints::Proxy for AjarTargetEventReporterProxy {
706    type Protocol = AjarTargetEventReporterMarker;
707
708    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
709        Self::new(inner)
710    }
711
712    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
713        self.client.into_channel().map_err(|client| Self { client })
714    }
715
716    fn as_channel(&self) -> &::fidl::AsyncChannel {
717        self.client.as_channel()
718    }
719}
720
721impl AjarTargetEventReporterProxy {
722    /// Create a new Proxy for fidl.clientsuite/AjarTargetEventReporter.
723    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
724        let protocol_name =
725            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
726        Self { client: fidl::client::Client::new(channel, protocol_name) }
727    }
728
729    /// Get a Stream of events from the remote end of the protocol.
730    ///
731    /// # Panics
732    ///
733    /// Panics if the event stream was already taken.
734    pub fn take_event_stream(&self) -> AjarTargetEventReporterEventStream {
735        AjarTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
736    }
737
738    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
739        AjarTargetEventReporterProxyInterface::r#report_event(self, payload)
740    }
741}
742
743impl AjarTargetEventReporterProxyInterface for AjarTargetEventReporterProxy {
744    fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
745        self.client.send::<AjarTargetEventReport>(
746            payload,
747            0x477b93390be99238,
748            fidl::encoding::DynamicFlags::empty(),
749        )
750    }
751}
752
753pub struct AjarTargetEventReporterEventStream {
754    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
755}
756
757impl std::marker::Unpin for AjarTargetEventReporterEventStream {}
758
759impl futures::stream::FusedStream for AjarTargetEventReporterEventStream {
760    fn is_terminated(&self) -> bool {
761        self.event_receiver.is_terminated()
762    }
763}
764
765impl futures::Stream for AjarTargetEventReporterEventStream {
766    type Item = Result<AjarTargetEventReporterEvent, fidl::Error>;
767
768    fn poll_next(
769        mut self: std::pin::Pin<&mut Self>,
770        cx: &mut std::task::Context<'_>,
771    ) -> std::task::Poll<Option<Self::Item>> {
772        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
773            &mut self.event_receiver,
774            cx
775        )?) {
776            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEventReporterEvent::decode(buf))),
777            None => std::task::Poll::Ready(None),
778        }
779    }
780}
781
782#[derive(Debug)]
783pub enum AjarTargetEventReporterEvent {}
784
785impl AjarTargetEventReporterEvent {
786    /// Decodes a message buffer as a [`AjarTargetEventReporterEvent`].
787    fn decode(
788        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
789    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
790        let (bytes, _handles) = buf.split_mut();
791        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
792        debug_assert_eq!(tx_header.tx_id, 0);
793        match tx_header.ordinal {
794            _ => Err(fidl::Error::UnknownOrdinal {
795                ordinal: tx_header.ordinal,
796                protocol_name:
797                    <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
798            }),
799        }
800    }
801}
802
803/// A Stream of incoming requests for fidl.clientsuite/AjarTargetEventReporter.
804pub struct AjarTargetEventReporterRequestStream {
805    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
806    is_terminated: bool,
807}
808
809impl std::marker::Unpin for AjarTargetEventReporterRequestStream {}
810
811impl futures::stream::FusedStream for AjarTargetEventReporterRequestStream {
812    fn is_terminated(&self) -> bool {
813        self.is_terminated
814    }
815}
816
817impl fidl::endpoints::RequestStream for AjarTargetEventReporterRequestStream {
818    type Protocol = AjarTargetEventReporterMarker;
819    type ControlHandle = AjarTargetEventReporterControlHandle;
820
821    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
822        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
823    }
824
825    fn control_handle(&self) -> Self::ControlHandle {
826        AjarTargetEventReporterControlHandle { inner: self.inner.clone() }
827    }
828
829    fn into_inner(
830        self,
831    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
832    {
833        (self.inner, self.is_terminated)
834    }
835
836    fn from_inner(
837        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
838        is_terminated: bool,
839    ) -> Self {
840        Self { inner, is_terminated }
841    }
842}
843
844impl futures::Stream for AjarTargetEventReporterRequestStream {
845    type Item = Result<AjarTargetEventReporterRequest, fidl::Error>;
846
847    fn poll_next(
848        mut self: std::pin::Pin<&mut Self>,
849        cx: &mut std::task::Context<'_>,
850    ) -> std::task::Poll<Option<Self::Item>> {
851        let this = &mut *self;
852        if this.inner.check_shutdown(cx) {
853            this.is_terminated = true;
854            return std::task::Poll::Ready(None);
855        }
856        if this.is_terminated {
857            panic!("polled AjarTargetEventReporterRequestStream after completion");
858        }
859        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
860            |bytes, handles| {
861                match this.inner.channel().read_etc(cx, bytes, handles) {
862                    std::task::Poll::Ready(Ok(())) => {}
863                    std::task::Poll::Pending => return std::task::Poll::Pending,
864                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
865                        this.is_terminated = true;
866                        return std::task::Poll::Ready(None);
867                    }
868                    std::task::Poll::Ready(Err(e)) => {
869                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
870                            e.into(),
871                        ))));
872                    }
873                }
874
875                // A message has been received from the channel
876                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
877
878                std::task::Poll::Ready(Some(match header.ordinal {
879                0x477b93390be99238 => {
880                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
881                    let mut req = fidl::new_empty!(AjarTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
882                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<AjarTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
883                    let control_handle = AjarTargetEventReporterControlHandle {
884                        inner: this.inner.clone(),
885                    };
886                    Ok(AjarTargetEventReporterRequest::ReportEvent {payload: req,
887                        control_handle,
888                    })
889                }
890                _ => Err(fidl::Error::UnknownOrdinal {
891                    ordinal: header.ordinal,
892                    protocol_name: <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
893                }),
894            }))
895            },
896        )
897    }
898}
899
900#[derive(Debug)]
901pub enum AjarTargetEventReporterRequest {
902    ReportEvent {
903        payload: AjarTargetEventReport,
904        control_handle: AjarTargetEventReporterControlHandle,
905    },
906}
907
908impl AjarTargetEventReporterRequest {
909    #[allow(irrefutable_let_patterns)]
910    pub fn into_report_event(
911        self,
912    ) -> Option<(AjarTargetEventReport, AjarTargetEventReporterControlHandle)> {
913        if let AjarTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
914            Some((payload, control_handle))
915        } else {
916            None
917        }
918    }
919
920    /// Name of the method defined in FIDL
921    pub fn method_name(&self) -> &'static str {
922        match *self {
923            AjarTargetEventReporterRequest::ReportEvent { .. } => "report_event",
924        }
925    }
926}
927
928#[derive(Debug, Clone)]
929pub struct AjarTargetEventReporterControlHandle {
930    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
931}
932
933impl AjarTargetEventReporterControlHandle {
934    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
935        self.inner.shutdown_with_epitaph(status.into())
936    }
937}
938
939impl fidl::endpoints::ControlHandle for AjarTargetEventReporterControlHandle {
940    fn shutdown(&self) {
941        self.inner.shutdown()
942    }
943
944    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
945        self.inner.shutdown_with_epitaph(status)
946    }
947
948    fn is_closed(&self) -> bool {
949        self.inner.channel().is_closed()
950    }
951    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
952        self.inner.channel().on_closed()
953    }
954
955    #[cfg(target_os = "fuchsia")]
956    fn signal_peer(
957        &self,
958        clear_mask: zx::Signals,
959        set_mask: zx::Signals,
960    ) -> Result<(), zx_status::Status> {
961        use fidl::Peered;
962        self.inner.channel().signal_peer(clear_mask, set_mask)
963    }
964}
965
966impl AjarTargetEventReporterControlHandle {}
967
968#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
969pub struct ClosedTargetMarker;
970
971impl fidl::endpoints::ProtocolMarker for ClosedTargetMarker {
972    type Proxy = ClosedTargetProxy;
973    type RequestStream = ClosedTargetRequestStream;
974    #[cfg(target_os = "fuchsia")]
975    type SynchronousProxy = ClosedTargetSynchronousProxy;
976
977    const DEBUG_NAME: &'static str = "(anonymous) ClosedTarget";
978}
979pub type ClosedTargetTwoWayStructPayloadErrResult = Result<i32, i32>;
980
981pub trait ClosedTargetProxyInterface: Send + Sync {
982    type TwoWayNoPayloadResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
983    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut;
984    type TwoWayStructPayloadResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
985        + Send;
986    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut;
987    type TwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TablePayload, fidl::Error>>
988        + Send;
989    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut;
990    type TwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionPayload, fidl::Error>>
991        + Send;
992    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut;
993    type TwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error>>
994        + Send;
995    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut;
996    type TwoWayStructRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
997        + Send;
998    fn r#two_way_struct_request(&self, some_field: i32) -> Self::TwoWayStructRequestResponseFut;
999    type TwoWayTableRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1000    fn r#two_way_table_request(
1001        &self,
1002        payload: &TablePayload,
1003    ) -> Self::TwoWayTableRequestResponseFut;
1004    type TwoWayUnionRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
1005    fn r#two_way_union_request(
1006        &self,
1007        payload: &UnionPayload,
1008    ) -> Self::TwoWayUnionRequestResponseFut;
1009    fn r#one_way_no_request(&self) -> Result<(), fidl::Error>;
1010    fn r#one_way_struct_request(&self, some_field: i32) -> Result<(), fidl::Error>;
1011    fn r#one_way_table_request(&self, payload: &TablePayload) -> Result<(), fidl::Error>;
1012    fn r#one_way_union_request(&self, payload: &UnionPayload) -> Result<(), fidl::Error>;
1013}
1014#[derive(Debug)]
1015#[cfg(target_os = "fuchsia")]
1016pub struct ClosedTargetSynchronousProxy {
1017    client: fidl::client::sync::Client,
1018}
1019
1020#[cfg(target_os = "fuchsia")]
1021impl fidl::endpoints::SynchronousProxy for ClosedTargetSynchronousProxy {
1022    type Proxy = ClosedTargetProxy;
1023    type Protocol = ClosedTargetMarker;
1024
1025    fn from_channel(inner: fidl::Channel) -> Self {
1026        Self::new(inner)
1027    }
1028
1029    fn into_channel(self) -> fidl::Channel {
1030        self.client.into_channel()
1031    }
1032
1033    fn as_channel(&self) -> &fidl::Channel {
1034        self.client.as_channel()
1035    }
1036}
1037
1038#[cfg(target_os = "fuchsia")]
1039impl ClosedTargetSynchronousProxy {
1040    pub fn new(channel: fidl::Channel) -> Self {
1041        Self { client: fidl::client::sync::Client::new(channel) }
1042    }
1043
1044    pub fn into_channel(self) -> fidl::Channel {
1045        self.client.into_channel()
1046    }
1047
1048    /// Waits until an event arrives and returns it. It is safe for other
1049    /// threads to make concurrent requests while waiting for an event.
1050    pub fn wait_for_event(
1051        &self,
1052        deadline: zx::MonotonicInstant,
1053    ) -> Result<ClosedTargetEvent, fidl::Error> {
1054        ClosedTargetEvent::decode(self.client.wait_for_event::<ClosedTargetMarker>(deadline)?)
1055    }
1056
1057    pub fn r#two_way_no_payload(
1058        &self,
1059        ___deadline: zx::MonotonicInstant,
1060    ) -> Result<(), fidl::Error> {
1061        let _response = self.client.send_query::<
1062            fidl::encoding::EmptyPayload,
1063            fidl::encoding::EmptyPayload,
1064            ClosedTargetMarker,
1065        >(
1066            (),
1067            0x7a722961424c1720,
1068            fidl::encoding::DynamicFlags::empty(),
1069            ___deadline,
1070        )?;
1071        Ok(_response)
1072    }
1073
1074    pub fn r#two_way_struct_payload(
1075        &self,
1076        ___deadline: zx::MonotonicInstant,
1077    ) -> Result<i32, fidl::Error> {
1078        let _response = self
1079            .client
1080            .send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload, ClosedTargetMarker>(
1081                (),
1082                0x3a402118bad781bd,
1083                fidl::encoding::DynamicFlags::empty(),
1084                ___deadline,
1085            )?;
1086        Ok(_response.some_field)
1087    }
1088
1089    pub fn r#two_way_table_payload(
1090        &self,
1091        ___deadline: zx::MonotonicInstant,
1092    ) -> Result<TablePayload, fidl::Error> {
1093        let _response = self
1094            .client
1095            .send_query::<fidl::encoding::EmptyPayload, TablePayload, ClosedTargetMarker>(
1096                (),
1097                0x53be101c241c66bc,
1098                fidl::encoding::DynamicFlags::empty(),
1099                ___deadline,
1100            )?;
1101        Ok(_response)
1102    }
1103
1104    pub fn r#two_way_union_payload(
1105        &self,
1106        ___deadline: zx::MonotonicInstant,
1107    ) -> Result<UnionPayload, fidl::Error> {
1108        let _response = self
1109            .client
1110            .send_query::<fidl::encoding::EmptyPayload, UnionPayload, ClosedTargetMarker>(
1111                (),
1112                0x1ff7f745ab608f8c,
1113                fidl::encoding::DynamicFlags::empty(),
1114                ___deadline,
1115            )?;
1116        Ok(_response)
1117    }
1118
1119    pub fn r#two_way_struct_payload_err(
1120        &self,
1121        ___deadline: zx::MonotonicInstant,
1122    ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1123        let _response = self.client.send_query::<
1124            fidl::encoding::EmptyPayload,
1125            fidl::encoding::ResultType<NonEmptyPayload, i32>,
1126            ClosedTargetMarker,
1127        >(
1128            (),
1129            0x62b4861c443bbc0b,
1130            fidl::encoding::DynamicFlags::empty(),
1131            ___deadline,
1132        )?;
1133        Ok(_response.map(|x| x.some_field))
1134    }
1135
1136    pub fn r#two_way_struct_request(
1137        &self,
1138        mut some_field: i32,
1139        ___deadline: zx::MonotonicInstant,
1140    ) -> Result<(), fidl::Error> {
1141        let _response = self
1142            .client
1143            .send_query::<NonEmptyPayload, fidl::encoding::EmptyPayload, ClosedTargetMarker>(
1144                (some_field,),
1145                0x4ff77b4a913be5b6,
1146                fidl::encoding::DynamicFlags::empty(),
1147                ___deadline,
1148            )?;
1149        Ok(_response)
1150    }
1151
1152    pub fn r#two_way_table_request(
1153        &self,
1154        mut payload: &TablePayload,
1155        ___deadline: zx::MonotonicInstant,
1156    ) -> Result<(), fidl::Error> {
1157        let _response = self
1158            .client
1159            .send_query::<TablePayload, fidl::encoding::EmptyPayload, ClosedTargetMarker>(
1160                payload,
1161                0x3d38ad5b0f4f49cf,
1162                fidl::encoding::DynamicFlags::empty(),
1163                ___deadline,
1164            )?;
1165        Ok(_response)
1166    }
1167
1168    pub fn r#two_way_union_request(
1169        &self,
1170        mut payload: &UnionPayload,
1171        ___deadline: zx::MonotonicInstant,
1172    ) -> Result<(), fidl::Error> {
1173        let _response = self
1174            .client
1175            .send_query::<UnionPayload, fidl::encoding::EmptyPayload, ClosedTargetMarker>(
1176                payload,
1177                0x7adb1c265a378e77,
1178                fidl::encoding::DynamicFlags::empty(),
1179                ___deadline,
1180            )?;
1181        Ok(_response)
1182    }
1183
1184    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1185        self.client.send::<fidl::encoding::EmptyPayload>(
1186            (),
1187            0xc376730a2cd8a05,
1188            fidl::encoding::DynamicFlags::empty(),
1189        )
1190    }
1191
1192    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1193        self.client.send::<NonEmptyPayload>(
1194            (some_field,),
1195            0x2618da6f51e0dcd2,
1196            fidl::encoding::DynamicFlags::empty(),
1197        )
1198    }
1199
1200    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1201        self.client.send::<TablePayload>(
1202            payload,
1203            0x1a4b7d32eaed401f,
1204            fidl::encoding::DynamicFlags::empty(),
1205        )
1206    }
1207
1208    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1209        self.client.send::<UnionPayload>(
1210            payload,
1211            0x142b3cd9ea530de5,
1212            fidl::encoding::DynamicFlags::empty(),
1213        )
1214    }
1215}
1216
1217#[cfg(target_os = "fuchsia")]
1218impl From<ClosedTargetSynchronousProxy> for zx::NullableHandle {
1219    fn from(value: ClosedTargetSynchronousProxy) -> Self {
1220        value.into_channel().into()
1221    }
1222}
1223
1224#[cfg(target_os = "fuchsia")]
1225impl From<fidl::Channel> for ClosedTargetSynchronousProxy {
1226    fn from(value: fidl::Channel) -> Self {
1227        Self::new(value)
1228    }
1229}
1230
1231#[cfg(target_os = "fuchsia")]
1232impl fidl::endpoints::FromClient for ClosedTargetSynchronousProxy {
1233    type Protocol = ClosedTargetMarker;
1234
1235    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetMarker>) -> Self {
1236        Self::new(value.into_channel())
1237    }
1238}
1239
1240#[derive(Debug, Clone)]
1241pub struct ClosedTargetProxy {
1242    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1243}
1244
1245impl fidl::endpoints::Proxy for ClosedTargetProxy {
1246    type Protocol = ClosedTargetMarker;
1247
1248    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1249        Self::new(inner)
1250    }
1251
1252    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1253        self.client.into_channel().map_err(|client| Self { client })
1254    }
1255
1256    fn as_channel(&self) -> &::fidl::AsyncChannel {
1257        self.client.as_channel()
1258    }
1259}
1260
1261impl ClosedTargetProxy {
1262    /// Create a new Proxy for fidl.clientsuite/ClosedTarget.
1263    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1264        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1265        Self { client: fidl::client::Client::new(channel, protocol_name) }
1266    }
1267
1268    /// Get a Stream of events from the remote end of the protocol.
1269    ///
1270    /// # Panics
1271    ///
1272    /// Panics if the event stream was already taken.
1273    pub fn take_event_stream(&self) -> ClosedTargetEventStream {
1274        ClosedTargetEventStream { event_receiver: self.client.take_event_receiver() }
1275    }
1276
1277    pub fn r#two_way_no_payload(
1278        &self,
1279    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1280        ClosedTargetProxyInterface::r#two_way_no_payload(self)
1281    }
1282
1283    pub fn r#two_way_struct_payload(
1284        &self,
1285    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
1286        ClosedTargetProxyInterface::r#two_way_struct_payload(self)
1287    }
1288
1289    pub fn r#two_way_table_payload(
1290        &self,
1291    ) -> fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1292    {
1293        ClosedTargetProxyInterface::r#two_way_table_payload(self)
1294    }
1295
1296    pub fn r#two_way_union_payload(
1297        &self,
1298    ) -> fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1299    {
1300        ClosedTargetProxyInterface::r#two_way_union_payload(self)
1301    }
1302
1303    pub fn r#two_way_struct_payload_err(
1304        &self,
1305    ) -> fidl::client::QueryResponseFut<
1306        ClosedTargetTwoWayStructPayloadErrResult,
1307        fidl::encoding::DefaultFuchsiaResourceDialect,
1308    > {
1309        ClosedTargetProxyInterface::r#two_way_struct_payload_err(self)
1310    }
1311
1312    pub fn r#two_way_struct_request(
1313        &self,
1314        mut some_field: i32,
1315    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1316        ClosedTargetProxyInterface::r#two_way_struct_request(self, some_field)
1317    }
1318
1319    pub fn r#two_way_table_request(
1320        &self,
1321        mut payload: &TablePayload,
1322    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1323        ClosedTargetProxyInterface::r#two_way_table_request(self, payload)
1324    }
1325
1326    pub fn r#two_way_union_request(
1327        &self,
1328        mut payload: &UnionPayload,
1329    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1330        ClosedTargetProxyInterface::r#two_way_union_request(self, payload)
1331    }
1332
1333    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1334        ClosedTargetProxyInterface::r#one_way_no_request(self)
1335    }
1336
1337    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1338        ClosedTargetProxyInterface::r#one_way_struct_request(self, some_field)
1339    }
1340
1341    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1342        ClosedTargetProxyInterface::r#one_way_table_request(self, payload)
1343    }
1344
1345    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1346        ClosedTargetProxyInterface::r#one_way_union_request(self, payload)
1347    }
1348}
1349
1350impl ClosedTargetProxyInterface for ClosedTargetProxy {
1351    type TwoWayNoPayloadResponseFut =
1352        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1353    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut {
1354        fn _decode(
1355            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1356        ) -> Result<(), fidl::Error> {
1357            let _response = fidl::client::decode_transaction_body::<
1358                fidl::encoding::EmptyPayload,
1359                fidl::encoding::DefaultFuchsiaResourceDialect,
1360                0x7a722961424c1720,
1361            >(_buf?)?;
1362            Ok(_response)
1363        }
1364        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
1365            (),
1366            0x7a722961424c1720,
1367            fidl::encoding::DynamicFlags::empty(),
1368            _decode,
1369        )
1370    }
1371
1372    type TwoWayStructPayloadResponseFut =
1373        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
1374    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut {
1375        fn _decode(
1376            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1377        ) -> Result<i32, fidl::Error> {
1378            let _response = fidl::client::decode_transaction_body::<
1379                NonEmptyPayload,
1380                fidl::encoding::DefaultFuchsiaResourceDialect,
1381                0x3a402118bad781bd,
1382            >(_buf?)?;
1383            Ok(_response.some_field)
1384        }
1385        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
1386            (),
1387            0x3a402118bad781bd,
1388            fidl::encoding::DynamicFlags::empty(),
1389            _decode,
1390        )
1391    }
1392
1393    type TwoWayTablePayloadResponseFut =
1394        fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1395    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut {
1396        fn _decode(
1397            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1398        ) -> Result<TablePayload, fidl::Error> {
1399            let _response = fidl::client::decode_transaction_body::<
1400                TablePayload,
1401                fidl::encoding::DefaultFuchsiaResourceDialect,
1402                0x53be101c241c66bc,
1403            >(_buf?)?;
1404            Ok(_response)
1405        }
1406        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, TablePayload>(
1407            (),
1408            0x53be101c241c66bc,
1409            fidl::encoding::DynamicFlags::empty(),
1410            _decode,
1411        )
1412    }
1413
1414    type TwoWayUnionPayloadResponseFut =
1415        fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1416    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut {
1417        fn _decode(
1418            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1419        ) -> Result<UnionPayload, fidl::Error> {
1420            let _response = fidl::client::decode_transaction_body::<
1421                UnionPayload,
1422                fidl::encoding::DefaultFuchsiaResourceDialect,
1423                0x1ff7f745ab608f8c,
1424            >(_buf?)?;
1425            Ok(_response)
1426        }
1427        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, UnionPayload>(
1428            (),
1429            0x1ff7f745ab608f8c,
1430            fidl::encoding::DynamicFlags::empty(),
1431            _decode,
1432        )
1433    }
1434
1435    type TwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
1436        ClosedTargetTwoWayStructPayloadErrResult,
1437        fidl::encoding::DefaultFuchsiaResourceDialect,
1438    >;
1439    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut {
1440        fn _decode(
1441            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1442        ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1443            let _response = fidl::client::decode_transaction_body::<
1444                fidl::encoding::ResultType<NonEmptyPayload, i32>,
1445                fidl::encoding::DefaultFuchsiaResourceDialect,
1446                0x62b4861c443bbc0b,
1447            >(_buf?)?;
1448            Ok(_response.map(|x| x.some_field))
1449        }
1450        self.client.send_query_and_decode::<
1451            fidl::encoding::EmptyPayload,
1452            ClosedTargetTwoWayStructPayloadErrResult,
1453        >(
1454            (),
1455            0x62b4861c443bbc0b,
1456            fidl::encoding::DynamicFlags::empty(),
1457            _decode,
1458        )
1459    }
1460
1461    type TwoWayStructRequestResponseFut =
1462        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1463    fn r#two_way_struct_request(
1464        &self,
1465        mut some_field: i32,
1466    ) -> Self::TwoWayStructRequestResponseFut {
1467        fn _decode(
1468            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1469        ) -> Result<(), fidl::Error> {
1470            let _response = fidl::client::decode_transaction_body::<
1471                fidl::encoding::EmptyPayload,
1472                fidl::encoding::DefaultFuchsiaResourceDialect,
1473                0x4ff77b4a913be5b6,
1474            >(_buf?)?;
1475            Ok(_response)
1476        }
1477        self.client.send_query_and_decode::<NonEmptyPayload, ()>(
1478            (some_field,),
1479            0x4ff77b4a913be5b6,
1480            fidl::encoding::DynamicFlags::empty(),
1481            _decode,
1482        )
1483    }
1484
1485    type TwoWayTableRequestResponseFut =
1486        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1487    fn r#two_way_table_request(
1488        &self,
1489        mut payload: &TablePayload,
1490    ) -> Self::TwoWayTableRequestResponseFut {
1491        fn _decode(
1492            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1493        ) -> Result<(), fidl::Error> {
1494            let _response = fidl::client::decode_transaction_body::<
1495                fidl::encoding::EmptyPayload,
1496                fidl::encoding::DefaultFuchsiaResourceDialect,
1497                0x3d38ad5b0f4f49cf,
1498            >(_buf?)?;
1499            Ok(_response)
1500        }
1501        self.client.send_query_and_decode::<TablePayload, ()>(
1502            payload,
1503            0x3d38ad5b0f4f49cf,
1504            fidl::encoding::DynamicFlags::empty(),
1505            _decode,
1506        )
1507    }
1508
1509    type TwoWayUnionRequestResponseFut =
1510        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1511    fn r#two_way_union_request(
1512        &self,
1513        mut payload: &UnionPayload,
1514    ) -> Self::TwoWayUnionRequestResponseFut {
1515        fn _decode(
1516            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1517        ) -> Result<(), fidl::Error> {
1518            let _response = fidl::client::decode_transaction_body::<
1519                fidl::encoding::EmptyPayload,
1520                fidl::encoding::DefaultFuchsiaResourceDialect,
1521                0x7adb1c265a378e77,
1522            >(_buf?)?;
1523            Ok(_response)
1524        }
1525        self.client.send_query_and_decode::<UnionPayload, ()>(
1526            payload,
1527            0x7adb1c265a378e77,
1528            fidl::encoding::DynamicFlags::empty(),
1529            _decode,
1530        )
1531    }
1532
1533    fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1534        self.client.send::<fidl::encoding::EmptyPayload>(
1535            (),
1536            0xc376730a2cd8a05,
1537            fidl::encoding::DynamicFlags::empty(),
1538        )
1539    }
1540
1541    fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1542        self.client.send::<NonEmptyPayload>(
1543            (some_field,),
1544            0x2618da6f51e0dcd2,
1545            fidl::encoding::DynamicFlags::empty(),
1546        )
1547    }
1548
1549    fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1550        self.client.send::<TablePayload>(
1551            payload,
1552            0x1a4b7d32eaed401f,
1553            fidl::encoding::DynamicFlags::empty(),
1554        )
1555    }
1556
1557    fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1558        self.client.send::<UnionPayload>(
1559            payload,
1560            0x142b3cd9ea530de5,
1561            fidl::encoding::DynamicFlags::empty(),
1562        )
1563    }
1564}
1565
1566pub struct ClosedTargetEventStream {
1567    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1568}
1569
1570impl std::marker::Unpin for ClosedTargetEventStream {}
1571
1572impl futures::stream::FusedStream for ClosedTargetEventStream {
1573    fn is_terminated(&self) -> bool {
1574        self.event_receiver.is_terminated()
1575    }
1576}
1577
1578impl futures::Stream for ClosedTargetEventStream {
1579    type Item = Result<ClosedTargetEvent, fidl::Error>;
1580
1581    fn poll_next(
1582        mut self: std::pin::Pin<&mut Self>,
1583        cx: &mut std::task::Context<'_>,
1584    ) -> std::task::Poll<Option<Self::Item>> {
1585        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1586            &mut self.event_receiver,
1587            cx
1588        )?) {
1589            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEvent::decode(buf))),
1590            None => std::task::Poll::Ready(None),
1591        }
1592    }
1593}
1594
1595#[derive(Debug)]
1596pub enum ClosedTargetEvent {
1597    OnEventNoPayload {},
1598    OnEventStructPayload { some_field: i32 },
1599    OnEventTablePayload { payload: TablePayload },
1600    OnEventUnionPayload { payload: UnionPayload },
1601}
1602
1603impl ClosedTargetEvent {
1604    #[allow(irrefutable_let_patterns)]
1605    pub fn into_on_event_no_payload(self) -> Option<()> {
1606        if let ClosedTargetEvent::OnEventNoPayload {} = self { Some(()) } else { None }
1607    }
1608    #[allow(irrefutable_let_patterns)]
1609    pub fn into_on_event_struct_payload(self) -> Option<i32> {
1610        if let ClosedTargetEvent::OnEventStructPayload { some_field } = self {
1611            Some((some_field))
1612        } else {
1613            None
1614        }
1615    }
1616    #[allow(irrefutable_let_patterns)]
1617    pub fn into_on_event_table_payload(self) -> Option<TablePayload> {
1618        if let ClosedTargetEvent::OnEventTablePayload { payload } = self {
1619            Some((payload))
1620        } else {
1621            None
1622        }
1623    }
1624    #[allow(irrefutable_let_patterns)]
1625    pub fn into_on_event_union_payload(self) -> Option<UnionPayload> {
1626        if let ClosedTargetEvent::OnEventUnionPayload { payload } = self {
1627            Some((payload))
1628        } else {
1629            None
1630        }
1631    }
1632
1633    /// Decodes a message buffer as a [`ClosedTargetEvent`].
1634    fn decode(
1635        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1636    ) -> Result<ClosedTargetEvent, fidl::Error> {
1637        let (bytes, _handles) = buf.split_mut();
1638        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1639        debug_assert_eq!(tx_header.tx_id, 0);
1640        match tx_header.ordinal {
1641            0x4ee7b8d3e6bb36a6 => {
1642                let mut out = fidl::new_empty!(
1643                    fidl::encoding::EmptyPayload,
1644                    fidl::encoding::DefaultFuchsiaResourceDialect
1645                );
1646                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1647                Ok((ClosedTargetEvent::OnEventNoPayload {}))
1648            }
1649            0x48e8c897893ae266 => {
1650                let mut out = fidl::new_empty!(
1651                    NonEmptyPayload,
1652                    fidl::encoding::DefaultFuchsiaResourceDialect
1653                );
1654                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1655                Ok((ClosedTargetEvent::OnEventStructPayload { some_field: out.some_field }))
1656            }
1657            0x72837525f4f3e746 => {
1658                let mut out =
1659                    fidl::new_empty!(TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1660                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1661                Ok((ClosedTargetEvent::OnEventTablePayload { payload: out }))
1662            }
1663            0x69c6390e1ac48ea0 => {
1664                let mut out =
1665                    fidl::new_empty!(UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1666                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1667                Ok((ClosedTargetEvent::OnEventUnionPayload { payload: out }))
1668            }
1669            _ => Err(fidl::Error::UnknownOrdinal {
1670                ordinal: tx_header.ordinal,
1671                protocol_name: <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1672            }),
1673        }
1674    }
1675}
1676
1677/// A Stream of incoming requests for fidl.clientsuite/ClosedTarget.
1678pub struct ClosedTargetRequestStream {
1679    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1680    is_terminated: bool,
1681}
1682
1683impl std::marker::Unpin for ClosedTargetRequestStream {}
1684
1685impl futures::stream::FusedStream for ClosedTargetRequestStream {
1686    fn is_terminated(&self) -> bool {
1687        self.is_terminated
1688    }
1689}
1690
1691impl fidl::endpoints::RequestStream for ClosedTargetRequestStream {
1692    type Protocol = ClosedTargetMarker;
1693    type ControlHandle = ClosedTargetControlHandle;
1694
1695    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1696        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1697    }
1698
1699    fn control_handle(&self) -> Self::ControlHandle {
1700        ClosedTargetControlHandle { inner: self.inner.clone() }
1701    }
1702
1703    fn into_inner(
1704        self,
1705    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1706    {
1707        (self.inner, self.is_terminated)
1708    }
1709
1710    fn from_inner(
1711        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1712        is_terminated: bool,
1713    ) -> Self {
1714        Self { inner, is_terminated }
1715    }
1716}
1717
1718impl futures::Stream for ClosedTargetRequestStream {
1719    type Item = Result<ClosedTargetRequest, fidl::Error>;
1720
1721    fn poll_next(
1722        mut self: std::pin::Pin<&mut Self>,
1723        cx: &mut std::task::Context<'_>,
1724    ) -> std::task::Poll<Option<Self::Item>> {
1725        let this = &mut *self;
1726        if this.inner.check_shutdown(cx) {
1727            this.is_terminated = true;
1728            return std::task::Poll::Ready(None);
1729        }
1730        if this.is_terminated {
1731            panic!("polled ClosedTargetRequestStream after completion");
1732        }
1733        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1734            |bytes, handles| {
1735                match this.inner.channel().read_etc(cx, bytes, handles) {
1736                    std::task::Poll::Ready(Ok(())) => {}
1737                    std::task::Poll::Pending => return std::task::Poll::Pending,
1738                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1739                        this.is_terminated = true;
1740                        return std::task::Poll::Ready(None);
1741                    }
1742                    std::task::Poll::Ready(Err(e)) => {
1743                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1744                            e.into(),
1745                        ))));
1746                    }
1747                }
1748
1749                // A message has been received from the channel
1750                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1751
1752                std::task::Poll::Ready(Some(match header.ordinal {
1753                    0x7a722961424c1720 => {
1754                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1755                        let mut req = fidl::new_empty!(
1756                            fidl::encoding::EmptyPayload,
1757                            fidl::encoding::DefaultFuchsiaResourceDialect
1758                        );
1759                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1760                        let control_handle =
1761                            ClosedTargetControlHandle { inner: this.inner.clone() };
1762                        Ok(ClosedTargetRequest::TwoWayNoPayload {
1763                            responder: ClosedTargetTwoWayNoPayloadResponder {
1764                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1765                                tx_id: header.tx_id,
1766                            },
1767                        })
1768                    }
1769                    0x3a402118bad781bd => {
1770                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1771                        let mut req = fidl::new_empty!(
1772                            fidl::encoding::EmptyPayload,
1773                            fidl::encoding::DefaultFuchsiaResourceDialect
1774                        );
1775                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1776                        let control_handle =
1777                            ClosedTargetControlHandle { inner: this.inner.clone() };
1778                        Ok(ClosedTargetRequest::TwoWayStructPayload {
1779                            responder: ClosedTargetTwoWayStructPayloadResponder {
1780                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1781                                tx_id: header.tx_id,
1782                            },
1783                        })
1784                    }
1785                    0x53be101c241c66bc => {
1786                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1787                        let mut req = fidl::new_empty!(
1788                            fidl::encoding::EmptyPayload,
1789                            fidl::encoding::DefaultFuchsiaResourceDialect
1790                        );
1791                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1792                        let control_handle =
1793                            ClosedTargetControlHandle { inner: this.inner.clone() };
1794                        Ok(ClosedTargetRequest::TwoWayTablePayload {
1795                            responder: ClosedTargetTwoWayTablePayloadResponder {
1796                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1797                                tx_id: header.tx_id,
1798                            },
1799                        })
1800                    }
1801                    0x1ff7f745ab608f8c => {
1802                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1803                        let mut req = fidl::new_empty!(
1804                            fidl::encoding::EmptyPayload,
1805                            fidl::encoding::DefaultFuchsiaResourceDialect
1806                        );
1807                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1808                        let control_handle =
1809                            ClosedTargetControlHandle { inner: this.inner.clone() };
1810                        Ok(ClosedTargetRequest::TwoWayUnionPayload {
1811                            responder: ClosedTargetTwoWayUnionPayloadResponder {
1812                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1813                                tx_id: header.tx_id,
1814                            },
1815                        })
1816                    }
1817                    0x62b4861c443bbc0b => {
1818                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1819                        let mut req = fidl::new_empty!(
1820                            fidl::encoding::EmptyPayload,
1821                            fidl::encoding::DefaultFuchsiaResourceDialect
1822                        );
1823                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1824                        let control_handle =
1825                            ClosedTargetControlHandle { inner: this.inner.clone() };
1826                        Ok(ClosedTargetRequest::TwoWayStructPayloadErr {
1827                            responder: ClosedTargetTwoWayStructPayloadErrResponder {
1828                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1829                                tx_id: header.tx_id,
1830                            },
1831                        })
1832                    }
1833                    0x4ff77b4a913be5b6 => {
1834                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1835                        let mut req = fidl::new_empty!(
1836                            NonEmptyPayload,
1837                            fidl::encoding::DefaultFuchsiaResourceDialect
1838                        );
1839                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1840                        let control_handle =
1841                            ClosedTargetControlHandle { inner: this.inner.clone() };
1842                        Ok(ClosedTargetRequest::TwoWayStructRequest {
1843                            some_field: req.some_field,
1844
1845                            responder: ClosedTargetTwoWayStructRequestResponder {
1846                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1847                                tx_id: header.tx_id,
1848                            },
1849                        })
1850                    }
1851                    0x3d38ad5b0f4f49cf => {
1852                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1853                        let mut req = fidl::new_empty!(
1854                            TablePayload,
1855                            fidl::encoding::DefaultFuchsiaResourceDialect
1856                        );
1857                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1858                        let control_handle =
1859                            ClosedTargetControlHandle { inner: this.inner.clone() };
1860                        Ok(ClosedTargetRequest::TwoWayTableRequest {
1861                            payload: req,
1862                            responder: ClosedTargetTwoWayTableRequestResponder {
1863                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1864                                tx_id: header.tx_id,
1865                            },
1866                        })
1867                    }
1868                    0x7adb1c265a378e77 => {
1869                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1870                        let mut req = fidl::new_empty!(
1871                            UnionPayload,
1872                            fidl::encoding::DefaultFuchsiaResourceDialect
1873                        );
1874                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1875                        let control_handle =
1876                            ClosedTargetControlHandle { inner: this.inner.clone() };
1877                        Ok(ClosedTargetRequest::TwoWayUnionRequest {
1878                            payload: req,
1879                            responder: ClosedTargetTwoWayUnionRequestResponder {
1880                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1881                                tx_id: header.tx_id,
1882                            },
1883                        })
1884                    }
1885                    0xc376730a2cd8a05 => {
1886                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1887                        let mut req = fidl::new_empty!(
1888                            fidl::encoding::EmptyPayload,
1889                            fidl::encoding::DefaultFuchsiaResourceDialect
1890                        );
1891                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1892                        let control_handle =
1893                            ClosedTargetControlHandle { inner: this.inner.clone() };
1894                        Ok(ClosedTargetRequest::OneWayNoRequest { control_handle })
1895                    }
1896                    0x2618da6f51e0dcd2 => {
1897                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1898                        let mut req = fidl::new_empty!(
1899                            NonEmptyPayload,
1900                            fidl::encoding::DefaultFuchsiaResourceDialect
1901                        );
1902                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1903                        let control_handle =
1904                            ClosedTargetControlHandle { inner: this.inner.clone() };
1905                        Ok(ClosedTargetRequest::OneWayStructRequest {
1906                            some_field: req.some_field,
1907
1908                            control_handle,
1909                        })
1910                    }
1911                    0x1a4b7d32eaed401f => {
1912                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1913                        let mut req = fidl::new_empty!(
1914                            TablePayload,
1915                            fidl::encoding::DefaultFuchsiaResourceDialect
1916                        );
1917                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1918                        let control_handle =
1919                            ClosedTargetControlHandle { inner: this.inner.clone() };
1920                        Ok(ClosedTargetRequest::OneWayTableRequest { payload: req, control_handle })
1921                    }
1922                    0x142b3cd9ea530de5 => {
1923                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1924                        let mut req = fidl::new_empty!(
1925                            UnionPayload,
1926                            fidl::encoding::DefaultFuchsiaResourceDialect
1927                        );
1928                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1929                        let control_handle =
1930                            ClosedTargetControlHandle { inner: this.inner.clone() };
1931                        Ok(ClosedTargetRequest::OneWayUnionRequest { payload: req, control_handle })
1932                    }
1933                    _ => Err(fidl::Error::UnknownOrdinal {
1934                        ordinal: header.ordinal,
1935                        protocol_name:
1936                            <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1937                    }),
1938                }))
1939            },
1940        )
1941    }
1942}
1943
1944#[derive(Debug)]
1945pub enum ClosedTargetRequest {
1946    TwoWayNoPayload { responder: ClosedTargetTwoWayNoPayloadResponder },
1947    TwoWayStructPayload { responder: ClosedTargetTwoWayStructPayloadResponder },
1948    TwoWayTablePayload { responder: ClosedTargetTwoWayTablePayloadResponder },
1949    TwoWayUnionPayload { responder: ClosedTargetTwoWayUnionPayloadResponder },
1950    TwoWayStructPayloadErr { responder: ClosedTargetTwoWayStructPayloadErrResponder },
1951    TwoWayStructRequest { some_field: i32, responder: ClosedTargetTwoWayStructRequestResponder },
1952    TwoWayTableRequest { payload: TablePayload, responder: ClosedTargetTwoWayTableRequestResponder },
1953    TwoWayUnionRequest { payload: UnionPayload, responder: ClosedTargetTwoWayUnionRequestResponder },
1954    OneWayNoRequest { control_handle: ClosedTargetControlHandle },
1955    OneWayStructRequest { some_field: i32, control_handle: ClosedTargetControlHandle },
1956    OneWayTableRequest { payload: TablePayload, control_handle: ClosedTargetControlHandle },
1957    OneWayUnionRequest { payload: UnionPayload, control_handle: ClosedTargetControlHandle },
1958}
1959
1960impl ClosedTargetRequest {
1961    #[allow(irrefutable_let_patterns)]
1962    pub fn into_two_way_no_payload(self) -> Option<(ClosedTargetTwoWayNoPayloadResponder)> {
1963        if let ClosedTargetRequest::TwoWayNoPayload { responder } = self {
1964            Some((responder))
1965        } else {
1966            None
1967        }
1968    }
1969
1970    #[allow(irrefutable_let_patterns)]
1971    pub fn into_two_way_struct_payload(self) -> Option<(ClosedTargetTwoWayStructPayloadResponder)> {
1972        if let ClosedTargetRequest::TwoWayStructPayload { responder } = self {
1973            Some((responder))
1974        } else {
1975            None
1976        }
1977    }
1978
1979    #[allow(irrefutable_let_patterns)]
1980    pub fn into_two_way_table_payload(self) -> Option<(ClosedTargetTwoWayTablePayloadResponder)> {
1981        if let ClosedTargetRequest::TwoWayTablePayload { responder } = self {
1982            Some((responder))
1983        } else {
1984            None
1985        }
1986    }
1987
1988    #[allow(irrefutable_let_patterns)]
1989    pub fn into_two_way_union_payload(self) -> Option<(ClosedTargetTwoWayUnionPayloadResponder)> {
1990        if let ClosedTargetRequest::TwoWayUnionPayload { responder } = self {
1991            Some((responder))
1992        } else {
1993            None
1994        }
1995    }
1996
1997    #[allow(irrefutable_let_patterns)]
1998    pub fn into_two_way_struct_payload_err(
1999        self,
2000    ) -> Option<(ClosedTargetTwoWayStructPayloadErrResponder)> {
2001        if let ClosedTargetRequest::TwoWayStructPayloadErr { responder } = self {
2002            Some((responder))
2003        } else {
2004            None
2005        }
2006    }
2007
2008    #[allow(irrefutable_let_patterns)]
2009    pub fn into_two_way_struct_request(
2010        self,
2011    ) -> Option<(i32, ClosedTargetTwoWayStructRequestResponder)> {
2012        if let ClosedTargetRequest::TwoWayStructRequest { some_field, responder } = self {
2013            Some((some_field, responder))
2014        } else {
2015            None
2016        }
2017    }
2018
2019    #[allow(irrefutable_let_patterns)]
2020    pub fn into_two_way_table_request(
2021        self,
2022    ) -> Option<(TablePayload, ClosedTargetTwoWayTableRequestResponder)> {
2023        if let ClosedTargetRequest::TwoWayTableRequest { payload, responder } = self {
2024            Some((payload, responder))
2025        } else {
2026            None
2027        }
2028    }
2029
2030    #[allow(irrefutable_let_patterns)]
2031    pub fn into_two_way_union_request(
2032        self,
2033    ) -> Option<(UnionPayload, ClosedTargetTwoWayUnionRequestResponder)> {
2034        if let ClosedTargetRequest::TwoWayUnionRequest { payload, responder } = self {
2035            Some((payload, responder))
2036        } else {
2037            None
2038        }
2039    }
2040
2041    #[allow(irrefutable_let_patterns)]
2042    pub fn into_one_way_no_request(self) -> Option<(ClosedTargetControlHandle)> {
2043        if let ClosedTargetRequest::OneWayNoRequest { control_handle } = self {
2044            Some((control_handle))
2045        } else {
2046            None
2047        }
2048    }
2049
2050    #[allow(irrefutable_let_patterns)]
2051    pub fn into_one_way_struct_request(self) -> Option<(i32, ClosedTargetControlHandle)> {
2052        if let ClosedTargetRequest::OneWayStructRequest { some_field, control_handle } = self {
2053            Some((some_field, control_handle))
2054        } else {
2055            None
2056        }
2057    }
2058
2059    #[allow(irrefutable_let_patterns)]
2060    pub fn into_one_way_table_request(self) -> Option<(TablePayload, ClosedTargetControlHandle)> {
2061        if let ClosedTargetRequest::OneWayTableRequest { payload, control_handle } = self {
2062            Some((payload, control_handle))
2063        } else {
2064            None
2065        }
2066    }
2067
2068    #[allow(irrefutable_let_patterns)]
2069    pub fn into_one_way_union_request(self) -> Option<(UnionPayload, ClosedTargetControlHandle)> {
2070        if let ClosedTargetRequest::OneWayUnionRequest { payload, control_handle } = self {
2071            Some((payload, control_handle))
2072        } else {
2073            None
2074        }
2075    }
2076
2077    /// Name of the method defined in FIDL
2078    pub fn method_name(&self) -> &'static str {
2079        match *self {
2080            ClosedTargetRequest::TwoWayNoPayload { .. } => "two_way_no_payload",
2081            ClosedTargetRequest::TwoWayStructPayload { .. } => "two_way_struct_payload",
2082            ClosedTargetRequest::TwoWayTablePayload { .. } => "two_way_table_payload",
2083            ClosedTargetRequest::TwoWayUnionPayload { .. } => "two_way_union_payload",
2084            ClosedTargetRequest::TwoWayStructPayloadErr { .. } => "two_way_struct_payload_err",
2085            ClosedTargetRequest::TwoWayStructRequest { .. } => "two_way_struct_request",
2086            ClosedTargetRequest::TwoWayTableRequest { .. } => "two_way_table_request",
2087            ClosedTargetRequest::TwoWayUnionRequest { .. } => "two_way_union_request",
2088            ClosedTargetRequest::OneWayNoRequest { .. } => "one_way_no_request",
2089            ClosedTargetRequest::OneWayStructRequest { .. } => "one_way_struct_request",
2090            ClosedTargetRequest::OneWayTableRequest { .. } => "one_way_table_request",
2091            ClosedTargetRequest::OneWayUnionRequest { .. } => "one_way_union_request",
2092        }
2093    }
2094}
2095
2096#[derive(Debug, Clone)]
2097pub struct ClosedTargetControlHandle {
2098    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2099}
2100
2101impl ClosedTargetControlHandle {
2102    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
2103        self.inner.shutdown_with_epitaph(status.into())
2104    }
2105}
2106
2107impl fidl::endpoints::ControlHandle for ClosedTargetControlHandle {
2108    fn shutdown(&self) {
2109        self.inner.shutdown()
2110    }
2111
2112    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
2113        self.inner.shutdown_with_epitaph(status)
2114    }
2115
2116    fn is_closed(&self) -> bool {
2117        self.inner.channel().is_closed()
2118    }
2119    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2120        self.inner.channel().on_closed()
2121    }
2122
2123    #[cfg(target_os = "fuchsia")]
2124    fn signal_peer(
2125        &self,
2126        clear_mask: zx::Signals,
2127        set_mask: zx::Signals,
2128    ) -> Result<(), zx_status::Status> {
2129        use fidl::Peered;
2130        self.inner.channel().signal_peer(clear_mask, set_mask)
2131    }
2132}
2133
2134impl ClosedTargetControlHandle {
2135    pub fn send_on_event_no_payload(&self) -> Result<(), fidl::Error> {
2136        self.inner.send::<fidl::encoding::EmptyPayload>(
2137            (),
2138            0,
2139            0x4ee7b8d3e6bb36a6,
2140            fidl::encoding::DynamicFlags::empty(),
2141        )
2142    }
2143
2144    pub fn send_on_event_struct_payload(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2145        self.inner.send::<NonEmptyPayload>(
2146            (some_field,),
2147            0,
2148            0x48e8c897893ae266,
2149            fidl::encoding::DynamicFlags::empty(),
2150        )
2151    }
2152
2153    pub fn send_on_event_table_payload(
2154        &self,
2155        mut payload: &TablePayload,
2156    ) -> Result<(), fidl::Error> {
2157        self.inner.send::<TablePayload>(
2158            payload,
2159            0,
2160            0x72837525f4f3e746,
2161            fidl::encoding::DynamicFlags::empty(),
2162        )
2163    }
2164
2165    pub fn send_on_event_union_payload(
2166        &self,
2167        mut payload: &UnionPayload,
2168    ) -> Result<(), fidl::Error> {
2169        self.inner.send::<UnionPayload>(
2170            payload,
2171            0,
2172            0x69c6390e1ac48ea0,
2173            fidl::encoding::DynamicFlags::empty(),
2174        )
2175    }
2176}
2177
2178#[must_use = "FIDL methods require a response to be sent"]
2179#[derive(Debug)]
2180pub struct ClosedTargetTwoWayNoPayloadResponder {
2181    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2182    tx_id: u32,
2183}
2184
2185/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2186/// if the responder is dropped without sending a response, so that the client
2187/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2188impl std::ops::Drop for ClosedTargetTwoWayNoPayloadResponder {
2189    fn drop(&mut self) {
2190        self.control_handle.shutdown();
2191        // Safety: drops once, never accessed again
2192        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2193    }
2194}
2195
2196impl fidl::endpoints::Responder for ClosedTargetTwoWayNoPayloadResponder {
2197    type ControlHandle = ClosedTargetControlHandle;
2198
2199    fn control_handle(&self) -> &ClosedTargetControlHandle {
2200        &self.control_handle
2201    }
2202
2203    fn drop_without_shutdown(mut self) {
2204        // Safety: drops once, never accessed again due to mem::forget
2205        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2206        // Prevent Drop from running (which would shut down the channel)
2207        std::mem::forget(self);
2208    }
2209}
2210
2211impl ClosedTargetTwoWayNoPayloadResponder {
2212    /// Sends a response to the FIDL transaction.
2213    ///
2214    /// Sets the channel to shutdown if an error occurs.
2215    pub fn send(self) -> Result<(), fidl::Error> {
2216        let _result = self.send_raw();
2217        if _result.is_err() {
2218            self.control_handle.shutdown();
2219        }
2220        self.drop_without_shutdown();
2221        _result
2222    }
2223
2224    /// Similar to "send" but does not shutdown the channel if an error occurs.
2225    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2226        let _result = self.send_raw();
2227        self.drop_without_shutdown();
2228        _result
2229    }
2230
2231    fn send_raw(&self) -> Result<(), fidl::Error> {
2232        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2233            (),
2234            self.tx_id,
2235            0x7a722961424c1720,
2236            fidl::encoding::DynamicFlags::empty(),
2237        )
2238    }
2239}
2240
2241#[must_use = "FIDL methods require a response to be sent"]
2242#[derive(Debug)]
2243pub struct ClosedTargetTwoWayStructPayloadResponder {
2244    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2245    tx_id: u32,
2246}
2247
2248/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2249/// if the responder is dropped without sending a response, so that the client
2250/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2251impl std::ops::Drop for ClosedTargetTwoWayStructPayloadResponder {
2252    fn drop(&mut self) {
2253        self.control_handle.shutdown();
2254        // Safety: drops once, never accessed again
2255        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2256    }
2257}
2258
2259impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadResponder {
2260    type ControlHandle = ClosedTargetControlHandle;
2261
2262    fn control_handle(&self) -> &ClosedTargetControlHandle {
2263        &self.control_handle
2264    }
2265
2266    fn drop_without_shutdown(mut self) {
2267        // Safety: drops once, never accessed again due to mem::forget
2268        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2269        // Prevent Drop from running (which would shut down the channel)
2270        std::mem::forget(self);
2271    }
2272}
2273
2274impl ClosedTargetTwoWayStructPayloadResponder {
2275    /// Sends a response to the FIDL transaction.
2276    ///
2277    /// Sets the channel to shutdown if an error occurs.
2278    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
2279        let _result = self.send_raw(some_field);
2280        if _result.is_err() {
2281            self.control_handle.shutdown();
2282        }
2283        self.drop_without_shutdown();
2284        _result
2285    }
2286
2287    /// Similar to "send" but does not shutdown the channel if an error occurs.
2288    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
2289        let _result = self.send_raw(some_field);
2290        self.drop_without_shutdown();
2291        _result
2292    }
2293
2294    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2295        self.control_handle.inner.send::<NonEmptyPayload>(
2296            (some_field,),
2297            self.tx_id,
2298            0x3a402118bad781bd,
2299            fidl::encoding::DynamicFlags::empty(),
2300        )
2301    }
2302}
2303
2304#[must_use = "FIDL methods require a response to be sent"]
2305#[derive(Debug)]
2306pub struct ClosedTargetTwoWayTablePayloadResponder {
2307    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2308    tx_id: u32,
2309}
2310
2311/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2312/// if the responder is dropped without sending a response, so that the client
2313/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2314impl std::ops::Drop for ClosedTargetTwoWayTablePayloadResponder {
2315    fn drop(&mut self) {
2316        self.control_handle.shutdown();
2317        // Safety: drops once, never accessed again
2318        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2319    }
2320}
2321
2322impl fidl::endpoints::Responder for ClosedTargetTwoWayTablePayloadResponder {
2323    type ControlHandle = ClosedTargetControlHandle;
2324
2325    fn control_handle(&self) -> &ClosedTargetControlHandle {
2326        &self.control_handle
2327    }
2328
2329    fn drop_without_shutdown(mut self) {
2330        // Safety: drops once, never accessed again due to mem::forget
2331        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2332        // Prevent Drop from running (which would shut down the channel)
2333        std::mem::forget(self);
2334    }
2335}
2336
2337impl ClosedTargetTwoWayTablePayloadResponder {
2338    /// Sends a response to the FIDL transaction.
2339    ///
2340    /// Sets the channel to shutdown if an error occurs.
2341    pub fn send(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2342        let _result = self.send_raw(payload);
2343        if _result.is_err() {
2344            self.control_handle.shutdown();
2345        }
2346        self.drop_without_shutdown();
2347        _result
2348    }
2349
2350    /// Similar to "send" but does not shutdown the channel if an error occurs.
2351    pub fn send_no_shutdown_on_err(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2352        let _result = self.send_raw(payload);
2353        self.drop_without_shutdown();
2354        _result
2355    }
2356
2357    fn send_raw(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2358        self.control_handle.inner.send::<TablePayload>(
2359            payload,
2360            self.tx_id,
2361            0x53be101c241c66bc,
2362            fidl::encoding::DynamicFlags::empty(),
2363        )
2364    }
2365}
2366
2367#[must_use = "FIDL methods require a response to be sent"]
2368#[derive(Debug)]
2369pub struct ClosedTargetTwoWayUnionPayloadResponder {
2370    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2371    tx_id: u32,
2372}
2373
2374/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2375/// if the responder is dropped without sending a response, so that the client
2376/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2377impl std::ops::Drop for ClosedTargetTwoWayUnionPayloadResponder {
2378    fn drop(&mut self) {
2379        self.control_handle.shutdown();
2380        // Safety: drops once, never accessed again
2381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2382    }
2383}
2384
2385impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionPayloadResponder {
2386    type ControlHandle = ClosedTargetControlHandle;
2387
2388    fn control_handle(&self) -> &ClosedTargetControlHandle {
2389        &self.control_handle
2390    }
2391
2392    fn drop_without_shutdown(mut self) {
2393        // Safety: drops once, never accessed again due to mem::forget
2394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2395        // Prevent Drop from running (which would shut down the channel)
2396        std::mem::forget(self);
2397    }
2398}
2399
2400impl ClosedTargetTwoWayUnionPayloadResponder {
2401    /// Sends a response to the FIDL transaction.
2402    ///
2403    /// Sets the channel to shutdown if an error occurs.
2404    pub fn send(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2405        let _result = self.send_raw(payload);
2406        if _result.is_err() {
2407            self.control_handle.shutdown();
2408        }
2409        self.drop_without_shutdown();
2410        _result
2411    }
2412
2413    /// Similar to "send" but does not shutdown the channel if an error occurs.
2414    pub fn send_no_shutdown_on_err(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2415        let _result = self.send_raw(payload);
2416        self.drop_without_shutdown();
2417        _result
2418    }
2419
2420    fn send_raw(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2421        self.control_handle.inner.send::<UnionPayload>(
2422            payload,
2423            self.tx_id,
2424            0x1ff7f745ab608f8c,
2425            fidl::encoding::DynamicFlags::empty(),
2426        )
2427    }
2428}
2429
2430#[must_use = "FIDL methods require a response to be sent"]
2431#[derive(Debug)]
2432pub struct ClosedTargetTwoWayStructPayloadErrResponder {
2433    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2434    tx_id: u32,
2435}
2436
2437/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2438/// if the responder is dropped without sending a response, so that the client
2439/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2440impl std::ops::Drop for ClosedTargetTwoWayStructPayloadErrResponder {
2441    fn drop(&mut self) {
2442        self.control_handle.shutdown();
2443        // Safety: drops once, never accessed again
2444        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2445    }
2446}
2447
2448impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadErrResponder {
2449    type ControlHandle = ClosedTargetControlHandle;
2450
2451    fn control_handle(&self) -> &ClosedTargetControlHandle {
2452        &self.control_handle
2453    }
2454
2455    fn drop_without_shutdown(mut self) {
2456        // Safety: drops once, never accessed again due to mem::forget
2457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2458        // Prevent Drop from running (which would shut down the channel)
2459        std::mem::forget(self);
2460    }
2461}
2462
2463impl ClosedTargetTwoWayStructPayloadErrResponder {
2464    /// Sends a response to the FIDL transaction.
2465    ///
2466    /// Sets the channel to shutdown if an error occurs.
2467    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2468        let _result = self.send_raw(result);
2469        if _result.is_err() {
2470            self.control_handle.shutdown();
2471        }
2472        self.drop_without_shutdown();
2473        _result
2474    }
2475
2476    /// Similar to "send" but does not shutdown the channel if an error occurs.
2477    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2478        let _result = self.send_raw(result);
2479        self.drop_without_shutdown();
2480        _result
2481    }
2482
2483    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2484        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
2485            result.map(|some_field| (some_field,)),
2486            self.tx_id,
2487            0x62b4861c443bbc0b,
2488            fidl::encoding::DynamicFlags::empty(),
2489        )
2490    }
2491}
2492
2493#[must_use = "FIDL methods require a response to be sent"]
2494#[derive(Debug)]
2495pub struct ClosedTargetTwoWayStructRequestResponder {
2496    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2497    tx_id: u32,
2498}
2499
2500/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2501/// if the responder is dropped without sending a response, so that the client
2502/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2503impl std::ops::Drop for ClosedTargetTwoWayStructRequestResponder {
2504    fn drop(&mut self) {
2505        self.control_handle.shutdown();
2506        // Safety: drops once, never accessed again
2507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2508    }
2509}
2510
2511impl fidl::endpoints::Responder for ClosedTargetTwoWayStructRequestResponder {
2512    type ControlHandle = ClosedTargetControlHandle;
2513
2514    fn control_handle(&self) -> &ClosedTargetControlHandle {
2515        &self.control_handle
2516    }
2517
2518    fn drop_without_shutdown(mut self) {
2519        // Safety: drops once, never accessed again due to mem::forget
2520        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2521        // Prevent Drop from running (which would shut down the channel)
2522        std::mem::forget(self);
2523    }
2524}
2525
2526impl ClosedTargetTwoWayStructRequestResponder {
2527    /// Sends a response to the FIDL transaction.
2528    ///
2529    /// Sets the channel to shutdown if an error occurs.
2530    pub fn send(self) -> Result<(), fidl::Error> {
2531        let _result = self.send_raw();
2532        if _result.is_err() {
2533            self.control_handle.shutdown();
2534        }
2535        self.drop_without_shutdown();
2536        _result
2537    }
2538
2539    /// Similar to "send" but does not shutdown the channel if an error occurs.
2540    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2541        let _result = self.send_raw();
2542        self.drop_without_shutdown();
2543        _result
2544    }
2545
2546    fn send_raw(&self) -> Result<(), fidl::Error> {
2547        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2548            (),
2549            self.tx_id,
2550            0x4ff77b4a913be5b6,
2551            fidl::encoding::DynamicFlags::empty(),
2552        )
2553    }
2554}
2555
2556#[must_use = "FIDL methods require a response to be sent"]
2557#[derive(Debug)]
2558pub struct ClosedTargetTwoWayTableRequestResponder {
2559    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2560    tx_id: u32,
2561}
2562
2563/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2564/// if the responder is dropped without sending a response, so that the client
2565/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2566impl std::ops::Drop for ClosedTargetTwoWayTableRequestResponder {
2567    fn drop(&mut self) {
2568        self.control_handle.shutdown();
2569        // Safety: drops once, never accessed again
2570        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2571    }
2572}
2573
2574impl fidl::endpoints::Responder for ClosedTargetTwoWayTableRequestResponder {
2575    type ControlHandle = ClosedTargetControlHandle;
2576
2577    fn control_handle(&self) -> &ClosedTargetControlHandle {
2578        &self.control_handle
2579    }
2580
2581    fn drop_without_shutdown(mut self) {
2582        // Safety: drops once, never accessed again due to mem::forget
2583        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2584        // Prevent Drop from running (which would shut down the channel)
2585        std::mem::forget(self);
2586    }
2587}
2588
2589impl ClosedTargetTwoWayTableRequestResponder {
2590    /// Sends a response to the FIDL transaction.
2591    ///
2592    /// Sets the channel to shutdown if an error occurs.
2593    pub fn send(self) -> Result<(), fidl::Error> {
2594        let _result = self.send_raw();
2595        if _result.is_err() {
2596            self.control_handle.shutdown();
2597        }
2598        self.drop_without_shutdown();
2599        _result
2600    }
2601
2602    /// Similar to "send" but does not shutdown the channel if an error occurs.
2603    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2604        let _result = self.send_raw();
2605        self.drop_without_shutdown();
2606        _result
2607    }
2608
2609    fn send_raw(&self) -> Result<(), fidl::Error> {
2610        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2611            (),
2612            self.tx_id,
2613            0x3d38ad5b0f4f49cf,
2614            fidl::encoding::DynamicFlags::empty(),
2615        )
2616    }
2617}
2618
2619#[must_use = "FIDL methods require a response to be sent"]
2620#[derive(Debug)]
2621pub struct ClosedTargetTwoWayUnionRequestResponder {
2622    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2623    tx_id: u32,
2624}
2625
2626/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2627/// if the responder is dropped without sending a response, so that the client
2628/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2629impl std::ops::Drop for ClosedTargetTwoWayUnionRequestResponder {
2630    fn drop(&mut self) {
2631        self.control_handle.shutdown();
2632        // Safety: drops once, never accessed again
2633        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2634    }
2635}
2636
2637impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionRequestResponder {
2638    type ControlHandle = ClosedTargetControlHandle;
2639
2640    fn control_handle(&self) -> &ClosedTargetControlHandle {
2641        &self.control_handle
2642    }
2643
2644    fn drop_without_shutdown(mut self) {
2645        // Safety: drops once, never accessed again due to mem::forget
2646        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2647        // Prevent Drop from running (which would shut down the channel)
2648        std::mem::forget(self);
2649    }
2650}
2651
2652impl ClosedTargetTwoWayUnionRequestResponder {
2653    /// Sends a response to the FIDL transaction.
2654    ///
2655    /// Sets the channel to shutdown if an error occurs.
2656    pub fn send(self) -> Result<(), fidl::Error> {
2657        let _result = self.send_raw();
2658        if _result.is_err() {
2659            self.control_handle.shutdown();
2660        }
2661        self.drop_without_shutdown();
2662        _result
2663    }
2664
2665    /// Similar to "send" but does not shutdown the channel if an error occurs.
2666    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2667        let _result = self.send_raw();
2668        self.drop_without_shutdown();
2669        _result
2670    }
2671
2672    fn send_raw(&self) -> Result<(), fidl::Error> {
2673        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2674            (),
2675            self.tx_id,
2676            0x7adb1c265a378e77,
2677            fidl::encoding::DynamicFlags::empty(),
2678        )
2679    }
2680}
2681
2682#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2683pub struct ClosedTargetEventReporterMarker;
2684
2685impl fidl::endpoints::ProtocolMarker for ClosedTargetEventReporterMarker {
2686    type Proxy = ClosedTargetEventReporterProxy;
2687    type RequestStream = ClosedTargetEventReporterRequestStream;
2688    #[cfg(target_os = "fuchsia")]
2689    type SynchronousProxy = ClosedTargetEventReporterSynchronousProxy;
2690
2691    const DEBUG_NAME: &'static str = "(anonymous) ClosedTargetEventReporter";
2692}
2693
2694pub trait ClosedTargetEventReporterProxyInterface: Send + Sync {
2695    fn r#report_event(&self, payload: &ClosedTargetEventReport) -> Result<(), fidl::Error>;
2696}
2697#[derive(Debug)]
2698#[cfg(target_os = "fuchsia")]
2699pub struct ClosedTargetEventReporterSynchronousProxy {
2700    client: fidl::client::sync::Client,
2701}
2702
2703#[cfg(target_os = "fuchsia")]
2704impl fidl::endpoints::SynchronousProxy for ClosedTargetEventReporterSynchronousProxy {
2705    type Proxy = ClosedTargetEventReporterProxy;
2706    type Protocol = ClosedTargetEventReporterMarker;
2707
2708    fn from_channel(inner: fidl::Channel) -> Self {
2709        Self::new(inner)
2710    }
2711
2712    fn into_channel(self) -> fidl::Channel {
2713        self.client.into_channel()
2714    }
2715
2716    fn as_channel(&self) -> &fidl::Channel {
2717        self.client.as_channel()
2718    }
2719}
2720
2721#[cfg(target_os = "fuchsia")]
2722impl ClosedTargetEventReporterSynchronousProxy {
2723    pub fn new(channel: fidl::Channel) -> Self {
2724        Self { client: fidl::client::sync::Client::new(channel) }
2725    }
2726
2727    pub fn into_channel(self) -> fidl::Channel {
2728        self.client.into_channel()
2729    }
2730
2731    /// Waits until an event arrives and returns it. It is safe for other
2732    /// threads to make concurrent requests while waiting for an event.
2733    pub fn wait_for_event(
2734        &self,
2735        deadline: zx::MonotonicInstant,
2736    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2737        ClosedTargetEventReporterEvent::decode(
2738            self.client.wait_for_event::<ClosedTargetEventReporterMarker>(deadline)?,
2739        )
2740    }
2741
2742    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2743        self.client.send::<ClosedTargetEventReport>(
2744            payload,
2745            0x63890e67649a846e,
2746            fidl::encoding::DynamicFlags::empty(),
2747        )
2748    }
2749}
2750
2751#[cfg(target_os = "fuchsia")]
2752impl From<ClosedTargetEventReporterSynchronousProxy> for zx::NullableHandle {
2753    fn from(value: ClosedTargetEventReporterSynchronousProxy) -> Self {
2754        value.into_channel().into()
2755    }
2756}
2757
2758#[cfg(target_os = "fuchsia")]
2759impl From<fidl::Channel> for ClosedTargetEventReporterSynchronousProxy {
2760    fn from(value: fidl::Channel) -> Self {
2761        Self::new(value)
2762    }
2763}
2764
2765#[cfg(target_os = "fuchsia")]
2766impl fidl::endpoints::FromClient for ClosedTargetEventReporterSynchronousProxy {
2767    type Protocol = ClosedTargetEventReporterMarker;
2768
2769    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>) -> Self {
2770        Self::new(value.into_channel())
2771    }
2772}
2773
2774#[derive(Debug, Clone)]
2775pub struct ClosedTargetEventReporterProxy {
2776    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2777}
2778
2779impl fidl::endpoints::Proxy for ClosedTargetEventReporterProxy {
2780    type Protocol = ClosedTargetEventReporterMarker;
2781
2782    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2783        Self::new(inner)
2784    }
2785
2786    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2787        self.client.into_channel().map_err(|client| Self { client })
2788    }
2789
2790    fn as_channel(&self) -> &::fidl::AsyncChannel {
2791        self.client.as_channel()
2792    }
2793}
2794
2795impl ClosedTargetEventReporterProxy {
2796    /// Create a new Proxy for fidl.clientsuite/ClosedTargetEventReporter.
2797    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2798        let protocol_name =
2799            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2800        Self { client: fidl::client::Client::new(channel, protocol_name) }
2801    }
2802
2803    /// Get a Stream of events from the remote end of the protocol.
2804    ///
2805    /// # Panics
2806    ///
2807    /// Panics if the event stream was already taken.
2808    pub fn take_event_stream(&self) -> ClosedTargetEventReporterEventStream {
2809        ClosedTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
2810    }
2811
2812    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2813        ClosedTargetEventReporterProxyInterface::r#report_event(self, payload)
2814    }
2815}
2816
2817impl ClosedTargetEventReporterProxyInterface for ClosedTargetEventReporterProxy {
2818    fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2819        self.client.send::<ClosedTargetEventReport>(
2820            payload,
2821            0x63890e67649a846e,
2822            fidl::encoding::DynamicFlags::empty(),
2823        )
2824    }
2825}
2826
2827pub struct ClosedTargetEventReporterEventStream {
2828    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2829}
2830
2831impl std::marker::Unpin for ClosedTargetEventReporterEventStream {}
2832
2833impl futures::stream::FusedStream for ClosedTargetEventReporterEventStream {
2834    fn is_terminated(&self) -> bool {
2835        self.event_receiver.is_terminated()
2836    }
2837}
2838
2839impl futures::Stream for ClosedTargetEventReporterEventStream {
2840    type Item = Result<ClosedTargetEventReporterEvent, fidl::Error>;
2841
2842    fn poll_next(
2843        mut self: std::pin::Pin<&mut Self>,
2844        cx: &mut std::task::Context<'_>,
2845    ) -> std::task::Poll<Option<Self::Item>> {
2846        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2847            &mut self.event_receiver,
2848            cx
2849        )?) {
2850            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEventReporterEvent::decode(buf))),
2851            None => std::task::Poll::Ready(None),
2852        }
2853    }
2854}
2855
2856#[derive(Debug)]
2857pub enum ClosedTargetEventReporterEvent {}
2858
2859impl ClosedTargetEventReporterEvent {
2860    /// Decodes a message buffer as a [`ClosedTargetEventReporterEvent`].
2861    fn decode(
2862        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2863    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2864        let (bytes, _handles) = buf.split_mut();
2865        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2866        debug_assert_eq!(tx_header.tx_id, 0);
2867        match tx_header.ordinal {
2868            _ => Err(fidl::Error::UnknownOrdinal {
2869                ordinal: tx_header.ordinal,
2870                protocol_name:
2871                    <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2872            }),
2873        }
2874    }
2875}
2876
2877/// A Stream of incoming requests for fidl.clientsuite/ClosedTargetEventReporter.
2878pub struct ClosedTargetEventReporterRequestStream {
2879    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2880    is_terminated: bool,
2881}
2882
2883impl std::marker::Unpin for ClosedTargetEventReporterRequestStream {}
2884
2885impl futures::stream::FusedStream for ClosedTargetEventReporterRequestStream {
2886    fn is_terminated(&self) -> bool {
2887        self.is_terminated
2888    }
2889}
2890
2891impl fidl::endpoints::RequestStream for ClosedTargetEventReporterRequestStream {
2892    type Protocol = ClosedTargetEventReporterMarker;
2893    type ControlHandle = ClosedTargetEventReporterControlHandle;
2894
2895    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2896        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2897    }
2898
2899    fn control_handle(&self) -> Self::ControlHandle {
2900        ClosedTargetEventReporterControlHandle { inner: self.inner.clone() }
2901    }
2902
2903    fn into_inner(
2904        self,
2905    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2906    {
2907        (self.inner, self.is_terminated)
2908    }
2909
2910    fn from_inner(
2911        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2912        is_terminated: bool,
2913    ) -> Self {
2914        Self { inner, is_terminated }
2915    }
2916}
2917
2918impl futures::Stream for ClosedTargetEventReporterRequestStream {
2919    type Item = Result<ClosedTargetEventReporterRequest, fidl::Error>;
2920
2921    fn poll_next(
2922        mut self: std::pin::Pin<&mut Self>,
2923        cx: &mut std::task::Context<'_>,
2924    ) -> std::task::Poll<Option<Self::Item>> {
2925        let this = &mut *self;
2926        if this.inner.check_shutdown(cx) {
2927            this.is_terminated = true;
2928            return std::task::Poll::Ready(None);
2929        }
2930        if this.is_terminated {
2931            panic!("polled ClosedTargetEventReporterRequestStream after completion");
2932        }
2933        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2934            |bytes, handles| {
2935                match this.inner.channel().read_etc(cx, bytes, handles) {
2936                    std::task::Poll::Ready(Ok(())) => {}
2937                    std::task::Poll::Pending => return std::task::Poll::Pending,
2938                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2939                        this.is_terminated = true;
2940                        return std::task::Poll::Ready(None);
2941                    }
2942                    std::task::Poll::Ready(Err(e)) => {
2943                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2944                            e.into(),
2945                        ))));
2946                    }
2947                }
2948
2949                // A message has been received from the channel
2950                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2951
2952                std::task::Poll::Ready(Some(match header.ordinal {
2953                0x63890e67649a846e => {
2954                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2955                    let mut req = fidl::new_empty!(ClosedTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
2956                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ClosedTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
2957                    let control_handle = ClosedTargetEventReporterControlHandle {
2958                        inner: this.inner.clone(),
2959                    };
2960                    Ok(ClosedTargetEventReporterRequest::ReportEvent {payload: req,
2961                        control_handle,
2962                    })
2963                }
2964                _ => Err(fidl::Error::UnknownOrdinal {
2965                    ordinal: header.ordinal,
2966                    protocol_name: <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2967                }),
2968            }))
2969            },
2970        )
2971    }
2972}
2973
2974#[derive(Debug)]
2975pub enum ClosedTargetEventReporterRequest {
2976    ReportEvent {
2977        payload: ClosedTargetEventReport,
2978        control_handle: ClosedTargetEventReporterControlHandle,
2979    },
2980}
2981
2982impl ClosedTargetEventReporterRequest {
2983    #[allow(irrefutable_let_patterns)]
2984    pub fn into_report_event(
2985        self,
2986    ) -> Option<(ClosedTargetEventReport, ClosedTargetEventReporterControlHandle)> {
2987        if let ClosedTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
2988            Some((payload, control_handle))
2989        } else {
2990            None
2991        }
2992    }
2993
2994    /// Name of the method defined in FIDL
2995    pub fn method_name(&self) -> &'static str {
2996        match *self {
2997            ClosedTargetEventReporterRequest::ReportEvent { .. } => "report_event",
2998        }
2999    }
3000}
3001
3002#[derive(Debug, Clone)]
3003pub struct ClosedTargetEventReporterControlHandle {
3004    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3005}
3006
3007impl ClosedTargetEventReporterControlHandle {
3008    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
3009        self.inner.shutdown_with_epitaph(status.into())
3010    }
3011}
3012
3013impl fidl::endpoints::ControlHandle for ClosedTargetEventReporterControlHandle {
3014    fn shutdown(&self) {
3015        self.inner.shutdown()
3016    }
3017
3018    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
3019        self.inner.shutdown_with_epitaph(status)
3020    }
3021
3022    fn is_closed(&self) -> bool {
3023        self.inner.channel().is_closed()
3024    }
3025    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3026        self.inner.channel().on_closed()
3027    }
3028
3029    #[cfg(target_os = "fuchsia")]
3030    fn signal_peer(
3031        &self,
3032        clear_mask: zx::Signals,
3033        set_mask: zx::Signals,
3034    ) -> Result<(), zx_status::Status> {
3035        use fidl::Peered;
3036        self.inner.channel().signal_peer(clear_mask, set_mask)
3037    }
3038}
3039
3040impl ClosedTargetEventReporterControlHandle {}
3041
3042#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
3043pub struct OpenTargetMarker;
3044
3045impl fidl::endpoints::ProtocolMarker for OpenTargetMarker {
3046    type Proxy = OpenTargetProxy;
3047    type RequestStream = OpenTargetRequestStream;
3048    #[cfg(target_os = "fuchsia")]
3049    type SynchronousProxy = OpenTargetSynchronousProxy;
3050
3051    const DEBUG_NAME: &'static str = "(anonymous) OpenTarget";
3052}
3053pub type OpenTargetStrictTwoWayErrResult = Result<(), i32>;
3054pub type OpenTargetStrictTwoWayFieldsErrResult = Result<i32, i32>;
3055pub type OpenTargetFlexibleTwoWayErrResult = Result<(), i32>;
3056pub type OpenTargetFlexibleTwoWayFieldsErrResult = Result<i32, i32>;
3057
3058pub trait OpenTargetProxyInterface: Send + Sync {
3059    fn r#strict_one_way(&self) -> Result<(), fidl::Error>;
3060    fn r#flexible_one_way(&self) -> Result<(), fidl::Error>;
3061    type StrictTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3062    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut;
3063    type StrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3064        + Send;
3065    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut;
3066    type StrictTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayErrResult, fidl::Error>>
3067        + Send;
3068    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut;
3069    type StrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error>>
3070        + Send;
3071    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut;
3072    type FlexibleTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3073    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut;
3074    type FlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3075        + Send;
3076    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut;
3077    type FlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error>>
3078        + Send;
3079    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut;
3080    type FlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error>>
3081        + Send;
3082    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut;
3083}
3084#[derive(Debug)]
3085#[cfg(target_os = "fuchsia")]
3086pub struct OpenTargetSynchronousProxy {
3087    client: fidl::client::sync::Client,
3088}
3089
3090#[cfg(target_os = "fuchsia")]
3091impl fidl::endpoints::SynchronousProxy for OpenTargetSynchronousProxy {
3092    type Proxy = OpenTargetProxy;
3093    type Protocol = OpenTargetMarker;
3094
3095    fn from_channel(inner: fidl::Channel) -> Self {
3096        Self::new(inner)
3097    }
3098
3099    fn into_channel(self) -> fidl::Channel {
3100        self.client.into_channel()
3101    }
3102
3103    fn as_channel(&self) -> &fidl::Channel {
3104        self.client.as_channel()
3105    }
3106}
3107
3108#[cfg(target_os = "fuchsia")]
3109impl OpenTargetSynchronousProxy {
3110    pub fn new(channel: fidl::Channel) -> Self {
3111        Self { client: fidl::client::sync::Client::new(channel) }
3112    }
3113
3114    pub fn into_channel(self) -> fidl::Channel {
3115        self.client.into_channel()
3116    }
3117
3118    /// Waits until an event arrives and returns it. It is safe for other
3119    /// threads to make concurrent requests while waiting for an event.
3120    pub fn wait_for_event(
3121        &self,
3122        deadline: zx::MonotonicInstant,
3123    ) -> Result<OpenTargetEvent, fidl::Error> {
3124        OpenTargetEvent::decode(self.client.wait_for_event::<OpenTargetMarker>(deadline)?)
3125    }
3126
3127    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3128        self.client.send::<fidl::encoding::EmptyPayload>(
3129            (),
3130            0x6db0bc21c4aae764,
3131            fidl::encoding::DynamicFlags::empty(),
3132        )
3133    }
3134
3135    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3136        self.client.send::<fidl::encoding::EmptyPayload>(
3137            (),
3138            0xf894a7eb9cc29fc,
3139            fidl::encoding::DynamicFlags::FLEXIBLE,
3140        )
3141    }
3142
3143    pub fn r#strict_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3144        let _response = self.client.send_query::<
3145            fidl::encoding::EmptyPayload,
3146            fidl::encoding::EmptyPayload,
3147            OpenTargetMarker,
3148        >(
3149            (),
3150            0xdcf4cef19a1c542,
3151            fidl::encoding::DynamicFlags::empty(),
3152            ___deadline,
3153        )?;
3154        Ok(_response)
3155    }
3156
3157    pub fn r#strict_two_way_fields(
3158        &self,
3159        ___deadline: zx::MonotonicInstant,
3160    ) -> Result<i32, fidl::Error> {
3161        let _response = self
3162            .client
3163            .send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload, OpenTargetMarker>(
3164                (),
3165                0x79c7a7803c45e2e3,
3166                fidl::encoding::DynamicFlags::empty(),
3167                ___deadline,
3168            )?;
3169        Ok(_response.some_field)
3170    }
3171
3172    pub fn r#strict_two_way_err(
3173        &self,
3174        ___deadline: zx::MonotonicInstant,
3175    ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3176        let _response = self.client.send_query::<
3177            fidl::encoding::EmptyPayload,
3178            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3179            OpenTargetMarker,
3180        >(
3181            (),
3182            0x54259ed6c262fe88,
3183            fidl::encoding::DynamicFlags::empty(),
3184            ___deadline,
3185        )?;
3186        Ok(_response.map(|x| x))
3187    }
3188
3189    pub fn r#strict_two_way_fields_err(
3190        &self,
3191        ___deadline: zx::MonotonicInstant,
3192    ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3193        let _response = self.client.send_query::<
3194            fidl::encoding::EmptyPayload,
3195            fidl::encoding::ResultType<NonEmptyPayload, i32>,
3196            OpenTargetMarker,
3197        >(
3198            (),
3199            0x7dbaa8538b552711,
3200            fidl::encoding::DynamicFlags::empty(),
3201            ___deadline,
3202        )?;
3203        Ok(_response.map(|x| x.some_field))
3204    }
3205
3206    pub fn r#flexible_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3207        let _response = self.client.send_query::<
3208            fidl::encoding::EmptyPayload,
3209            fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3210            OpenTargetMarker,
3211        >(
3212            (),
3213            0x66552e68b99a0587,
3214            fidl::encoding::DynamicFlags::FLEXIBLE,
3215            ___deadline,
3216        )?
3217        .into_result::<OpenTargetMarker>("flexible_two_way")?;
3218        Ok(_response)
3219    }
3220
3221    pub fn r#flexible_two_way_fields(
3222        &self,
3223        ___deadline: zx::MonotonicInstant,
3224    ) -> Result<i32, fidl::Error> {
3225        let _response = self.client.send_query::<
3226            fidl::encoding::EmptyPayload,
3227            fidl::encoding::FlexibleType<NonEmptyPayload>,
3228            OpenTargetMarker,
3229        >(
3230            (),
3231            0x38b95648ac4e2ae4,
3232            fidl::encoding::DynamicFlags::FLEXIBLE,
3233            ___deadline,
3234        )?
3235        .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3236        Ok(_response.some_field)
3237    }
3238
3239    pub fn r#flexible_two_way_err(
3240        &self,
3241        ___deadline: zx::MonotonicInstant,
3242    ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3243        let _response = self.client.send_query::<
3244            fidl::encoding::EmptyPayload,
3245            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3246            OpenTargetMarker,
3247        >(
3248            (),
3249            0x6e144c6e0cf2147a,
3250            fidl::encoding::DynamicFlags::FLEXIBLE,
3251            ___deadline,
3252        )?
3253        .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3254        Ok(_response.map(|x| x))
3255    }
3256
3257    pub fn r#flexible_two_way_fields_err(
3258        &self,
3259        ___deadline: zx::MonotonicInstant,
3260    ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3261        let _response = self.client.send_query::<
3262            fidl::encoding::EmptyPayload,
3263            fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3264            OpenTargetMarker,
3265        >(
3266            (),
3267            0xe494147cda8024a,
3268            fidl::encoding::DynamicFlags::FLEXIBLE,
3269            ___deadline,
3270        )?
3271        .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3272        Ok(_response.map(|x| x.some_field))
3273    }
3274}
3275
3276#[cfg(target_os = "fuchsia")]
3277impl From<OpenTargetSynchronousProxy> for zx::NullableHandle {
3278    fn from(value: OpenTargetSynchronousProxy) -> Self {
3279        value.into_channel().into()
3280    }
3281}
3282
3283#[cfg(target_os = "fuchsia")]
3284impl From<fidl::Channel> for OpenTargetSynchronousProxy {
3285    fn from(value: fidl::Channel) -> Self {
3286        Self::new(value)
3287    }
3288}
3289
3290#[cfg(target_os = "fuchsia")]
3291impl fidl::endpoints::FromClient for OpenTargetSynchronousProxy {
3292    type Protocol = OpenTargetMarker;
3293
3294    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetMarker>) -> Self {
3295        Self::new(value.into_channel())
3296    }
3297}
3298
3299#[derive(Debug, Clone)]
3300pub struct OpenTargetProxy {
3301    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3302}
3303
3304impl fidl::endpoints::Proxy for OpenTargetProxy {
3305    type Protocol = OpenTargetMarker;
3306
3307    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3308        Self::new(inner)
3309    }
3310
3311    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3312        self.client.into_channel().map_err(|client| Self { client })
3313    }
3314
3315    fn as_channel(&self) -> &::fidl::AsyncChannel {
3316        self.client.as_channel()
3317    }
3318}
3319
3320impl OpenTargetProxy {
3321    /// Create a new Proxy for fidl.clientsuite/OpenTarget.
3322    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3323        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3324        Self { client: fidl::client::Client::new(channel, protocol_name) }
3325    }
3326
3327    /// Get a Stream of events from the remote end of the protocol.
3328    ///
3329    /// # Panics
3330    ///
3331    /// Panics if the event stream was already taken.
3332    pub fn take_event_stream(&self) -> OpenTargetEventStream {
3333        OpenTargetEventStream { event_receiver: self.client.take_event_receiver() }
3334    }
3335
3336    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3337        OpenTargetProxyInterface::r#strict_one_way(self)
3338    }
3339
3340    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3341        OpenTargetProxyInterface::r#flexible_one_way(self)
3342    }
3343
3344    pub fn r#strict_two_way(
3345        &self,
3346    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3347        OpenTargetProxyInterface::r#strict_two_way(self)
3348    }
3349
3350    pub fn r#strict_two_way_fields(
3351        &self,
3352    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3353        OpenTargetProxyInterface::r#strict_two_way_fields(self)
3354    }
3355
3356    pub fn r#strict_two_way_err(
3357        &self,
3358    ) -> fidl::client::QueryResponseFut<
3359        OpenTargetStrictTwoWayErrResult,
3360        fidl::encoding::DefaultFuchsiaResourceDialect,
3361    > {
3362        OpenTargetProxyInterface::r#strict_two_way_err(self)
3363    }
3364
3365    pub fn r#strict_two_way_fields_err(
3366        &self,
3367    ) -> fidl::client::QueryResponseFut<
3368        OpenTargetStrictTwoWayFieldsErrResult,
3369        fidl::encoding::DefaultFuchsiaResourceDialect,
3370    > {
3371        OpenTargetProxyInterface::r#strict_two_way_fields_err(self)
3372    }
3373
3374    pub fn r#flexible_two_way(
3375        &self,
3376    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3377        OpenTargetProxyInterface::r#flexible_two_way(self)
3378    }
3379
3380    pub fn r#flexible_two_way_fields(
3381        &self,
3382    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3383        OpenTargetProxyInterface::r#flexible_two_way_fields(self)
3384    }
3385
3386    pub fn r#flexible_two_way_err(
3387        &self,
3388    ) -> fidl::client::QueryResponseFut<
3389        OpenTargetFlexibleTwoWayErrResult,
3390        fidl::encoding::DefaultFuchsiaResourceDialect,
3391    > {
3392        OpenTargetProxyInterface::r#flexible_two_way_err(self)
3393    }
3394
3395    pub fn r#flexible_two_way_fields_err(
3396        &self,
3397    ) -> fidl::client::QueryResponseFut<
3398        OpenTargetFlexibleTwoWayFieldsErrResult,
3399        fidl::encoding::DefaultFuchsiaResourceDialect,
3400    > {
3401        OpenTargetProxyInterface::r#flexible_two_way_fields_err(self)
3402    }
3403}
3404
3405impl OpenTargetProxyInterface for OpenTargetProxy {
3406    fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3407        self.client.send::<fidl::encoding::EmptyPayload>(
3408            (),
3409            0x6db0bc21c4aae764,
3410            fidl::encoding::DynamicFlags::empty(),
3411        )
3412    }
3413
3414    fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3415        self.client.send::<fidl::encoding::EmptyPayload>(
3416            (),
3417            0xf894a7eb9cc29fc,
3418            fidl::encoding::DynamicFlags::FLEXIBLE,
3419        )
3420    }
3421
3422    type StrictTwoWayResponseFut =
3423        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3424    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut {
3425        fn _decode(
3426            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3427        ) -> Result<(), fidl::Error> {
3428            let _response = fidl::client::decode_transaction_body::<
3429                fidl::encoding::EmptyPayload,
3430                fidl::encoding::DefaultFuchsiaResourceDialect,
3431                0xdcf4cef19a1c542,
3432            >(_buf?)?;
3433            Ok(_response)
3434        }
3435        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3436            (),
3437            0xdcf4cef19a1c542,
3438            fidl::encoding::DynamicFlags::empty(),
3439            _decode,
3440        )
3441    }
3442
3443    type StrictTwoWayFieldsResponseFut =
3444        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3445    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut {
3446        fn _decode(
3447            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3448        ) -> Result<i32, fidl::Error> {
3449            let _response = fidl::client::decode_transaction_body::<
3450                NonEmptyPayload,
3451                fidl::encoding::DefaultFuchsiaResourceDialect,
3452                0x79c7a7803c45e2e3,
3453            >(_buf?)?;
3454            Ok(_response.some_field)
3455        }
3456        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3457            (),
3458            0x79c7a7803c45e2e3,
3459            fidl::encoding::DynamicFlags::empty(),
3460            _decode,
3461        )
3462    }
3463
3464    type StrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3465        OpenTargetStrictTwoWayErrResult,
3466        fidl::encoding::DefaultFuchsiaResourceDialect,
3467    >;
3468    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut {
3469        fn _decode(
3470            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3471        ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3472            let _response = fidl::client::decode_transaction_body::<
3473                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3474                fidl::encoding::DefaultFuchsiaResourceDialect,
3475                0x54259ed6c262fe88,
3476            >(_buf?)?;
3477            Ok(_response.map(|x| x))
3478        }
3479        self.client
3480            .send_query_and_decode::<fidl::encoding::EmptyPayload, OpenTargetStrictTwoWayErrResult>(
3481                (),
3482                0x54259ed6c262fe88,
3483                fidl::encoding::DynamicFlags::empty(),
3484                _decode,
3485            )
3486    }
3487
3488    type StrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3489        OpenTargetStrictTwoWayFieldsErrResult,
3490        fidl::encoding::DefaultFuchsiaResourceDialect,
3491    >;
3492    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut {
3493        fn _decode(
3494            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3495        ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3496            let _response = fidl::client::decode_transaction_body::<
3497                fidl::encoding::ResultType<NonEmptyPayload, i32>,
3498                fidl::encoding::DefaultFuchsiaResourceDialect,
3499                0x7dbaa8538b552711,
3500            >(_buf?)?;
3501            Ok(_response.map(|x| x.some_field))
3502        }
3503        self.client.send_query_and_decode::<
3504            fidl::encoding::EmptyPayload,
3505            OpenTargetStrictTwoWayFieldsErrResult,
3506        >(
3507            (),
3508            0x7dbaa8538b552711,
3509            fidl::encoding::DynamicFlags::empty(),
3510            _decode,
3511        )
3512    }
3513
3514    type FlexibleTwoWayResponseFut =
3515        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3516    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut {
3517        fn _decode(
3518            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3519        ) -> Result<(), fidl::Error> {
3520            let _response = fidl::client::decode_transaction_body::<
3521                fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3522                fidl::encoding::DefaultFuchsiaResourceDialect,
3523                0x66552e68b99a0587,
3524            >(_buf?)?
3525            .into_result::<OpenTargetMarker>("flexible_two_way")?;
3526            Ok(_response)
3527        }
3528        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3529            (),
3530            0x66552e68b99a0587,
3531            fidl::encoding::DynamicFlags::FLEXIBLE,
3532            _decode,
3533        )
3534    }
3535
3536    type FlexibleTwoWayFieldsResponseFut =
3537        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3538    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut {
3539        fn _decode(
3540            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3541        ) -> Result<i32, fidl::Error> {
3542            let _response = fidl::client::decode_transaction_body::<
3543                fidl::encoding::FlexibleType<NonEmptyPayload>,
3544                fidl::encoding::DefaultFuchsiaResourceDialect,
3545                0x38b95648ac4e2ae4,
3546            >(_buf?)?
3547            .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3548            Ok(_response.some_field)
3549        }
3550        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3551            (),
3552            0x38b95648ac4e2ae4,
3553            fidl::encoding::DynamicFlags::FLEXIBLE,
3554            _decode,
3555        )
3556    }
3557
3558    type FlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3559        OpenTargetFlexibleTwoWayErrResult,
3560        fidl::encoding::DefaultFuchsiaResourceDialect,
3561    >;
3562    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut {
3563        fn _decode(
3564            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3565        ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3566            let _response = fidl::client::decode_transaction_body::<
3567                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3568                fidl::encoding::DefaultFuchsiaResourceDialect,
3569                0x6e144c6e0cf2147a,
3570            >(_buf?)?
3571            .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3572            Ok(_response.map(|x| x))
3573        }
3574        self.client.send_query_and_decode::<
3575            fidl::encoding::EmptyPayload,
3576            OpenTargetFlexibleTwoWayErrResult,
3577        >(
3578            (),
3579            0x6e144c6e0cf2147a,
3580            fidl::encoding::DynamicFlags::FLEXIBLE,
3581            _decode,
3582        )
3583    }
3584
3585    type FlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3586        OpenTargetFlexibleTwoWayFieldsErrResult,
3587        fidl::encoding::DefaultFuchsiaResourceDialect,
3588    >;
3589    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut {
3590        fn _decode(
3591            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3592        ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3593            let _response = fidl::client::decode_transaction_body::<
3594                fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3595                fidl::encoding::DefaultFuchsiaResourceDialect,
3596                0xe494147cda8024a,
3597            >(_buf?)?
3598            .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3599            Ok(_response.map(|x| x.some_field))
3600        }
3601        self.client.send_query_and_decode::<
3602            fidl::encoding::EmptyPayload,
3603            OpenTargetFlexibleTwoWayFieldsErrResult,
3604        >(
3605            (),
3606            0xe494147cda8024a,
3607            fidl::encoding::DynamicFlags::FLEXIBLE,
3608            _decode,
3609        )
3610    }
3611}
3612
3613pub struct OpenTargetEventStream {
3614    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3615}
3616
3617impl std::marker::Unpin for OpenTargetEventStream {}
3618
3619impl futures::stream::FusedStream for OpenTargetEventStream {
3620    fn is_terminated(&self) -> bool {
3621        self.event_receiver.is_terminated()
3622    }
3623}
3624
3625impl futures::Stream for OpenTargetEventStream {
3626    type Item = Result<OpenTargetEvent, fidl::Error>;
3627
3628    fn poll_next(
3629        mut self: std::pin::Pin<&mut Self>,
3630        cx: &mut std::task::Context<'_>,
3631    ) -> std::task::Poll<Option<Self::Item>> {
3632        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3633            &mut self.event_receiver,
3634            cx
3635        )?) {
3636            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEvent::decode(buf))),
3637            None => std::task::Poll::Ready(None),
3638        }
3639    }
3640}
3641
3642#[derive(Debug)]
3643pub enum OpenTargetEvent {
3644    StrictEvent {},
3645    FlexibleEvent {},
3646    #[non_exhaustive]
3647    _UnknownEvent {
3648        /// Ordinal of the event that was sent.
3649        ordinal: u64,
3650    },
3651}
3652
3653impl OpenTargetEvent {
3654    #[allow(irrefutable_let_patterns)]
3655    pub fn into_strict_event(self) -> Option<()> {
3656        if let OpenTargetEvent::StrictEvent {} = self { Some(()) } else { None }
3657    }
3658    #[allow(irrefutable_let_patterns)]
3659    pub fn into_flexible_event(self) -> Option<()> {
3660        if let OpenTargetEvent::FlexibleEvent {} = self { Some(()) } else { None }
3661    }
3662
3663    /// Decodes a message buffer as a [`OpenTargetEvent`].
3664    fn decode(
3665        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3666    ) -> Result<OpenTargetEvent, fidl::Error> {
3667        let (bytes, _handles) = buf.split_mut();
3668        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3669        debug_assert_eq!(tx_header.tx_id, 0);
3670        match tx_header.ordinal {
3671            0x2b291d74321e77a0 => {
3672                let mut out = fidl::new_empty!(
3673                    fidl::encoding::EmptyPayload,
3674                    fidl::encoding::DefaultFuchsiaResourceDialect
3675                );
3676                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3677                Ok((OpenTargetEvent::StrictEvent {}))
3678            }
3679            0x50d4688058898898 => {
3680                let mut out = fidl::new_empty!(
3681                    fidl::encoding::EmptyPayload,
3682                    fidl::encoding::DefaultFuchsiaResourceDialect
3683                );
3684                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3685                Ok((OpenTargetEvent::FlexibleEvent {}))
3686            }
3687            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
3688                Ok(OpenTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
3689            }
3690            _ => Err(fidl::Error::UnknownOrdinal {
3691                ordinal: tx_header.ordinal,
3692                protocol_name: <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3693            }),
3694        }
3695    }
3696}
3697
3698/// A Stream of incoming requests for fidl.clientsuite/OpenTarget.
3699pub struct OpenTargetRequestStream {
3700    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3701    is_terminated: bool,
3702}
3703
3704impl std::marker::Unpin for OpenTargetRequestStream {}
3705
3706impl futures::stream::FusedStream for OpenTargetRequestStream {
3707    fn is_terminated(&self) -> bool {
3708        self.is_terminated
3709    }
3710}
3711
3712impl fidl::endpoints::RequestStream for OpenTargetRequestStream {
3713    type Protocol = OpenTargetMarker;
3714    type ControlHandle = OpenTargetControlHandle;
3715
3716    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3717        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3718    }
3719
3720    fn control_handle(&self) -> Self::ControlHandle {
3721        OpenTargetControlHandle { inner: self.inner.clone() }
3722    }
3723
3724    fn into_inner(
3725        self,
3726    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3727    {
3728        (self.inner, self.is_terminated)
3729    }
3730
3731    fn from_inner(
3732        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3733        is_terminated: bool,
3734    ) -> Self {
3735        Self { inner, is_terminated }
3736    }
3737}
3738
3739impl futures::Stream for OpenTargetRequestStream {
3740    type Item = Result<OpenTargetRequest, fidl::Error>;
3741
3742    fn poll_next(
3743        mut self: std::pin::Pin<&mut Self>,
3744        cx: &mut std::task::Context<'_>,
3745    ) -> std::task::Poll<Option<Self::Item>> {
3746        let this = &mut *self;
3747        if this.inner.check_shutdown(cx) {
3748            this.is_terminated = true;
3749            return std::task::Poll::Ready(None);
3750        }
3751        if this.is_terminated {
3752            panic!("polled OpenTargetRequestStream after completion");
3753        }
3754        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3755            |bytes, handles| {
3756                match this.inner.channel().read_etc(cx, bytes, handles) {
3757                    std::task::Poll::Ready(Ok(())) => {}
3758                    std::task::Poll::Pending => return std::task::Poll::Pending,
3759                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3760                        this.is_terminated = true;
3761                        return std::task::Poll::Ready(None);
3762                    }
3763                    std::task::Poll::Ready(Err(e)) => {
3764                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3765                            e.into(),
3766                        ))));
3767                    }
3768                }
3769
3770                // A message has been received from the channel
3771                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3772
3773                std::task::Poll::Ready(Some(match header.ordinal {
3774                    0x6db0bc21c4aae764 => {
3775                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3776                        let mut req = fidl::new_empty!(
3777                            fidl::encoding::EmptyPayload,
3778                            fidl::encoding::DefaultFuchsiaResourceDialect
3779                        );
3780                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3781                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3782                        Ok(OpenTargetRequest::StrictOneWay { control_handle })
3783                    }
3784                    0xf894a7eb9cc29fc => {
3785                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3786                        let mut req = fidl::new_empty!(
3787                            fidl::encoding::EmptyPayload,
3788                            fidl::encoding::DefaultFuchsiaResourceDialect
3789                        );
3790                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3791                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3792                        Ok(OpenTargetRequest::FlexibleOneWay { control_handle })
3793                    }
3794                    0xdcf4cef19a1c542 => {
3795                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3796                        let mut req = fidl::new_empty!(
3797                            fidl::encoding::EmptyPayload,
3798                            fidl::encoding::DefaultFuchsiaResourceDialect
3799                        );
3800                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3801                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3802                        Ok(OpenTargetRequest::StrictTwoWay {
3803                            responder: OpenTargetStrictTwoWayResponder {
3804                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3805                                tx_id: header.tx_id,
3806                            },
3807                        })
3808                    }
3809                    0x79c7a7803c45e2e3 => {
3810                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3811                        let mut req = fidl::new_empty!(
3812                            fidl::encoding::EmptyPayload,
3813                            fidl::encoding::DefaultFuchsiaResourceDialect
3814                        );
3815                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3816                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3817                        Ok(OpenTargetRequest::StrictTwoWayFields {
3818                            responder: OpenTargetStrictTwoWayFieldsResponder {
3819                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3820                                tx_id: header.tx_id,
3821                            },
3822                        })
3823                    }
3824                    0x54259ed6c262fe88 => {
3825                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3826                        let mut req = fidl::new_empty!(
3827                            fidl::encoding::EmptyPayload,
3828                            fidl::encoding::DefaultFuchsiaResourceDialect
3829                        );
3830                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3831                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3832                        Ok(OpenTargetRequest::StrictTwoWayErr {
3833                            responder: OpenTargetStrictTwoWayErrResponder {
3834                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3835                                tx_id: header.tx_id,
3836                            },
3837                        })
3838                    }
3839                    0x7dbaa8538b552711 => {
3840                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3841                        let mut req = fidl::new_empty!(
3842                            fidl::encoding::EmptyPayload,
3843                            fidl::encoding::DefaultFuchsiaResourceDialect
3844                        );
3845                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3846                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3847                        Ok(OpenTargetRequest::StrictTwoWayFieldsErr {
3848                            responder: OpenTargetStrictTwoWayFieldsErrResponder {
3849                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3850                                tx_id: header.tx_id,
3851                            },
3852                        })
3853                    }
3854                    0x66552e68b99a0587 => {
3855                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3856                        let mut req = fidl::new_empty!(
3857                            fidl::encoding::EmptyPayload,
3858                            fidl::encoding::DefaultFuchsiaResourceDialect
3859                        );
3860                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3861                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3862                        Ok(OpenTargetRequest::FlexibleTwoWay {
3863                            responder: OpenTargetFlexibleTwoWayResponder {
3864                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3865                                tx_id: header.tx_id,
3866                            },
3867                        })
3868                    }
3869                    0x38b95648ac4e2ae4 => {
3870                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3871                        let mut req = fidl::new_empty!(
3872                            fidl::encoding::EmptyPayload,
3873                            fidl::encoding::DefaultFuchsiaResourceDialect
3874                        );
3875                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3876                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3877                        Ok(OpenTargetRequest::FlexibleTwoWayFields {
3878                            responder: OpenTargetFlexibleTwoWayFieldsResponder {
3879                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3880                                tx_id: header.tx_id,
3881                            },
3882                        })
3883                    }
3884                    0x6e144c6e0cf2147a => {
3885                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3886                        let mut req = fidl::new_empty!(
3887                            fidl::encoding::EmptyPayload,
3888                            fidl::encoding::DefaultFuchsiaResourceDialect
3889                        );
3890                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3891                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3892                        Ok(OpenTargetRequest::FlexibleTwoWayErr {
3893                            responder: OpenTargetFlexibleTwoWayErrResponder {
3894                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3895                                tx_id: header.tx_id,
3896                            },
3897                        })
3898                    }
3899                    0xe494147cda8024a => {
3900                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3901                        let mut req = fidl::new_empty!(
3902                            fidl::encoding::EmptyPayload,
3903                            fidl::encoding::DefaultFuchsiaResourceDialect
3904                        );
3905                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3906                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3907                        Ok(OpenTargetRequest::FlexibleTwoWayFieldsErr {
3908                            responder: OpenTargetFlexibleTwoWayFieldsErrResponder {
3909                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3910                                tx_id: header.tx_id,
3911                            },
3912                        })
3913                    }
3914                    _ if header.tx_id == 0
3915                        && header
3916                            .dynamic_flags()
3917                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3918                    {
3919                        Ok(OpenTargetRequest::_UnknownMethod {
3920                            ordinal: header.ordinal,
3921                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3922                            method_type: fidl::MethodType::OneWay,
3923                        })
3924                    }
3925                    _ if header
3926                        .dynamic_flags()
3927                        .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3928                    {
3929                        this.inner.send_framework_err(
3930                            fidl::encoding::FrameworkErr::UnknownMethod,
3931                            header.tx_id,
3932                            header.ordinal,
3933                            header.dynamic_flags(),
3934                            (bytes, handles),
3935                        )?;
3936                        Ok(OpenTargetRequest::_UnknownMethod {
3937                            ordinal: header.ordinal,
3938                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3939                            method_type: fidl::MethodType::TwoWay,
3940                        })
3941                    }
3942                    _ => Err(fidl::Error::UnknownOrdinal {
3943                        ordinal: header.ordinal,
3944                        protocol_name:
3945                            <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3946                    }),
3947                }))
3948            },
3949        )
3950    }
3951}
3952
3953#[derive(Debug)]
3954pub enum OpenTargetRequest {
3955    StrictOneWay {
3956        control_handle: OpenTargetControlHandle,
3957    },
3958    FlexibleOneWay {
3959        control_handle: OpenTargetControlHandle,
3960    },
3961    StrictTwoWay {
3962        responder: OpenTargetStrictTwoWayResponder,
3963    },
3964    StrictTwoWayFields {
3965        responder: OpenTargetStrictTwoWayFieldsResponder,
3966    },
3967    StrictTwoWayErr {
3968        responder: OpenTargetStrictTwoWayErrResponder,
3969    },
3970    StrictTwoWayFieldsErr {
3971        responder: OpenTargetStrictTwoWayFieldsErrResponder,
3972    },
3973    FlexibleTwoWay {
3974        responder: OpenTargetFlexibleTwoWayResponder,
3975    },
3976    FlexibleTwoWayFields {
3977        responder: OpenTargetFlexibleTwoWayFieldsResponder,
3978    },
3979    FlexibleTwoWayErr {
3980        responder: OpenTargetFlexibleTwoWayErrResponder,
3981    },
3982    FlexibleTwoWayFieldsErr {
3983        responder: OpenTargetFlexibleTwoWayFieldsErrResponder,
3984    },
3985    /// An interaction was received which does not match any known method.
3986    #[non_exhaustive]
3987    _UnknownMethod {
3988        /// Ordinal of the method that was called.
3989        ordinal: u64,
3990        control_handle: OpenTargetControlHandle,
3991        method_type: fidl::MethodType,
3992    },
3993}
3994
3995impl OpenTargetRequest {
3996    #[allow(irrefutable_let_patterns)]
3997    pub fn into_strict_one_way(self) -> Option<(OpenTargetControlHandle)> {
3998        if let OpenTargetRequest::StrictOneWay { control_handle } = self {
3999            Some((control_handle))
4000        } else {
4001            None
4002        }
4003    }
4004
4005    #[allow(irrefutable_let_patterns)]
4006    pub fn into_flexible_one_way(self) -> Option<(OpenTargetControlHandle)> {
4007        if let OpenTargetRequest::FlexibleOneWay { control_handle } = self {
4008            Some((control_handle))
4009        } else {
4010            None
4011        }
4012    }
4013
4014    #[allow(irrefutable_let_patterns)]
4015    pub fn into_strict_two_way(self) -> Option<(OpenTargetStrictTwoWayResponder)> {
4016        if let OpenTargetRequest::StrictTwoWay { responder } = self {
4017            Some((responder))
4018        } else {
4019            None
4020        }
4021    }
4022
4023    #[allow(irrefutable_let_patterns)]
4024    pub fn into_strict_two_way_fields(self) -> Option<(OpenTargetStrictTwoWayFieldsResponder)> {
4025        if let OpenTargetRequest::StrictTwoWayFields { responder } = self {
4026            Some((responder))
4027        } else {
4028            None
4029        }
4030    }
4031
4032    #[allow(irrefutable_let_patterns)]
4033    pub fn into_strict_two_way_err(self) -> Option<(OpenTargetStrictTwoWayErrResponder)> {
4034        if let OpenTargetRequest::StrictTwoWayErr { responder } = self {
4035            Some((responder))
4036        } else {
4037            None
4038        }
4039    }
4040
4041    #[allow(irrefutable_let_patterns)]
4042    pub fn into_strict_two_way_fields_err(
4043        self,
4044    ) -> Option<(OpenTargetStrictTwoWayFieldsErrResponder)> {
4045        if let OpenTargetRequest::StrictTwoWayFieldsErr { responder } = self {
4046            Some((responder))
4047        } else {
4048            None
4049        }
4050    }
4051
4052    #[allow(irrefutable_let_patterns)]
4053    pub fn into_flexible_two_way(self) -> Option<(OpenTargetFlexibleTwoWayResponder)> {
4054        if let OpenTargetRequest::FlexibleTwoWay { responder } = self {
4055            Some((responder))
4056        } else {
4057            None
4058        }
4059    }
4060
4061    #[allow(irrefutable_let_patterns)]
4062    pub fn into_flexible_two_way_fields(self) -> Option<(OpenTargetFlexibleTwoWayFieldsResponder)> {
4063        if let OpenTargetRequest::FlexibleTwoWayFields { responder } = self {
4064            Some((responder))
4065        } else {
4066            None
4067        }
4068    }
4069
4070    #[allow(irrefutable_let_patterns)]
4071    pub fn into_flexible_two_way_err(self) -> Option<(OpenTargetFlexibleTwoWayErrResponder)> {
4072        if let OpenTargetRequest::FlexibleTwoWayErr { responder } = self {
4073            Some((responder))
4074        } else {
4075            None
4076        }
4077    }
4078
4079    #[allow(irrefutable_let_patterns)]
4080    pub fn into_flexible_two_way_fields_err(
4081        self,
4082    ) -> Option<(OpenTargetFlexibleTwoWayFieldsErrResponder)> {
4083        if let OpenTargetRequest::FlexibleTwoWayFieldsErr { responder } = self {
4084            Some((responder))
4085        } else {
4086            None
4087        }
4088    }
4089
4090    /// Name of the method defined in FIDL
4091    pub fn method_name(&self) -> &'static str {
4092        match *self {
4093            OpenTargetRequest::StrictOneWay { .. } => "strict_one_way",
4094            OpenTargetRequest::FlexibleOneWay { .. } => "flexible_one_way",
4095            OpenTargetRequest::StrictTwoWay { .. } => "strict_two_way",
4096            OpenTargetRequest::StrictTwoWayFields { .. } => "strict_two_way_fields",
4097            OpenTargetRequest::StrictTwoWayErr { .. } => "strict_two_way_err",
4098            OpenTargetRequest::StrictTwoWayFieldsErr { .. } => "strict_two_way_fields_err",
4099            OpenTargetRequest::FlexibleTwoWay { .. } => "flexible_two_way",
4100            OpenTargetRequest::FlexibleTwoWayFields { .. } => "flexible_two_way_fields",
4101            OpenTargetRequest::FlexibleTwoWayErr { .. } => "flexible_two_way_err",
4102            OpenTargetRequest::FlexibleTwoWayFieldsErr { .. } => "flexible_two_way_fields_err",
4103            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::OneWay, .. } => {
4104                "unknown one-way method"
4105            }
4106            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::TwoWay, .. } => {
4107                "unknown two-way method"
4108            }
4109        }
4110    }
4111}
4112
4113#[derive(Debug, Clone)]
4114pub struct OpenTargetControlHandle {
4115    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4116}
4117
4118impl OpenTargetControlHandle {
4119    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
4120        self.inner.shutdown_with_epitaph(status.into())
4121    }
4122}
4123
4124impl fidl::endpoints::ControlHandle for OpenTargetControlHandle {
4125    fn shutdown(&self) {
4126        self.inner.shutdown()
4127    }
4128
4129    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
4130        self.inner.shutdown_with_epitaph(status)
4131    }
4132
4133    fn is_closed(&self) -> bool {
4134        self.inner.channel().is_closed()
4135    }
4136    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4137        self.inner.channel().on_closed()
4138    }
4139
4140    #[cfg(target_os = "fuchsia")]
4141    fn signal_peer(
4142        &self,
4143        clear_mask: zx::Signals,
4144        set_mask: zx::Signals,
4145    ) -> Result<(), zx_status::Status> {
4146        use fidl::Peered;
4147        self.inner.channel().signal_peer(clear_mask, set_mask)
4148    }
4149}
4150
4151impl OpenTargetControlHandle {
4152    pub fn send_strict_event(&self) -> Result<(), fidl::Error> {
4153        self.inner.send::<fidl::encoding::EmptyPayload>(
4154            (),
4155            0,
4156            0x2b291d74321e77a0,
4157            fidl::encoding::DynamicFlags::empty(),
4158        )
4159    }
4160
4161    pub fn send_flexible_event(&self) -> Result<(), fidl::Error> {
4162        self.inner.send::<fidl::encoding::EmptyPayload>(
4163            (),
4164            0,
4165            0x50d4688058898898,
4166            fidl::encoding::DynamicFlags::FLEXIBLE,
4167        )
4168    }
4169}
4170
4171#[must_use = "FIDL methods require a response to be sent"]
4172#[derive(Debug)]
4173pub struct OpenTargetStrictTwoWayResponder {
4174    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4175    tx_id: u32,
4176}
4177
4178/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4179/// if the responder is dropped without sending a response, so that the client
4180/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4181impl std::ops::Drop for OpenTargetStrictTwoWayResponder {
4182    fn drop(&mut self) {
4183        self.control_handle.shutdown();
4184        // Safety: drops once, never accessed again
4185        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4186    }
4187}
4188
4189impl fidl::endpoints::Responder for OpenTargetStrictTwoWayResponder {
4190    type ControlHandle = OpenTargetControlHandle;
4191
4192    fn control_handle(&self) -> &OpenTargetControlHandle {
4193        &self.control_handle
4194    }
4195
4196    fn drop_without_shutdown(mut self) {
4197        // Safety: drops once, never accessed again due to mem::forget
4198        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4199        // Prevent Drop from running (which would shut down the channel)
4200        std::mem::forget(self);
4201    }
4202}
4203
4204impl OpenTargetStrictTwoWayResponder {
4205    /// Sends a response to the FIDL transaction.
4206    ///
4207    /// Sets the channel to shutdown if an error occurs.
4208    pub fn send(self) -> Result<(), fidl::Error> {
4209        let _result = self.send_raw();
4210        if _result.is_err() {
4211            self.control_handle.shutdown();
4212        }
4213        self.drop_without_shutdown();
4214        _result
4215    }
4216
4217    /// Similar to "send" but does not shutdown the channel if an error occurs.
4218    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4219        let _result = self.send_raw();
4220        self.drop_without_shutdown();
4221        _result
4222    }
4223
4224    fn send_raw(&self) -> Result<(), fidl::Error> {
4225        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4226            (),
4227            self.tx_id,
4228            0xdcf4cef19a1c542,
4229            fidl::encoding::DynamicFlags::empty(),
4230        )
4231    }
4232}
4233
4234#[must_use = "FIDL methods require a response to be sent"]
4235#[derive(Debug)]
4236pub struct OpenTargetStrictTwoWayFieldsResponder {
4237    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4238    tx_id: u32,
4239}
4240
4241/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4242/// if the responder is dropped without sending a response, so that the client
4243/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4244impl std::ops::Drop for OpenTargetStrictTwoWayFieldsResponder {
4245    fn drop(&mut self) {
4246        self.control_handle.shutdown();
4247        // Safety: drops once, never accessed again
4248        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4249    }
4250}
4251
4252impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsResponder {
4253    type ControlHandle = OpenTargetControlHandle;
4254
4255    fn control_handle(&self) -> &OpenTargetControlHandle {
4256        &self.control_handle
4257    }
4258
4259    fn drop_without_shutdown(mut self) {
4260        // Safety: drops once, never accessed again due to mem::forget
4261        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4262        // Prevent Drop from running (which would shut down the channel)
4263        std::mem::forget(self);
4264    }
4265}
4266
4267impl OpenTargetStrictTwoWayFieldsResponder {
4268    /// Sends a response to the FIDL transaction.
4269    ///
4270    /// Sets the channel to shutdown if an error occurs.
4271    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4272        let _result = self.send_raw(some_field);
4273        if _result.is_err() {
4274            self.control_handle.shutdown();
4275        }
4276        self.drop_without_shutdown();
4277        _result
4278    }
4279
4280    /// Similar to "send" but does not shutdown the channel if an error occurs.
4281    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4282        let _result = self.send_raw(some_field);
4283        self.drop_without_shutdown();
4284        _result
4285    }
4286
4287    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4288        self.control_handle.inner.send::<NonEmptyPayload>(
4289            (some_field,),
4290            self.tx_id,
4291            0x79c7a7803c45e2e3,
4292            fidl::encoding::DynamicFlags::empty(),
4293        )
4294    }
4295}
4296
4297#[must_use = "FIDL methods require a response to be sent"]
4298#[derive(Debug)]
4299pub struct OpenTargetStrictTwoWayErrResponder {
4300    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4301    tx_id: u32,
4302}
4303
4304/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4305/// if the responder is dropped without sending a response, so that the client
4306/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4307impl std::ops::Drop for OpenTargetStrictTwoWayErrResponder {
4308    fn drop(&mut self) {
4309        self.control_handle.shutdown();
4310        // Safety: drops once, never accessed again
4311        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4312    }
4313}
4314
4315impl fidl::endpoints::Responder for OpenTargetStrictTwoWayErrResponder {
4316    type ControlHandle = OpenTargetControlHandle;
4317
4318    fn control_handle(&self) -> &OpenTargetControlHandle {
4319        &self.control_handle
4320    }
4321
4322    fn drop_without_shutdown(mut self) {
4323        // Safety: drops once, never accessed again due to mem::forget
4324        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4325        // Prevent Drop from running (which would shut down the channel)
4326        std::mem::forget(self);
4327    }
4328}
4329
4330impl OpenTargetStrictTwoWayErrResponder {
4331    /// Sends a response to the FIDL transaction.
4332    ///
4333    /// Sets the channel to shutdown if an error occurs.
4334    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4335        let _result = self.send_raw(result);
4336        if _result.is_err() {
4337            self.control_handle.shutdown();
4338        }
4339        self.drop_without_shutdown();
4340        _result
4341    }
4342
4343    /// Similar to "send" but does not shutdown the channel if an error occurs.
4344    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4345        let _result = self.send_raw(result);
4346        self.drop_without_shutdown();
4347        _result
4348    }
4349
4350    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4351        self.control_handle
4352            .inner
4353            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4354                result,
4355                self.tx_id,
4356                0x54259ed6c262fe88,
4357                fidl::encoding::DynamicFlags::empty(),
4358            )
4359    }
4360}
4361
4362#[must_use = "FIDL methods require a response to be sent"]
4363#[derive(Debug)]
4364pub struct OpenTargetStrictTwoWayFieldsErrResponder {
4365    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4366    tx_id: u32,
4367}
4368
4369/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4370/// if the responder is dropped without sending a response, so that the client
4371/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4372impl std::ops::Drop for OpenTargetStrictTwoWayFieldsErrResponder {
4373    fn drop(&mut self) {
4374        self.control_handle.shutdown();
4375        // Safety: drops once, never accessed again
4376        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4377    }
4378}
4379
4380impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsErrResponder {
4381    type ControlHandle = OpenTargetControlHandle;
4382
4383    fn control_handle(&self) -> &OpenTargetControlHandle {
4384        &self.control_handle
4385    }
4386
4387    fn drop_without_shutdown(mut self) {
4388        // Safety: drops once, never accessed again due to mem::forget
4389        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4390        // Prevent Drop from running (which would shut down the channel)
4391        std::mem::forget(self);
4392    }
4393}
4394
4395impl OpenTargetStrictTwoWayFieldsErrResponder {
4396    /// Sends a response to the FIDL transaction.
4397    ///
4398    /// Sets the channel to shutdown if an error occurs.
4399    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4400        let _result = self.send_raw(result);
4401        if _result.is_err() {
4402            self.control_handle.shutdown();
4403        }
4404        self.drop_without_shutdown();
4405        _result
4406    }
4407
4408    /// Similar to "send" but does not shutdown the channel if an error occurs.
4409    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4410        let _result = self.send_raw(result);
4411        self.drop_without_shutdown();
4412        _result
4413    }
4414
4415    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4416        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
4417            result.map(|some_field| (some_field,)),
4418            self.tx_id,
4419            0x7dbaa8538b552711,
4420            fidl::encoding::DynamicFlags::empty(),
4421        )
4422    }
4423}
4424
4425#[must_use = "FIDL methods require a response to be sent"]
4426#[derive(Debug)]
4427pub struct OpenTargetFlexibleTwoWayResponder {
4428    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4429    tx_id: u32,
4430}
4431
4432/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4433/// if the responder is dropped without sending a response, so that the client
4434/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4435impl std::ops::Drop for OpenTargetFlexibleTwoWayResponder {
4436    fn drop(&mut self) {
4437        self.control_handle.shutdown();
4438        // Safety: drops once, never accessed again
4439        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4440    }
4441}
4442
4443impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayResponder {
4444    type ControlHandle = OpenTargetControlHandle;
4445
4446    fn control_handle(&self) -> &OpenTargetControlHandle {
4447        &self.control_handle
4448    }
4449
4450    fn drop_without_shutdown(mut self) {
4451        // Safety: drops once, never accessed again due to mem::forget
4452        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4453        // Prevent Drop from running (which would shut down the channel)
4454        std::mem::forget(self);
4455    }
4456}
4457
4458impl OpenTargetFlexibleTwoWayResponder {
4459    /// Sends a response to the FIDL transaction.
4460    ///
4461    /// Sets the channel to shutdown if an error occurs.
4462    pub fn send(self) -> Result<(), fidl::Error> {
4463        let _result = self.send_raw();
4464        if _result.is_err() {
4465            self.control_handle.shutdown();
4466        }
4467        self.drop_without_shutdown();
4468        _result
4469    }
4470
4471    /// Similar to "send" but does not shutdown the channel if an error occurs.
4472    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4473        let _result = self.send_raw();
4474        self.drop_without_shutdown();
4475        _result
4476    }
4477
4478    fn send_raw(&self) -> Result<(), fidl::Error> {
4479        self.control_handle.inner.send::<fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>>(
4480            fidl::encoding::Flexible::new(()),
4481            self.tx_id,
4482            0x66552e68b99a0587,
4483            fidl::encoding::DynamicFlags::FLEXIBLE,
4484        )
4485    }
4486}
4487
4488#[must_use = "FIDL methods require a response to be sent"]
4489#[derive(Debug)]
4490pub struct OpenTargetFlexibleTwoWayFieldsResponder {
4491    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4492    tx_id: u32,
4493}
4494
4495/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4496/// if the responder is dropped without sending a response, so that the client
4497/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4498impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsResponder {
4499    fn drop(&mut self) {
4500        self.control_handle.shutdown();
4501        // Safety: drops once, never accessed again
4502        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4503    }
4504}
4505
4506impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsResponder {
4507    type ControlHandle = OpenTargetControlHandle;
4508
4509    fn control_handle(&self) -> &OpenTargetControlHandle {
4510        &self.control_handle
4511    }
4512
4513    fn drop_without_shutdown(mut self) {
4514        // Safety: drops once, never accessed again due to mem::forget
4515        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4516        // Prevent Drop from running (which would shut down the channel)
4517        std::mem::forget(self);
4518    }
4519}
4520
4521impl OpenTargetFlexibleTwoWayFieldsResponder {
4522    /// Sends a response to the FIDL transaction.
4523    ///
4524    /// Sets the channel to shutdown if an error occurs.
4525    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4526        let _result = self.send_raw(some_field);
4527        if _result.is_err() {
4528            self.control_handle.shutdown();
4529        }
4530        self.drop_without_shutdown();
4531        _result
4532    }
4533
4534    /// Similar to "send" but does not shutdown the channel if an error occurs.
4535    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4536        let _result = self.send_raw(some_field);
4537        self.drop_without_shutdown();
4538        _result
4539    }
4540
4541    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4542        self.control_handle.inner.send::<fidl::encoding::FlexibleType<NonEmptyPayload>>(
4543            fidl::encoding::Flexible::new((some_field,)),
4544            self.tx_id,
4545            0x38b95648ac4e2ae4,
4546            fidl::encoding::DynamicFlags::FLEXIBLE,
4547        )
4548    }
4549}
4550
4551#[must_use = "FIDL methods require a response to be sent"]
4552#[derive(Debug)]
4553pub struct OpenTargetFlexibleTwoWayErrResponder {
4554    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4555    tx_id: u32,
4556}
4557
4558/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4559/// if the responder is dropped without sending a response, so that the client
4560/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4561impl std::ops::Drop for OpenTargetFlexibleTwoWayErrResponder {
4562    fn drop(&mut self) {
4563        self.control_handle.shutdown();
4564        // Safety: drops once, never accessed again
4565        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4566    }
4567}
4568
4569impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayErrResponder {
4570    type ControlHandle = OpenTargetControlHandle;
4571
4572    fn control_handle(&self) -> &OpenTargetControlHandle {
4573        &self.control_handle
4574    }
4575
4576    fn drop_without_shutdown(mut self) {
4577        // Safety: drops once, never accessed again due to mem::forget
4578        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4579        // Prevent Drop from running (which would shut down the channel)
4580        std::mem::forget(self);
4581    }
4582}
4583
4584impl OpenTargetFlexibleTwoWayErrResponder {
4585    /// Sends a response to the FIDL transaction.
4586    ///
4587    /// Sets the channel to shutdown if an error occurs.
4588    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4589        let _result = self.send_raw(result);
4590        if _result.is_err() {
4591            self.control_handle.shutdown();
4592        }
4593        self.drop_without_shutdown();
4594        _result
4595    }
4596
4597    /// Similar to "send" but does not shutdown the channel if an error occurs.
4598    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4599        let _result = self.send_raw(result);
4600        self.drop_without_shutdown();
4601        _result
4602    }
4603
4604    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4605        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4606            fidl::encoding::EmptyStruct,
4607            i32,
4608        >>(
4609            fidl::encoding::FlexibleResult::new(result),
4610            self.tx_id,
4611            0x6e144c6e0cf2147a,
4612            fidl::encoding::DynamicFlags::FLEXIBLE,
4613        )
4614    }
4615}
4616
4617#[must_use = "FIDL methods require a response to be sent"]
4618#[derive(Debug)]
4619pub struct OpenTargetFlexibleTwoWayFieldsErrResponder {
4620    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4621    tx_id: u32,
4622}
4623
4624/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4625/// if the responder is dropped without sending a response, so that the client
4626/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4627impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsErrResponder {
4628    fn drop(&mut self) {
4629        self.control_handle.shutdown();
4630        // Safety: drops once, never accessed again
4631        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4632    }
4633}
4634
4635impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsErrResponder {
4636    type ControlHandle = OpenTargetControlHandle;
4637
4638    fn control_handle(&self) -> &OpenTargetControlHandle {
4639        &self.control_handle
4640    }
4641
4642    fn drop_without_shutdown(mut self) {
4643        // Safety: drops once, never accessed again due to mem::forget
4644        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4645        // Prevent Drop from running (which would shut down the channel)
4646        std::mem::forget(self);
4647    }
4648}
4649
4650impl OpenTargetFlexibleTwoWayFieldsErrResponder {
4651    /// Sends a response to the FIDL transaction.
4652    ///
4653    /// Sets the channel to shutdown if an error occurs.
4654    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4655        let _result = self.send_raw(result);
4656        if _result.is_err() {
4657            self.control_handle.shutdown();
4658        }
4659        self.drop_without_shutdown();
4660        _result
4661    }
4662
4663    /// Similar to "send" but does not shutdown the channel if an error occurs.
4664    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4665        let _result = self.send_raw(result);
4666        self.drop_without_shutdown();
4667        _result
4668    }
4669
4670    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4671        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>>(
4672            fidl::encoding::FlexibleResult::new(result.map(|some_field| (some_field,))),
4673            self.tx_id,
4674            0xe494147cda8024a,
4675            fidl::encoding::DynamicFlags::FLEXIBLE,
4676        )
4677    }
4678}
4679
4680#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4681pub struct OpenTargetEventReporterMarker;
4682
4683impl fidl::endpoints::ProtocolMarker for OpenTargetEventReporterMarker {
4684    type Proxy = OpenTargetEventReporterProxy;
4685    type RequestStream = OpenTargetEventReporterRequestStream;
4686    #[cfg(target_os = "fuchsia")]
4687    type SynchronousProxy = OpenTargetEventReporterSynchronousProxy;
4688
4689    const DEBUG_NAME: &'static str = "(anonymous) OpenTargetEventReporter";
4690}
4691
4692pub trait OpenTargetEventReporterProxyInterface: Send + Sync {
4693    fn r#report_event(&self, payload: &OpenTargetEventReport) -> Result<(), fidl::Error>;
4694}
4695#[derive(Debug)]
4696#[cfg(target_os = "fuchsia")]
4697pub struct OpenTargetEventReporterSynchronousProxy {
4698    client: fidl::client::sync::Client,
4699}
4700
4701#[cfg(target_os = "fuchsia")]
4702impl fidl::endpoints::SynchronousProxy for OpenTargetEventReporterSynchronousProxy {
4703    type Proxy = OpenTargetEventReporterProxy;
4704    type Protocol = OpenTargetEventReporterMarker;
4705
4706    fn from_channel(inner: fidl::Channel) -> Self {
4707        Self::new(inner)
4708    }
4709
4710    fn into_channel(self) -> fidl::Channel {
4711        self.client.into_channel()
4712    }
4713
4714    fn as_channel(&self) -> &fidl::Channel {
4715        self.client.as_channel()
4716    }
4717}
4718
4719#[cfg(target_os = "fuchsia")]
4720impl OpenTargetEventReporterSynchronousProxy {
4721    pub fn new(channel: fidl::Channel) -> Self {
4722        Self { client: fidl::client::sync::Client::new(channel) }
4723    }
4724
4725    pub fn into_channel(self) -> fidl::Channel {
4726        self.client.into_channel()
4727    }
4728
4729    /// Waits until an event arrives and returns it. It is safe for other
4730    /// threads to make concurrent requests while waiting for an event.
4731    pub fn wait_for_event(
4732        &self,
4733        deadline: zx::MonotonicInstant,
4734    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4735        OpenTargetEventReporterEvent::decode(
4736            self.client.wait_for_event::<OpenTargetEventReporterMarker>(deadline)?,
4737        )
4738    }
4739
4740    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4741        self.client.send::<OpenTargetEventReport>(
4742            payload,
4743            0x70ab38ec0248964a,
4744            fidl::encoding::DynamicFlags::empty(),
4745        )
4746    }
4747}
4748
4749#[cfg(target_os = "fuchsia")]
4750impl From<OpenTargetEventReporterSynchronousProxy> for zx::NullableHandle {
4751    fn from(value: OpenTargetEventReporterSynchronousProxy) -> Self {
4752        value.into_channel().into()
4753    }
4754}
4755
4756#[cfg(target_os = "fuchsia")]
4757impl From<fidl::Channel> for OpenTargetEventReporterSynchronousProxy {
4758    fn from(value: fidl::Channel) -> Self {
4759        Self::new(value)
4760    }
4761}
4762
4763#[cfg(target_os = "fuchsia")]
4764impl fidl::endpoints::FromClient for OpenTargetEventReporterSynchronousProxy {
4765    type Protocol = OpenTargetEventReporterMarker;
4766
4767    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>) -> Self {
4768        Self::new(value.into_channel())
4769    }
4770}
4771
4772#[derive(Debug, Clone)]
4773pub struct OpenTargetEventReporterProxy {
4774    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
4775}
4776
4777impl fidl::endpoints::Proxy for OpenTargetEventReporterProxy {
4778    type Protocol = OpenTargetEventReporterMarker;
4779
4780    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
4781        Self::new(inner)
4782    }
4783
4784    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
4785        self.client.into_channel().map_err(|client| Self { client })
4786    }
4787
4788    fn as_channel(&self) -> &::fidl::AsyncChannel {
4789        self.client.as_channel()
4790    }
4791}
4792
4793impl OpenTargetEventReporterProxy {
4794    /// Create a new Proxy for fidl.clientsuite/OpenTargetEventReporter.
4795    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
4796        let protocol_name =
4797            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4798        Self { client: fidl::client::Client::new(channel, protocol_name) }
4799    }
4800
4801    /// Get a Stream of events from the remote end of the protocol.
4802    ///
4803    /// # Panics
4804    ///
4805    /// Panics if the event stream was already taken.
4806    pub fn take_event_stream(&self) -> OpenTargetEventReporterEventStream {
4807        OpenTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
4808    }
4809
4810    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4811        OpenTargetEventReporterProxyInterface::r#report_event(self, payload)
4812    }
4813}
4814
4815impl OpenTargetEventReporterProxyInterface for OpenTargetEventReporterProxy {
4816    fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4817        self.client.send::<OpenTargetEventReport>(
4818            payload,
4819            0x70ab38ec0248964a,
4820            fidl::encoding::DynamicFlags::empty(),
4821        )
4822    }
4823}
4824
4825pub struct OpenTargetEventReporterEventStream {
4826    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
4827}
4828
4829impl std::marker::Unpin for OpenTargetEventReporterEventStream {}
4830
4831impl futures::stream::FusedStream for OpenTargetEventReporterEventStream {
4832    fn is_terminated(&self) -> bool {
4833        self.event_receiver.is_terminated()
4834    }
4835}
4836
4837impl futures::Stream for OpenTargetEventReporterEventStream {
4838    type Item = Result<OpenTargetEventReporterEvent, fidl::Error>;
4839
4840    fn poll_next(
4841        mut self: std::pin::Pin<&mut Self>,
4842        cx: &mut std::task::Context<'_>,
4843    ) -> std::task::Poll<Option<Self::Item>> {
4844        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4845            &mut self.event_receiver,
4846            cx
4847        )?) {
4848            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEventReporterEvent::decode(buf))),
4849            None => std::task::Poll::Ready(None),
4850        }
4851    }
4852}
4853
4854#[derive(Debug)]
4855pub enum OpenTargetEventReporterEvent {}
4856
4857impl OpenTargetEventReporterEvent {
4858    /// Decodes a message buffer as a [`OpenTargetEventReporterEvent`].
4859    fn decode(
4860        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4861    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4862        let (bytes, _handles) = buf.split_mut();
4863        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4864        debug_assert_eq!(tx_header.tx_id, 0);
4865        match tx_header.ordinal {
4866            _ => Err(fidl::Error::UnknownOrdinal {
4867                ordinal: tx_header.ordinal,
4868                protocol_name:
4869                    <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4870            }),
4871        }
4872    }
4873}
4874
4875/// A Stream of incoming requests for fidl.clientsuite/OpenTargetEventReporter.
4876pub struct OpenTargetEventReporterRequestStream {
4877    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4878    is_terminated: bool,
4879}
4880
4881impl std::marker::Unpin for OpenTargetEventReporterRequestStream {}
4882
4883impl futures::stream::FusedStream for OpenTargetEventReporterRequestStream {
4884    fn is_terminated(&self) -> bool {
4885        self.is_terminated
4886    }
4887}
4888
4889impl fidl::endpoints::RequestStream for OpenTargetEventReporterRequestStream {
4890    type Protocol = OpenTargetEventReporterMarker;
4891    type ControlHandle = OpenTargetEventReporterControlHandle;
4892
4893    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
4894        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4895    }
4896
4897    fn control_handle(&self) -> Self::ControlHandle {
4898        OpenTargetEventReporterControlHandle { inner: self.inner.clone() }
4899    }
4900
4901    fn into_inner(
4902        self,
4903    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
4904    {
4905        (self.inner, self.is_terminated)
4906    }
4907
4908    fn from_inner(
4909        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4910        is_terminated: bool,
4911    ) -> Self {
4912        Self { inner, is_terminated }
4913    }
4914}
4915
4916impl futures::Stream for OpenTargetEventReporterRequestStream {
4917    type Item = Result<OpenTargetEventReporterRequest, fidl::Error>;
4918
4919    fn poll_next(
4920        mut self: std::pin::Pin<&mut Self>,
4921        cx: &mut std::task::Context<'_>,
4922    ) -> std::task::Poll<Option<Self::Item>> {
4923        let this = &mut *self;
4924        if this.inner.check_shutdown(cx) {
4925            this.is_terminated = true;
4926            return std::task::Poll::Ready(None);
4927        }
4928        if this.is_terminated {
4929            panic!("polled OpenTargetEventReporterRequestStream after completion");
4930        }
4931        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
4932            |bytes, handles| {
4933                match this.inner.channel().read_etc(cx, bytes, handles) {
4934                    std::task::Poll::Ready(Ok(())) => {}
4935                    std::task::Poll::Pending => return std::task::Poll::Pending,
4936                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
4937                        this.is_terminated = true;
4938                        return std::task::Poll::Ready(None);
4939                    }
4940                    std::task::Poll::Ready(Err(e)) => {
4941                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4942                            e.into(),
4943                        ))));
4944                    }
4945                }
4946
4947                // A message has been received from the channel
4948                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4949
4950                std::task::Poll::Ready(Some(match header.ordinal {
4951                0x70ab38ec0248964a => {
4952                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4953                    let mut req = fidl::new_empty!(OpenTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
4954                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<OpenTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
4955                    let control_handle = OpenTargetEventReporterControlHandle {
4956                        inner: this.inner.clone(),
4957                    };
4958                    Ok(OpenTargetEventReporterRequest::ReportEvent {payload: req,
4959                        control_handle,
4960                    })
4961                }
4962                _ => Err(fidl::Error::UnknownOrdinal {
4963                    ordinal: header.ordinal,
4964                    protocol_name: <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4965                }),
4966            }))
4967            },
4968        )
4969    }
4970}
4971
4972#[derive(Debug)]
4973pub enum OpenTargetEventReporterRequest {
4974    ReportEvent {
4975        payload: OpenTargetEventReport,
4976        control_handle: OpenTargetEventReporterControlHandle,
4977    },
4978}
4979
4980impl OpenTargetEventReporterRequest {
4981    #[allow(irrefutable_let_patterns)]
4982    pub fn into_report_event(
4983        self,
4984    ) -> Option<(OpenTargetEventReport, OpenTargetEventReporterControlHandle)> {
4985        if let OpenTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
4986            Some((payload, control_handle))
4987        } else {
4988            None
4989        }
4990    }
4991
4992    /// Name of the method defined in FIDL
4993    pub fn method_name(&self) -> &'static str {
4994        match *self {
4995            OpenTargetEventReporterRequest::ReportEvent { .. } => "report_event",
4996        }
4997    }
4998}
4999
5000#[derive(Debug, Clone)]
5001pub struct OpenTargetEventReporterControlHandle {
5002    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
5003}
5004
5005impl OpenTargetEventReporterControlHandle {
5006    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
5007        self.inner.shutdown_with_epitaph(status.into())
5008    }
5009}
5010
5011impl fidl::endpoints::ControlHandle for OpenTargetEventReporterControlHandle {
5012    fn shutdown(&self) {
5013        self.inner.shutdown()
5014    }
5015
5016    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
5017        self.inner.shutdown_with_epitaph(status)
5018    }
5019
5020    fn is_closed(&self) -> bool {
5021        self.inner.channel().is_closed()
5022    }
5023    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
5024        self.inner.channel().on_closed()
5025    }
5026
5027    #[cfg(target_os = "fuchsia")]
5028    fn signal_peer(
5029        &self,
5030        clear_mask: zx::Signals,
5031        set_mask: zx::Signals,
5032    ) -> Result<(), zx_status::Status> {
5033        use fidl::Peered;
5034        self.inner.channel().signal_peer(clear_mask, set_mask)
5035    }
5036}
5037
5038impl OpenTargetEventReporterControlHandle {}
5039
5040#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
5041pub struct RunnerMarker;
5042
5043impl fidl::endpoints::ProtocolMarker for RunnerMarker {
5044    type Proxy = RunnerProxy;
5045    type RequestStream = RunnerRequestStream;
5046    #[cfg(target_os = "fuchsia")]
5047    type SynchronousProxy = RunnerSynchronousProxy;
5048
5049    const DEBUG_NAME: &'static str = "fidl.clientsuite.Runner";
5050}
5051impl fidl::endpoints::DiscoverableProtocolMarker for RunnerMarker {}
5052
5053pub trait RunnerProxyInterface: Send + Sync {
5054    type GetVersionResponseFut: std::future::Future<Output = Result<u64, fidl::Error>> + Send;
5055    fn r#get_version(&self) -> Self::GetVersionResponseFut;
5056    type IsTestEnabledResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
5057    fn r#is_test_enabled(&self, test: Test) -> Self::IsTestEnabledResponseFut;
5058    type CheckAliveResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5059    fn r#check_alive(&self) -> Self::CheckAliveResponseFut;
5060    type GetBindingsPropertiesResponseFut: std::future::Future<Output = Result<BindingsProperties, fidl::Error>>
5061        + Send;
5062    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut;
5063    type CallTwoWayNoPayloadResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5064        + Send;
5065    fn r#call_two_way_no_payload(
5066        &self,
5067        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5068    ) -> Self::CallTwoWayNoPayloadResponseFut;
5069    type CallTwoWayStructPayloadResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5070        + Send;
5071    fn r#call_two_way_struct_payload(
5072        &self,
5073        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5074    ) -> Self::CallTwoWayStructPayloadResponseFut;
5075    type CallTwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TableResultClassification, fidl::Error>>
5076        + Send;
5077    fn r#call_two_way_table_payload(
5078        &self,
5079        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5080    ) -> Self::CallTwoWayTablePayloadResponseFut;
5081    type CallTwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionResultClassification, fidl::Error>>
5082        + Send;
5083    fn r#call_two_way_union_payload(
5084        &self,
5085        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5086    ) -> Self::CallTwoWayUnionPayloadResponseFut;
5087    type CallTwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5088        + Send;
5089    fn r#call_two_way_struct_payload_err(
5090        &self,
5091        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5092    ) -> Self::CallTwoWayStructPayloadErrResponseFut;
5093    type CallTwoWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5094        + Send;
5095    fn r#call_two_way_struct_request(
5096        &self,
5097        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5098        request: &NonEmptyPayload,
5099    ) -> Self::CallTwoWayStructRequestResponseFut;
5100    type CallTwoWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5101        + Send;
5102    fn r#call_two_way_table_request(
5103        &self,
5104        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5105        request: &TablePayload,
5106    ) -> Self::CallTwoWayTableRequestResponseFut;
5107    type CallTwoWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5108        + Send;
5109    fn r#call_two_way_union_request(
5110        &self,
5111        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5112        request: &UnionPayload,
5113    ) -> Self::CallTwoWayUnionRequestResponseFut;
5114    type CallOneWayNoRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5115        + Send;
5116    fn r#call_one_way_no_request(
5117        &self,
5118        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5119    ) -> Self::CallOneWayNoRequestResponseFut;
5120    type CallOneWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5121        + Send;
5122    fn r#call_one_way_struct_request(
5123        &self,
5124        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5125        request: &NonEmptyPayload,
5126    ) -> Self::CallOneWayStructRequestResponseFut;
5127    type CallOneWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5128        + Send;
5129    fn r#call_one_way_table_request(
5130        &self,
5131        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5132        request: &TablePayload,
5133    ) -> Self::CallOneWayTableRequestResponseFut;
5134    type CallOneWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5135        + Send;
5136    fn r#call_one_way_union_request(
5137        &self,
5138        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5139        request: &UnionPayload,
5140    ) -> Self::CallOneWayUnionRequestResponseFut;
5141    type CallStrictOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5142        + Send;
5143    fn r#call_strict_one_way(
5144        &self,
5145        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5146    ) -> Self::CallStrictOneWayResponseFut;
5147    type CallFlexibleOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5148        + Send;
5149    fn r#call_flexible_one_way(
5150        &self,
5151        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5152    ) -> Self::CallFlexibleOneWayResponseFut;
5153    type CallStrictTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5154        + Send;
5155    fn r#call_strict_two_way(
5156        &self,
5157        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5158    ) -> Self::CallStrictTwoWayResponseFut;
5159    type CallStrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5160        + Send;
5161    fn r#call_strict_two_way_fields(
5162        &self,
5163        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5164    ) -> Self::CallStrictTwoWayFieldsResponseFut;
5165    type CallStrictTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5166        + Send;
5167    fn r#call_strict_two_way_err(
5168        &self,
5169        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5170    ) -> Self::CallStrictTwoWayErrResponseFut;
5171    type CallStrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5172        + Send;
5173    fn r#call_strict_two_way_fields_err(
5174        &self,
5175        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5176    ) -> Self::CallStrictTwoWayFieldsErrResponseFut;
5177    type CallFlexibleTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5178        + Send;
5179    fn r#call_flexible_two_way(
5180        &self,
5181        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5182    ) -> Self::CallFlexibleTwoWayResponseFut;
5183    type CallFlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5184        + Send;
5185    fn r#call_flexible_two_way_fields(
5186        &self,
5187        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5188    ) -> Self::CallFlexibleTwoWayFieldsResponseFut;
5189    type CallFlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5190        + Send;
5191    fn r#call_flexible_two_way_err(
5192        &self,
5193        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5194    ) -> Self::CallFlexibleTwoWayErrResponseFut;
5195    type CallFlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5196        + Send;
5197    fn r#call_flexible_two_way_fields_err(
5198        &self,
5199        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5200    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut;
5201    type ReceiveClosedEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
5202        + Send;
5203    fn r#receive_closed_events(
5204        &self,
5205        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5206        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5207    ) -> Self::ReceiveClosedEventsResponseFut;
5208    type ReceiveAjarEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5209    fn r#receive_ajar_events(
5210        &self,
5211        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5212        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5213    ) -> Self::ReceiveAjarEventsResponseFut;
5214    type ReceiveOpenEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5215    fn r#receive_open_events(
5216        &self,
5217        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5218        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5219    ) -> Self::ReceiveOpenEventsResponseFut;
5220}
5221#[derive(Debug)]
5222#[cfg(target_os = "fuchsia")]
5223pub struct RunnerSynchronousProxy {
5224    client: fidl::client::sync::Client,
5225}
5226
5227#[cfg(target_os = "fuchsia")]
5228impl fidl::endpoints::SynchronousProxy for RunnerSynchronousProxy {
5229    type Proxy = RunnerProxy;
5230    type Protocol = RunnerMarker;
5231
5232    fn from_channel(inner: fidl::Channel) -> Self {
5233        Self::new(inner)
5234    }
5235
5236    fn into_channel(self) -> fidl::Channel {
5237        self.client.into_channel()
5238    }
5239
5240    fn as_channel(&self) -> &fidl::Channel {
5241        self.client.as_channel()
5242    }
5243}
5244
5245#[cfg(target_os = "fuchsia")]
5246impl RunnerSynchronousProxy {
5247    pub fn new(channel: fidl::Channel) -> Self {
5248        Self { client: fidl::client::sync::Client::new(channel) }
5249    }
5250
5251    pub fn into_channel(self) -> fidl::Channel {
5252        self.client.into_channel()
5253    }
5254
5255    /// Waits until an event arrives and returns it. It is safe for other
5256    /// threads to make concurrent requests while waiting for an event.
5257    pub fn wait_for_event(
5258        &self,
5259        deadline: zx::MonotonicInstant,
5260    ) -> Result<RunnerEvent, fidl::Error> {
5261        RunnerEvent::decode(self.client.wait_for_event::<RunnerMarker>(deadline)?)
5262    }
5263
5264    pub fn r#get_version(&self, ___deadline: zx::MonotonicInstant) -> Result<u64, fidl::Error> {
5265        let _response = self
5266            .client
5267            .send_query::<fidl::encoding::EmptyPayload, RunnerGetVersionResponse, RunnerMarker>(
5268                (),
5269                0x555d1430b913cdd4,
5270                fidl::encoding::DynamicFlags::empty(),
5271                ___deadline,
5272            )?;
5273        Ok(_response.version)
5274    }
5275
5276    pub fn r#is_test_enabled(
5277        &self,
5278        mut test: Test,
5279        ___deadline: zx::MonotonicInstant,
5280    ) -> Result<bool, fidl::Error> {
5281        let _response = self
5282            .client
5283            .send_query::<RunnerIsTestEnabledRequest, RunnerIsTestEnabledResponse, RunnerMarker>(
5284                (test,),
5285                0x755bc493368d7c50,
5286                fidl::encoding::DynamicFlags::empty(),
5287                ___deadline,
5288            )?;
5289        Ok(_response.is_enabled)
5290    }
5291
5292    pub fn r#check_alive(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
5293        let _response = self
5294            .client
5295            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload, RunnerMarker>(
5296                (),
5297                0x5a77b04abdfde130,
5298                fidl::encoding::DynamicFlags::empty(),
5299                ___deadline,
5300            )?;
5301        Ok(_response)
5302    }
5303
5304    pub fn r#get_bindings_properties(
5305        &self,
5306        ___deadline: zx::MonotonicInstant,
5307    ) -> Result<BindingsProperties, fidl::Error> {
5308        let _response = self
5309            .client
5310            .send_query::<fidl::encoding::EmptyPayload, BindingsProperties, RunnerMarker>(
5311                (),
5312                0x76b5610bfd4fa636,
5313                fidl::encoding::DynamicFlags::empty(),
5314                ___deadline,
5315            )?;
5316        Ok(_response)
5317    }
5318
5319    pub fn r#call_two_way_no_payload(
5320        &self,
5321        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5322        ___deadline: zx::MonotonicInstant,
5323    ) -> Result<EmptyResultClassification, fidl::Error> {
5324        let _response = self.client.send_query::<
5325            RunnerCallTwoWayNoPayloadRequest,
5326            EmptyResultClassification,
5327            RunnerMarker,
5328        >(
5329            (target,),
5330            0x53ac710c20b320a1,
5331            fidl::encoding::DynamicFlags::empty(),
5332            ___deadline,
5333        )?;
5334        Ok(_response)
5335    }
5336
5337    pub fn r#call_two_way_struct_payload(
5338        &self,
5339        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5340        ___deadline: zx::MonotonicInstant,
5341    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5342        let _response = self.client.send_query::<
5343            RunnerCallTwoWayStructPayloadRequest,
5344            NonEmptyResultClassification,
5345            RunnerMarker,
5346        >(
5347            (target,),
5348            0x24e98c668499b946,
5349            fidl::encoding::DynamicFlags::empty(),
5350            ___deadline,
5351        )?;
5352        Ok(_response)
5353    }
5354
5355    pub fn r#call_two_way_table_payload(
5356        &self,
5357        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5358        ___deadline: zx::MonotonicInstant,
5359    ) -> Result<TableResultClassification, fidl::Error> {
5360        let _response = self.client.send_query::<
5361            RunnerCallTwoWayTablePayloadRequest,
5362            TableResultClassification,
5363            RunnerMarker,
5364        >(
5365            (target,),
5366            0x72e428e1605b76a,
5367            fidl::encoding::DynamicFlags::empty(),
5368            ___deadline,
5369        )?;
5370        Ok(_response)
5371    }
5372
5373    pub fn r#call_two_way_union_payload(
5374        &self,
5375        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5376        ___deadline: zx::MonotonicInstant,
5377    ) -> Result<UnionResultClassification, fidl::Error> {
5378        let _response = self.client.send_query::<
5379            RunnerCallTwoWayUnionPayloadRequest,
5380            UnionResultClassification,
5381            RunnerMarker,
5382        >(
5383            (target,),
5384            0x7dc9d67218343860,
5385            fidl::encoding::DynamicFlags::empty(),
5386            ___deadline,
5387        )?;
5388        Ok(_response)
5389    }
5390
5391    pub fn r#call_two_way_struct_payload_err(
5392        &self,
5393        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5394        ___deadline: zx::MonotonicInstant,
5395    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5396        let _response = self.client.send_query::<
5397            RunnerCallTwoWayStructPayloadErrRequest,
5398            NonEmptyResultWithErrorClassification,
5399            RunnerMarker,
5400        >(
5401            (target,),
5402            0x2b07a57942c5f6e5,
5403            fidl::encoding::DynamicFlags::empty(),
5404            ___deadline,
5405        )?;
5406        Ok(_response)
5407    }
5408
5409    pub fn r#call_two_way_struct_request(
5410        &self,
5411        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5412        mut request: &NonEmptyPayload,
5413        ___deadline: zx::MonotonicInstant,
5414    ) -> Result<EmptyResultClassification, fidl::Error> {
5415        let _response = self.client.send_query::<
5416            RunnerCallTwoWayStructRequestRequest,
5417            EmptyResultClassification,
5418            RunnerMarker,
5419        >(
5420            (target, request,),
5421            0x7c00a6ba2e6c9b45,
5422            fidl::encoding::DynamicFlags::empty(),
5423            ___deadline,
5424        )?;
5425        Ok(_response)
5426    }
5427
5428    pub fn r#call_two_way_table_request(
5429        &self,
5430        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5431        mut request: &TablePayload,
5432        ___deadline: zx::MonotonicInstant,
5433    ) -> Result<EmptyResultClassification, fidl::Error> {
5434        let _response = self.client.send_query::<
5435            RunnerCallTwoWayTableRequestRequest,
5436            EmptyResultClassification,
5437            RunnerMarker,
5438        >(
5439            (target, request,),
5440            0x641763237d3885be,
5441            fidl::encoding::DynamicFlags::empty(),
5442            ___deadline,
5443        )?;
5444        Ok(_response)
5445    }
5446
5447    pub fn r#call_two_way_union_request(
5448        &self,
5449        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5450        mut request: &UnionPayload,
5451        ___deadline: zx::MonotonicInstant,
5452    ) -> Result<EmptyResultClassification, fidl::Error> {
5453        let _response = self.client.send_query::<
5454            RunnerCallTwoWayUnionRequestRequest,
5455            EmptyResultClassification,
5456            RunnerMarker,
5457        >(
5458            (target, request,),
5459            0x4be5f061df42619e,
5460            fidl::encoding::DynamicFlags::empty(),
5461            ___deadline,
5462        )?;
5463        Ok(_response)
5464    }
5465
5466    pub fn r#call_one_way_no_request(
5467        &self,
5468        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5469        ___deadline: zx::MonotonicInstant,
5470    ) -> Result<EmptyResultClassification, fidl::Error> {
5471        let _response = self.client.send_query::<
5472            RunnerCallOneWayNoRequestRequest,
5473            EmptyResultClassification,
5474            RunnerMarker,
5475        >(
5476            (target,),
5477            0x24b6eea8cbdccc09,
5478            fidl::encoding::DynamicFlags::empty(),
5479            ___deadline,
5480        )?;
5481        Ok(_response)
5482    }
5483
5484    pub fn r#call_one_way_struct_request(
5485        &self,
5486        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5487        mut request: &NonEmptyPayload,
5488        ___deadline: zx::MonotonicInstant,
5489    ) -> Result<EmptyResultClassification, fidl::Error> {
5490        let _response = self.client.send_query::<
5491            RunnerCallOneWayStructRequestRequest,
5492            EmptyResultClassification,
5493            RunnerMarker,
5494        >(
5495            (target, request,),
5496            0x352a2907a0fcb420,
5497            fidl::encoding::DynamicFlags::empty(),
5498            ___deadline,
5499        )?;
5500        Ok(_response)
5501    }
5502
5503    pub fn r#call_one_way_table_request(
5504        &self,
5505        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5506        mut request: &TablePayload,
5507        ___deadline: zx::MonotonicInstant,
5508    ) -> Result<EmptyResultClassification, fidl::Error> {
5509        let _response = self.client.send_query::<
5510            RunnerCallOneWayTableRequestRequest,
5511            EmptyResultClassification,
5512            RunnerMarker,
5513        >(
5514            (target, request,),
5515            0x734121bf8bf336ef,
5516            fidl::encoding::DynamicFlags::empty(),
5517            ___deadline,
5518        )?;
5519        Ok(_response)
5520    }
5521
5522    pub fn r#call_one_way_union_request(
5523        &self,
5524        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5525        mut request: &UnionPayload,
5526        ___deadline: zx::MonotonicInstant,
5527    ) -> Result<EmptyResultClassification, fidl::Error> {
5528        let _response = self.client.send_query::<
5529            RunnerCallOneWayUnionRequestRequest,
5530            EmptyResultClassification,
5531            RunnerMarker,
5532        >(
5533            (target, request,),
5534            0x9be8e5eb7d50eb6,
5535            fidl::encoding::DynamicFlags::empty(),
5536            ___deadline,
5537        )?;
5538        Ok(_response)
5539    }
5540
5541    pub fn r#call_strict_one_way(
5542        &self,
5543        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5544        ___deadline: zx::MonotonicInstant,
5545    ) -> Result<EmptyResultClassification, fidl::Error> {
5546        let _response = self
5547            .client
5548            .send_query::<RunnerCallStrictOneWayRequest, EmptyResultClassification, RunnerMarker>(
5549                (target,),
5550                0x4edd0b6f52c0446b,
5551                fidl::encoding::DynamicFlags::empty(),
5552                ___deadline,
5553            )?;
5554        Ok(_response)
5555    }
5556
5557    pub fn r#call_flexible_one_way(
5558        &self,
5559        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5560        ___deadline: zx::MonotonicInstant,
5561    ) -> Result<EmptyResultClassification, fidl::Error> {
5562        let _response = self
5563            .client
5564            .send_query::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification, RunnerMarker>(
5565                (target,),
5566                0x7253f10a77dfe817,
5567                fidl::encoding::DynamicFlags::empty(),
5568                ___deadline,
5569            )?;
5570        Ok(_response)
5571    }
5572
5573    pub fn r#call_strict_two_way(
5574        &self,
5575        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5576        ___deadline: zx::MonotonicInstant,
5577    ) -> Result<EmptyResultClassification, fidl::Error> {
5578        let _response = self
5579            .client
5580            .send_query::<RunnerCallStrictTwoWayRequest, EmptyResultClassification, RunnerMarker>(
5581                (target,),
5582                0x1fa9fb7414aedd27,
5583                fidl::encoding::DynamicFlags::empty(),
5584                ___deadline,
5585            )?;
5586        Ok(_response)
5587    }
5588
5589    pub fn r#call_strict_two_way_fields(
5590        &self,
5591        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5592        ___deadline: zx::MonotonicInstant,
5593    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5594        let _response = self.client.send_query::<
5595            RunnerCallStrictTwoWayFieldsRequest,
5596            NonEmptyResultClassification,
5597            RunnerMarker,
5598        >(
5599            (target,),
5600            0x6f690e00ebf6f123,
5601            fidl::encoding::DynamicFlags::empty(),
5602            ___deadline,
5603        )?;
5604        Ok(_response)
5605    }
5606
5607    pub fn r#call_strict_two_way_err(
5608        &self,
5609        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5610        ___deadline: zx::MonotonicInstant,
5611    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5612        let _response = self.client.send_query::<
5613            RunnerCallStrictTwoWayErrRequest,
5614            EmptyResultWithErrorClassification,
5615            RunnerMarker,
5616        >(
5617            (target,),
5618            0x51d6bc7cf6cbaf1a,
5619            fidl::encoding::DynamicFlags::empty(),
5620            ___deadline,
5621        )?;
5622        Ok(_response)
5623    }
5624
5625    pub fn r#call_strict_two_way_fields_err(
5626        &self,
5627        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5628        ___deadline: zx::MonotonicInstant,
5629    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5630        let _response = self.client.send_query::<
5631            RunnerCallStrictTwoWayFieldsErrRequest,
5632            NonEmptyResultWithErrorClassification,
5633            RunnerMarker,
5634        >(
5635            (target,),
5636            0x6fa31ced05074c05,
5637            fidl::encoding::DynamicFlags::empty(),
5638            ___deadline,
5639        )?;
5640        Ok(_response)
5641    }
5642
5643    pub fn r#call_flexible_two_way(
5644        &self,
5645        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5646        ___deadline: zx::MonotonicInstant,
5647    ) -> Result<EmptyResultClassification, fidl::Error> {
5648        let _response = self
5649            .client
5650            .send_query::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification, RunnerMarker>(
5651                (target,),
5652                0x411f70724876d49,
5653                fidl::encoding::DynamicFlags::empty(),
5654                ___deadline,
5655            )?;
5656        Ok(_response)
5657    }
5658
5659    pub fn r#call_flexible_two_way_fields(
5660        &self,
5661        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5662        ___deadline: zx::MonotonicInstant,
5663    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5664        let _response = self.client.send_query::<
5665            RunnerCallFlexibleTwoWayFieldsRequest,
5666            NonEmptyResultClassification,
5667            RunnerMarker,
5668        >(
5669            (target,),
5670            0x330996b623598eed,
5671            fidl::encoding::DynamicFlags::empty(),
5672            ___deadline,
5673        )?;
5674        Ok(_response)
5675    }
5676
5677    pub fn r#call_flexible_two_way_err(
5678        &self,
5679        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5680        ___deadline: zx::MonotonicInstant,
5681    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5682        let _response = self.client.send_query::<
5683            RunnerCallFlexibleTwoWayErrRequest,
5684            EmptyResultWithErrorClassification,
5685            RunnerMarker,
5686        >(
5687            (target,),
5688            0x5ddbf88a353a2a57,
5689            fidl::encoding::DynamicFlags::empty(),
5690            ___deadline,
5691        )?;
5692        Ok(_response)
5693    }
5694
5695    pub fn r#call_flexible_two_way_fields_err(
5696        &self,
5697        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5698        ___deadline: zx::MonotonicInstant,
5699    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5700        let _response = self.client.send_query::<
5701            RunnerCallFlexibleTwoWayFieldsErrRequest,
5702            NonEmptyResultWithErrorClassification,
5703            RunnerMarker,
5704        >(
5705            (target,),
5706            0x7ae309383b07048e,
5707            fidl::encoding::DynamicFlags::empty(),
5708            ___deadline,
5709        )?;
5710        Ok(_response)
5711    }
5712
5713    pub fn r#receive_closed_events(
5714        &self,
5715        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5716        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5717        ___deadline: zx::MonotonicInstant,
5718    ) -> Result<(), fidl::Error> {
5719        let _response = self.client.send_query::<
5720            RunnerReceiveClosedEventsRequest,
5721            fidl::encoding::EmptyPayload,
5722            RunnerMarker,
5723        >(
5724            (target, reporter,),
5725            0x48da834910571aeb,
5726            fidl::encoding::DynamicFlags::empty(),
5727            ___deadline,
5728        )?;
5729        Ok(_response)
5730    }
5731
5732    pub fn r#receive_ajar_events(
5733        &self,
5734        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5735        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5736        ___deadline: zx::MonotonicInstant,
5737    ) -> Result<(), fidl::Error> {
5738        let _response = self.client.send_query::<
5739            RunnerReceiveAjarEventsRequest,
5740            fidl::encoding::EmptyPayload,
5741            RunnerMarker,
5742        >(
5743            (target, reporter,),
5744            0xc5662b9a9c007a3,
5745            fidl::encoding::DynamicFlags::empty(),
5746            ___deadline,
5747        )?;
5748        Ok(_response)
5749    }
5750
5751    pub fn r#receive_open_events(
5752        &self,
5753        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5754        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5755        ___deadline: zx::MonotonicInstant,
5756    ) -> Result<(), fidl::Error> {
5757        let _response = self.client.send_query::<
5758            RunnerReceiveOpenEventsRequest,
5759            fidl::encoding::EmptyPayload,
5760            RunnerMarker,
5761        >(
5762            (target, reporter,),
5763            0x79a7073fd18edbdf,
5764            fidl::encoding::DynamicFlags::empty(),
5765            ___deadline,
5766        )?;
5767        Ok(_response)
5768    }
5769}
5770
5771#[cfg(target_os = "fuchsia")]
5772impl From<RunnerSynchronousProxy> for zx::NullableHandle {
5773    fn from(value: RunnerSynchronousProxy) -> Self {
5774        value.into_channel().into()
5775    }
5776}
5777
5778#[cfg(target_os = "fuchsia")]
5779impl From<fidl::Channel> for RunnerSynchronousProxy {
5780    fn from(value: fidl::Channel) -> Self {
5781        Self::new(value)
5782    }
5783}
5784
5785#[cfg(target_os = "fuchsia")]
5786impl fidl::endpoints::FromClient for RunnerSynchronousProxy {
5787    type Protocol = RunnerMarker;
5788
5789    fn from_client(value: fidl::endpoints::ClientEnd<RunnerMarker>) -> Self {
5790        Self::new(value.into_channel())
5791    }
5792}
5793
5794#[derive(Debug, Clone)]
5795pub struct RunnerProxy {
5796    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5797}
5798
5799impl fidl::endpoints::Proxy for RunnerProxy {
5800    type Protocol = RunnerMarker;
5801
5802    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5803        Self::new(inner)
5804    }
5805
5806    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5807        self.client.into_channel().map_err(|client| Self { client })
5808    }
5809
5810    fn as_channel(&self) -> &::fidl::AsyncChannel {
5811        self.client.as_channel()
5812    }
5813}
5814
5815impl RunnerProxy {
5816    /// Create a new Proxy for fidl.clientsuite/Runner.
5817    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5818        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5819        Self { client: fidl::client::Client::new(channel, protocol_name) }
5820    }
5821
5822    /// Get a Stream of events from the remote end of the protocol.
5823    ///
5824    /// # Panics
5825    ///
5826    /// Panics if the event stream was already taken.
5827    pub fn take_event_stream(&self) -> RunnerEventStream {
5828        RunnerEventStream { event_receiver: self.client.take_event_receiver() }
5829    }
5830
5831    pub fn r#get_version(
5832        &self,
5833    ) -> fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect> {
5834        RunnerProxyInterface::r#get_version(self)
5835    }
5836
5837    pub fn r#is_test_enabled(
5838        &self,
5839        mut test: Test,
5840    ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
5841        RunnerProxyInterface::r#is_test_enabled(self, test)
5842    }
5843
5844    pub fn r#check_alive(
5845        &self,
5846    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5847        RunnerProxyInterface::r#check_alive(self)
5848    }
5849
5850    pub fn r#get_bindings_properties(
5851        &self,
5852    ) -> fidl::client::QueryResponseFut<
5853        BindingsProperties,
5854        fidl::encoding::DefaultFuchsiaResourceDialect,
5855    > {
5856        RunnerProxyInterface::r#get_bindings_properties(self)
5857    }
5858
5859    pub fn r#call_two_way_no_payload(
5860        &self,
5861        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5862    ) -> fidl::client::QueryResponseFut<
5863        EmptyResultClassification,
5864        fidl::encoding::DefaultFuchsiaResourceDialect,
5865    > {
5866        RunnerProxyInterface::r#call_two_way_no_payload(self, target)
5867    }
5868
5869    pub fn r#call_two_way_struct_payload(
5870        &self,
5871        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5872    ) -> fidl::client::QueryResponseFut<
5873        NonEmptyResultClassification,
5874        fidl::encoding::DefaultFuchsiaResourceDialect,
5875    > {
5876        RunnerProxyInterface::r#call_two_way_struct_payload(self, target)
5877    }
5878
5879    pub fn r#call_two_way_table_payload(
5880        &self,
5881        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5882    ) -> fidl::client::QueryResponseFut<
5883        TableResultClassification,
5884        fidl::encoding::DefaultFuchsiaResourceDialect,
5885    > {
5886        RunnerProxyInterface::r#call_two_way_table_payload(self, target)
5887    }
5888
5889    pub fn r#call_two_way_union_payload(
5890        &self,
5891        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5892    ) -> fidl::client::QueryResponseFut<
5893        UnionResultClassification,
5894        fidl::encoding::DefaultFuchsiaResourceDialect,
5895    > {
5896        RunnerProxyInterface::r#call_two_way_union_payload(self, target)
5897    }
5898
5899    pub fn r#call_two_way_struct_payload_err(
5900        &self,
5901        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5902    ) -> fidl::client::QueryResponseFut<
5903        NonEmptyResultWithErrorClassification,
5904        fidl::encoding::DefaultFuchsiaResourceDialect,
5905    > {
5906        RunnerProxyInterface::r#call_two_way_struct_payload_err(self, target)
5907    }
5908
5909    pub fn r#call_two_way_struct_request(
5910        &self,
5911        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5912        mut request: &NonEmptyPayload,
5913    ) -> fidl::client::QueryResponseFut<
5914        EmptyResultClassification,
5915        fidl::encoding::DefaultFuchsiaResourceDialect,
5916    > {
5917        RunnerProxyInterface::r#call_two_way_struct_request(self, target, request)
5918    }
5919
5920    pub fn r#call_two_way_table_request(
5921        &self,
5922        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5923        mut request: &TablePayload,
5924    ) -> fidl::client::QueryResponseFut<
5925        EmptyResultClassification,
5926        fidl::encoding::DefaultFuchsiaResourceDialect,
5927    > {
5928        RunnerProxyInterface::r#call_two_way_table_request(self, target, request)
5929    }
5930
5931    pub fn r#call_two_way_union_request(
5932        &self,
5933        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5934        mut request: &UnionPayload,
5935    ) -> fidl::client::QueryResponseFut<
5936        EmptyResultClassification,
5937        fidl::encoding::DefaultFuchsiaResourceDialect,
5938    > {
5939        RunnerProxyInterface::r#call_two_way_union_request(self, target, request)
5940    }
5941
5942    pub fn r#call_one_way_no_request(
5943        &self,
5944        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5945    ) -> fidl::client::QueryResponseFut<
5946        EmptyResultClassification,
5947        fidl::encoding::DefaultFuchsiaResourceDialect,
5948    > {
5949        RunnerProxyInterface::r#call_one_way_no_request(self, target)
5950    }
5951
5952    pub fn r#call_one_way_struct_request(
5953        &self,
5954        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5955        mut request: &NonEmptyPayload,
5956    ) -> fidl::client::QueryResponseFut<
5957        EmptyResultClassification,
5958        fidl::encoding::DefaultFuchsiaResourceDialect,
5959    > {
5960        RunnerProxyInterface::r#call_one_way_struct_request(self, target, request)
5961    }
5962
5963    pub fn r#call_one_way_table_request(
5964        &self,
5965        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5966        mut request: &TablePayload,
5967    ) -> fidl::client::QueryResponseFut<
5968        EmptyResultClassification,
5969        fidl::encoding::DefaultFuchsiaResourceDialect,
5970    > {
5971        RunnerProxyInterface::r#call_one_way_table_request(self, target, request)
5972    }
5973
5974    pub fn r#call_one_way_union_request(
5975        &self,
5976        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5977        mut request: &UnionPayload,
5978    ) -> fidl::client::QueryResponseFut<
5979        EmptyResultClassification,
5980        fidl::encoding::DefaultFuchsiaResourceDialect,
5981    > {
5982        RunnerProxyInterface::r#call_one_way_union_request(self, target, request)
5983    }
5984
5985    pub fn r#call_strict_one_way(
5986        &self,
5987        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5988    ) -> fidl::client::QueryResponseFut<
5989        EmptyResultClassification,
5990        fidl::encoding::DefaultFuchsiaResourceDialect,
5991    > {
5992        RunnerProxyInterface::r#call_strict_one_way(self, target)
5993    }
5994
5995    pub fn r#call_flexible_one_way(
5996        &self,
5997        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5998    ) -> fidl::client::QueryResponseFut<
5999        EmptyResultClassification,
6000        fidl::encoding::DefaultFuchsiaResourceDialect,
6001    > {
6002        RunnerProxyInterface::r#call_flexible_one_way(self, target)
6003    }
6004
6005    pub fn r#call_strict_two_way(
6006        &self,
6007        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6008    ) -> fidl::client::QueryResponseFut<
6009        EmptyResultClassification,
6010        fidl::encoding::DefaultFuchsiaResourceDialect,
6011    > {
6012        RunnerProxyInterface::r#call_strict_two_way(self, target)
6013    }
6014
6015    pub fn r#call_strict_two_way_fields(
6016        &self,
6017        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6018    ) -> fidl::client::QueryResponseFut<
6019        NonEmptyResultClassification,
6020        fidl::encoding::DefaultFuchsiaResourceDialect,
6021    > {
6022        RunnerProxyInterface::r#call_strict_two_way_fields(self, target)
6023    }
6024
6025    pub fn r#call_strict_two_way_err(
6026        &self,
6027        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6028    ) -> fidl::client::QueryResponseFut<
6029        EmptyResultWithErrorClassification,
6030        fidl::encoding::DefaultFuchsiaResourceDialect,
6031    > {
6032        RunnerProxyInterface::r#call_strict_two_way_err(self, target)
6033    }
6034
6035    pub fn r#call_strict_two_way_fields_err(
6036        &self,
6037        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6038    ) -> fidl::client::QueryResponseFut<
6039        NonEmptyResultWithErrorClassification,
6040        fidl::encoding::DefaultFuchsiaResourceDialect,
6041    > {
6042        RunnerProxyInterface::r#call_strict_two_way_fields_err(self, target)
6043    }
6044
6045    pub fn r#call_flexible_two_way(
6046        &self,
6047        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6048    ) -> fidl::client::QueryResponseFut<
6049        EmptyResultClassification,
6050        fidl::encoding::DefaultFuchsiaResourceDialect,
6051    > {
6052        RunnerProxyInterface::r#call_flexible_two_way(self, target)
6053    }
6054
6055    pub fn r#call_flexible_two_way_fields(
6056        &self,
6057        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6058    ) -> fidl::client::QueryResponseFut<
6059        NonEmptyResultClassification,
6060        fidl::encoding::DefaultFuchsiaResourceDialect,
6061    > {
6062        RunnerProxyInterface::r#call_flexible_two_way_fields(self, target)
6063    }
6064
6065    pub fn r#call_flexible_two_way_err(
6066        &self,
6067        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6068    ) -> fidl::client::QueryResponseFut<
6069        EmptyResultWithErrorClassification,
6070        fidl::encoding::DefaultFuchsiaResourceDialect,
6071    > {
6072        RunnerProxyInterface::r#call_flexible_two_way_err(self, target)
6073    }
6074
6075    pub fn r#call_flexible_two_way_fields_err(
6076        &self,
6077        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6078    ) -> fidl::client::QueryResponseFut<
6079        NonEmptyResultWithErrorClassification,
6080        fidl::encoding::DefaultFuchsiaResourceDialect,
6081    > {
6082        RunnerProxyInterface::r#call_flexible_two_way_fields_err(self, target)
6083    }
6084
6085    pub fn r#receive_closed_events(
6086        &self,
6087        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6088        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
6089    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6090        RunnerProxyInterface::r#receive_closed_events(self, target, reporter)
6091    }
6092
6093    pub fn r#receive_ajar_events(
6094        &self,
6095        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
6096        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
6097    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6098        RunnerProxyInterface::r#receive_ajar_events(self, target, reporter)
6099    }
6100
6101    pub fn r#receive_open_events(
6102        &self,
6103        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6104        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
6105    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6106        RunnerProxyInterface::r#receive_open_events(self, target, reporter)
6107    }
6108}
6109
6110impl RunnerProxyInterface for RunnerProxy {
6111    type GetVersionResponseFut =
6112        fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect>;
6113    fn r#get_version(&self) -> Self::GetVersionResponseFut {
6114        fn _decode(
6115            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6116        ) -> Result<u64, fidl::Error> {
6117            let _response = fidl::client::decode_transaction_body::<
6118                RunnerGetVersionResponse,
6119                fidl::encoding::DefaultFuchsiaResourceDialect,
6120                0x555d1430b913cdd4,
6121            >(_buf?)?;
6122            Ok(_response.version)
6123        }
6124        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, u64>(
6125            (),
6126            0x555d1430b913cdd4,
6127            fidl::encoding::DynamicFlags::empty(),
6128            _decode,
6129        )
6130    }
6131
6132    type IsTestEnabledResponseFut =
6133        fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
6134    fn r#is_test_enabled(&self, mut test: Test) -> Self::IsTestEnabledResponseFut {
6135        fn _decode(
6136            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6137        ) -> Result<bool, fidl::Error> {
6138            let _response = fidl::client::decode_transaction_body::<
6139                RunnerIsTestEnabledResponse,
6140                fidl::encoding::DefaultFuchsiaResourceDialect,
6141                0x755bc493368d7c50,
6142            >(_buf?)?;
6143            Ok(_response.is_enabled)
6144        }
6145        self.client.send_query_and_decode::<RunnerIsTestEnabledRequest, bool>(
6146            (test,),
6147            0x755bc493368d7c50,
6148            fidl::encoding::DynamicFlags::empty(),
6149            _decode,
6150        )
6151    }
6152
6153    type CheckAliveResponseFut =
6154        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6155    fn r#check_alive(&self) -> Self::CheckAliveResponseFut {
6156        fn _decode(
6157            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6158        ) -> Result<(), fidl::Error> {
6159            let _response = fidl::client::decode_transaction_body::<
6160                fidl::encoding::EmptyPayload,
6161                fidl::encoding::DefaultFuchsiaResourceDialect,
6162                0x5a77b04abdfde130,
6163            >(_buf?)?;
6164            Ok(_response)
6165        }
6166        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
6167            (),
6168            0x5a77b04abdfde130,
6169            fidl::encoding::DynamicFlags::empty(),
6170            _decode,
6171        )
6172    }
6173
6174    type GetBindingsPropertiesResponseFut = fidl::client::QueryResponseFut<
6175        BindingsProperties,
6176        fidl::encoding::DefaultFuchsiaResourceDialect,
6177    >;
6178    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut {
6179        fn _decode(
6180            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6181        ) -> Result<BindingsProperties, fidl::Error> {
6182            let _response = fidl::client::decode_transaction_body::<
6183                BindingsProperties,
6184                fidl::encoding::DefaultFuchsiaResourceDialect,
6185                0x76b5610bfd4fa636,
6186            >(_buf?)?;
6187            Ok(_response)
6188        }
6189        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BindingsProperties>(
6190            (),
6191            0x76b5610bfd4fa636,
6192            fidl::encoding::DynamicFlags::empty(),
6193            _decode,
6194        )
6195    }
6196
6197    type CallTwoWayNoPayloadResponseFut = fidl::client::QueryResponseFut<
6198        EmptyResultClassification,
6199        fidl::encoding::DefaultFuchsiaResourceDialect,
6200    >;
6201    fn r#call_two_way_no_payload(
6202        &self,
6203        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6204    ) -> Self::CallTwoWayNoPayloadResponseFut {
6205        fn _decode(
6206            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6207        ) -> Result<EmptyResultClassification, fidl::Error> {
6208            let _response = fidl::client::decode_transaction_body::<
6209                EmptyResultClassification,
6210                fidl::encoding::DefaultFuchsiaResourceDialect,
6211                0x53ac710c20b320a1,
6212            >(_buf?)?;
6213            Ok(_response)
6214        }
6215        self.client
6216            .send_query_and_decode::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
6217                (target,),
6218                0x53ac710c20b320a1,
6219                fidl::encoding::DynamicFlags::empty(),
6220                _decode,
6221            )
6222    }
6223
6224    type CallTwoWayStructPayloadResponseFut = fidl::client::QueryResponseFut<
6225        NonEmptyResultClassification,
6226        fidl::encoding::DefaultFuchsiaResourceDialect,
6227    >;
6228    fn r#call_two_way_struct_payload(
6229        &self,
6230        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6231    ) -> Self::CallTwoWayStructPayloadResponseFut {
6232        fn _decode(
6233            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6234        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6235            let _response = fidl::client::decode_transaction_body::<
6236                NonEmptyResultClassification,
6237                fidl::encoding::DefaultFuchsiaResourceDialect,
6238                0x24e98c668499b946,
6239            >(_buf?)?;
6240            Ok(_response)
6241        }
6242        self.client.send_query_and_decode::<
6243            RunnerCallTwoWayStructPayloadRequest,
6244            NonEmptyResultClassification,
6245        >(
6246            (target,),
6247            0x24e98c668499b946,
6248            fidl::encoding::DynamicFlags::empty(),
6249            _decode,
6250        )
6251    }
6252
6253    type CallTwoWayTablePayloadResponseFut = fidl::client::QueryResponseFut<
6254        TableResultClassification,
6255        fidl::encoding::DefaultFuchsiaResourceDialect,
6256    >;
6257    fn r#call_two_way_table_payload(
6258        &self,
6259        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6260    ) -> Self::CallTwoWayTablePayloadResponseFut {
6261        fn _decode(
6262            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6263        ) -> Result<TableResultClassification, fidl::Error> {
6264            let _response = fidl::client::decode_transaction_body::<
6265                TableResultClassification,
6266                fidl::encoding::DefaultFuchsiaResourceDialect,
6267                0x72e428e1605b76a,
6268            >(_buf?)?;
6269            Ok(_response)
6270        }
6271        self.client.send_query_and_decode::<
6272            RunnerCallTwoWayTablePayloadRequest,
6273            TableResultClassification,
6274        >(
6275            (target,),
6276            0x72e428e1605b76a,
6277            fidl::encoding::DynamicFlags::empty(),
6278            _decode,
6279        )
6280    }
6281
6282    type CallTwoWayUnionPayloadResponseFut = fidl::client::QueryResponseFut<
6283        UnionResultClassification,
6284        fidl::encoding::DefaultFuchsiaResourceDialect,
6285    >;
6286    fn r#call_two_way_union_payload(
6287        &self,
6288        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6289    ) -> Self::CallTwoWayUnionPayloadResponseFut {
6290        fn _decode(
6291            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6292        ) -> Result<UnionResultClassification, fidl::Error> {
6293            let _response = fidl::client::decode_transaction_body::<
6294                UnionResultClassification,
6295                fidl::encoding::DefaultFuchsiaResourceDialect,
6296                0x7dc9d67218343860,
6297            >(_buf?)?;
6298            Ok(_response)
6299        }
6300        self.client.send_query_and_decode::<
6301            RunnerCallTwoWayUnionPayloadRequest,
6302            UnionResultClassification,
6303        >(
6304            (target,),
6305            0x7dc9d67218343860,
6306            fidl::encoding::DynamicFlags::empty(),
6307            _decode,
6308        )
6309    }
6310
6311    type CallTwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
6312        NonEmptyResultWithErrorClassification,
6313        fidl::encoding::DefaultFuchsiaResourceDialect,
6314    >;
6315    fn r#call_two_way_struct_payload_err(
6316        &self,
6317        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6318    ) -> Self::CallTwoWayStructPayloadErrResponseFut {
6319        fn _decode(
6320            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6321        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6322            let _response = fidl::client::decode_transaction_body::<
6323                NonEmptyResultWithErrorClassification,
6324                fidl::encoding::DefaultFuchsiaResourceDialect,
6325                0x2b07a57942c5f6e5,
6326            >(_buf?)?;
6327            Ok(_response)
6328        }
6329        self.client.send_query_and_decode::<
6330            RunnerCallTwoWayStructPayloadErrRequest,
6331            NonEmptyResultWithErrorClassification,
6332        >(
6333            (target,),
6334            0x2b07a57942c5f6e5,
6335            fidl::encoding::DynamicFlags::empty(),
6336            _decode,
6337        )
6338    }
6339
6340    type CallTwoWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6341        EmptyResultClassification,
6342        fidl::encoding::DefaultFuchsiaResourceDialect,
6343    >;
6344    fn r#call_two_way_struct_request(
6345        &self,
6346        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6347        mut request: &NonEmptyPayload,
6348    ) -> Self::CallTwoWayStructRequestResponseFut {
6349        fn _decode(
6350            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6351        ) -> Result<EmptyResultClassification, fidl::Error> {
6352            let _response = fidl::client::decode_transaction_body::<
6353                EmptyResultClassification,
6354                fidl::encoding::DefaultFuchsiaResourceDialect,
6355                0x7c00a6ba2e6c9b45,
6356            >(_buf?)?;
6357            Ok(_response)
6358        }
6359        self.client.send_query_and_decode::<
6360            RunnerCallTwoWayStructRequestRequest,
6361            EmptyResultClassification,
6362        >(
6363            (target, request,),
6364            0x7c00a6ba2e6c9b45,
6365            fidl::encoding::DynamicFlags::empty(),
6366            _decode,
6367        )
6368    }
6369
6370    type CallTwoWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6371        EmptyResultClassification,
6372        fidl::encoding::DefaultFuchsiaResourceDialect,
6373    >;
6374    fn r#call_two_way_table_request(
6375        &self,
6376        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6377        mut request: &TablePayload,
6378    ) -> Self::CallTwoWayTableRequestResponseFut {
6379        fn _decode(
6380            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6381        ) -> Result<EmptyResultClassification, fidl::Error> {
6382            let _response = fidl::client::decode_transaction_body::<
6383                EmptyResultClassification,
6384                fidl::encoding::DefaultFuchsiaResourceDialect,
6385                0x641763237d3885be,
6386            >(_buf?)?;
6387            Ok(_response)
6388        }
6389        self.client.send_query_and_decode::<
6390            RunnerCallTwoWayTableRequestRequest,
6391            EmptyResultClassification,
6392        >(
6393            (target, request,),
6394            0x641763237d3885be,
6395            fidl::encoding::DynamicFlags::empty(),
6396            _decode,
6397        )
6398    }
6399
6400    type CallTwoWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6401        EmptyResultClassification,
6402        fidl::encoding::DefaultFuchsiaResourceDialect,
6403    >;
6404    fn r#call_two_way_union_request(
6405        &self,
6406        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6407        mut request: &UnionPayload,
6408    ) -> Self::CallTwoWayUnionRequestResponseFut {
6409        fn _decode(
6410            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6411        ) -> Result<EmptyResultClassification, fidl::Error> {
6412            let _response = fidl::client::decode_transaction_body::<
6413                EmptyResultClassification,
6414                fidl::encoding::DefaultFuchsiaResourceDialect,
6415                0x4be5f061df42619e,
6416            >(_buf?)?;
6417            Ok(_response)
6418        }
6419        self.client.send_query_and_decode::<
6420            RunnerCallTwoWayUnionRequestRequest,
6421            EmptyResultClassification,
6422        >(
6423            (target, request,),
6424            0x4be5f061df42619e,
6425            fidl::encoding::DynamicFlags::empty(),
6426            _decode,
6427        )
6428    }
6429
6430    type CallOneWayNoRequestResponseFut = fidl::client::QueryResponseFut<
6431        EmptyResultClassification,
6432        fidl::encoding::DefaultFuchsiaResourceDialect,
6433    >;
6434    fn r#call_one_way_no_request(
6435        &self,
6436        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6437    ) -> Self::CallOneWayNoRequestResponseFut {
6438        fn _decode(
6439            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6440        ) -> Result<EmptyResultClassification, fidl::Error> {
6441            let _response = fidl::client::decode_transaction_body::<
6442                EmptyResultClassification,
6443                fidl::encoding::DefaultFuchsiaResourceDialect,
6444                0x24b6eea8cbdccc09,
6445            >(_buf?)?;
6446            Ok(_response)
6447        }
6448        self.client
6449            .send_query_and_decode::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
6450                (target,),
6451                0x24b6eea8cbdccc09,
6452                fidl::encoding::DynamicFlags::empty(),
6453                _decode,
6454            )
6455    }
6456
6457    type CallOneWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6458        EmptyResultClassification,
6459        fidl::encoding::DefaultFuchsiaResourceDialect,
6460    >;
6461    fn r#call_one_way_struct_request(
6462        &self,
6463        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6464        mut request: &NonEmptyPayload,
6465    ) -> Self::CallOneWayStructRequestResponseFut {
6466        fn _decode(
6467            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6468        ) -> Result<EmptyResultClassification, fidl::Error> {
6469            let _response = fidl::client::decode_transaction_body::<
6470                EmptyResultClassification,
6471                fidl::encoding::DefaultFuchsiaResourceDialect,
6472                0x352a2907a0fcb420,
6473            >(_buf?)?;
6474            Ok(_response)
6475        }
6476        self.client.send_query_and_decode::<
6477            RunnerCallOneWayStructRequestRequest,
6478            EmptyResultClassification,
6479        >(
6480            (target, request,),
6481            0x352a2907a0fcb420,
6482            fidl::encoding::DynamicFlags::empty(),
6483            _decode,
6484        )
6485    }
6486
6487    type CallOneWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6488        EmptyResultClassification,
6489        fidl::encoding::DefaultFuchsiaResourceDialect,
6490    >;
6491    fn r#call_one_way_table_request(
6492        &self,
6493        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6494        mut request: &TablePayload,
6495    ) -> Self::CallOneWayTableRequestResponseFut {
6496        fn _decode(
6497            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6498        ) -> Result<EmptyResultClassification, fidl::Error> {
6499            let _response = fidl::client::decode_transaction_body::<
6500                EmptyResultClassification,
6501                fidl::encoding::DefaultFuchsiaResourceDialect,
6502                0x734121bf8bf336ef,
6503            >(_buf?)?;
6504            Ok(_response)
6505        }
6506        self.client.send_query_and_decode::<
6507            RunnerCallOneWayTableRequestRequest,
6508            EmptyResultClassification,
6509        >(
6510            (target, request,),
6511            0x734121bf8bf336ef,
6512            fidl::encoding::DynamicFlags::empty(),
6513            _decode,
6514        )
6515    }
6516
6517    type CallOneWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6518        EmptyResultClassification,
6519        fidl::encoding::DefaultFuchsiaResourceDialect,
6520    >;
6521    fn r#call_one_way_union_request(
6522        &self,
6523        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6524        mut request: &UnionPayload,
6525    ) -> Self::CallOneWayUnionRequestResponseFut {
6526        fn _decode(
6527            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6528        ) -> Result<EmptyResultClassification, fidl::Error> {
6529            let _response = fidl::client::decode_transaction_body::<
6530                EmptyResultClassification,
6531                fidl::encoding::DefaultFuchsiaResourceDialect,
6532                0x9be8e5eb7d50eb6,
6533            >(_buf?)?;
6534            Ok(_response)
6535        }
6536        self.client.send_query_and_decode::<
6537            RunnerCallOneWayUnionRequestRequest,
6538            EmptyResultClassification,
6539        >(
6540            (target, request,),
6541            0x9be8e5eb7d50eb6,
6542            fidl::encoding::DynamicFlags::empty(),
6543            _decode,
6544        )
6545    }
6546
6547    type CallStrictOneWayResponseFut = fidl::client::QueryResponseFut<
6548        EmptyResultClassification,
6549        fidl::encoding::DefaultFuchsiaResourceDialect,
6550    >;
6551    fn r#call_strict_one_way(
6552        &self,
6553        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6554    ) -> Self::CallStrictOneWayResponseFut {
6555        fn _decode(
6556            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6557        ) -> Result<EmptyResultClassification, fidl::Error> {
6558            let _response = fidl::client::decode_transaction_body::<
6559                EmptyResultClassification,
6560                fidl::encoding::DefaultFuchsiaResourceDialect,
6561                0x4edd0b6f52c0446b,
6562            >(_buf?)?;
6563            Ok(_response)
6564        }
6565        self.client
6566            .send_query_and_decode::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
6567                (target,),
6568                0x4edd0b6f52c0446b,
6569                fidl::encoding::DynamicFlags::empty(),
6570                _decode,
6571            )
6572    }
6573
6574    type CallFlexibleOneWayResponseFut = fidl::client::QueryResponseFut<
6575        EmptyResultClassification,
6576        fidl::encoding::DefaultFuchsiaResourceDialect,
6577    >;
6578    fn r#call_flexible_one_way(
6579        &self,
6580        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6581    ) -> Self::CallFlexibleOneWayResponseFut {
6582        fn _decode(
6583            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6584        ) -> Result<EmptyResultClassification, fidl::Error> {
6585            let _response = fidl::client::decode_transaction_body::<
6586                EmptyResultClassification,
6587                fidl::encoding::DefaultFuchsiaResourceDialect,
6588                0x7253f10a77dfe817,
6589            >(_buf?)?;
6590            Ok(_response)
6591        }
6592        self.client
6593            .send_query_and_decode::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
6594                (target,),
6595                0x7253f10a77dfe817,
6596                fidl::encoding::DynamicFlags::empty(),
6597                _decode,
6598            )
6599    }
6600
6601    type CallStrictTwoWayResponseFut = fidl::client::QueryResponseFut<
6602        EmptyResultClassification,
6603        fidl::encoding::DefaultFuchsiaResourceDialect,
6604    >;
6605    fn r#call_strict_two_way(
6606        &self,
6607        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6608    ) -> Self::CallStrictTwoWayResponseFut {
6609        fn _decode(
6610            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6611        ) -> Result<EmptyResultClassification, fidl::Error> {
6612            let _response = fidl::client::decode_transaction_body::<
6613                EmptyResultClassification,
6614                fidl::encoding::DefaultFuchsiaResourceDialect,
6615                0x1fa9fb7414aedd27,
6616            >(_buf?)?;
6617            Ok(_response)
6618        }
6619        self.client
6620            .send_query_and_decode::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
6621                (target,),
6622                0x1fa9fb7414aedd27,
6623                fidl::encoding::DynamicFlags::empty(),
6624                _decode,
6625            )
6626    }
6627
6628    type CallStrictTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6629        NonEmptyResultClassification,
6630        fidl::encoding::DefaultFuchsiaResourceDialect,
6631    >;
6632    fn r#call_strict_two_way_fields(
6633        &self,
6634        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6635    ) -> Self::CallStrictTwoWayFieldsResponseFut {
6636        fn _decode(
6637            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6638        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6639            let _response = fidl::client::decode_transaction_body::<
6640                NonEmptyResultClassification,
6641                fidl::encoding::DefaultFuchsiaResourceDialect,
6642                0x6f690e00ebf6f123,
6643            >(_buf?)?;
6644            Ok(_response)
6645        }
6646        self.client.send_query_and_decode::<
6647            RunnerCallStrictTwoWayFieldsRequest,
6648            NonEmptyResultClassification,
6649        >(
6650            (target,),
6651            0x6f690e00ebf6f123,
6652            fidl::encoding::DynamicFlags::empty(),
6653            _decode,
6654        )
6655    }
6656
6657    type CallStrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6658        EmptyResultWithErrorClassification,
6659        fidl::encoding::DefaultFuchsiaResourceDialect,
6660    >;
6661    fn r#call_strict_two_way_err(
6662        &self,
6663        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6664    ) -> Self::CallStrictTwoWayErrResponseFut {
6665        fn _decode(
6666            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6667        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6668            let _response = fidl::client::decode_transaction_body::<
6669                EmptyResultWithErrorClassification,
6670                fidl::encoding::DefaultFuchsiaResourceDialect,
6671                0x51d6bc7cf6cbaf1a,
6672            >(_buf?)?;
6673            Ok(_response)
6674        }
6675        self.client.send_query_and_decode::<
6676            RunnerCallStrictTwoWayErrRequest,
6677            EmptyResultWithErrorClassification,
6678        >(
6679            (target,),
6680            0x51d6bc7cf6cbaf1a,
6681            fidl::encoding::DynamicFlags::empty(),
6682            _decode,
6683        )
6684    }
6685
6686    type CallStrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6687        NonEmptyResultWithErrorClassification,
6688        fidl::encoding::DefaultFuchsiaResourceDialect,
6689    >;
6690    fn r#call_strict_two_way_fields_err(
6691        &self,
6692        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6693    ) -> Self::CallStrictTwoWayFieldsErrResponseFut {
6694        fn _decode(
6695            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6696        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6697            let _response = fidl::client::decode_transaction_body::<
6698                NonEmptyResultWithErrorClassification,
6699                fidl::encoding::DefaultFuchsiaResourceDialect,
6700                0x6fa31ced05074c05,
6701            >(_buf?)?;
6702            Ok(_response)
6703        }
6704        self.client.send_query_and_decode::<
6705            RunnerCallStrictTwoWayFieldsErrRequest,
6706            NonEmptyResultWithErrorClassification,
6707        >(
6708            (target,),
6709            0x6fa31ced05074c05,
6710            fidl::encoding::DynamicFlags::empty(),
6711            _decode,
6712        )
6713    }
6714
6715    type CallFlexibleTwoWayResponseFut = fidl::client::QueryResponseFut<
6716        EmptyResultClassification,
6717        fidl::encoding::DefaultFuchsiaResourceDialect,
6718    >;
6719    fn r#call_flexible_two_way(
6720        &self,
6721        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6722    ) -> Self::CallFlexibleTwoWayResponseFut {
6723        fn _decode(
6724            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6725        ) -> Result<EmptyResultClassification, fidl::Error> {
6726            let _response = fidl::client::decode_transaction_body::<
6727                EmptyResultClassification,
6728                fidl::encoding::DefaultFuchsiaResourceDialect,
6729                0x411f70724876d49,
6730            >(_buf?)?;
6731            Ok(_response)
6732        }
6733        self.client
6734            .send_query_and_decode::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
6735                (target,),
6736                0x411f70724876d49,
6737                fidl::encoding::DynamicFlags::empty(),
6738                _decode,
6739            )
6740    }
6741
6742    type CallFlexibleTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6743        NonEmptyResultClassification,
6744        fidl::encoding::DefaultFuchsiaResourceDialect,
6745    >;
6746    fn r#call_flexible_two_way_fields(
6747        &self,
6748        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6749    ) -> Self::CallFlexibleTwoWayFieldsResponseFut {
6750        fn _decode(
6751            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6752        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6753            let _response = fidl::client::decode_transaction_body::<
6754                NonEmptyResultClassification,
6755                fidl::encoding::DefaultFuchsiaResourceDialect,
6756                0x330996b623598eed,
6757            >(_buf?)?;
6758            Ok(_response)
6759        }
6760        self.client.send_query_and_decode::<
6761            RunnerCallFlexibleTwoWayFieldsRequest,
6762            NonEmptyResultClassification,
6763        >(
6764            (target,),
6765            0x330996b623598eed,
6766            fidl::encoding::DynamicFlags::empty(),
6767            _decode,
6768        )
6769    }
6770
6771    type CallFlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6772        EmptyResultWithErrorClassification,
6773        fidl::encoding::DefaultFuchsiaResourceDialect,
6774    >;
6775    fn r#call_flexible_two_way_err(
6776        &self,
6777        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6778    ) -> Self::CallFlexibleTwoWayErrResponseFut {
6779        fn _decode(
6780            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6781        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6782            let _response = fidl::client::decode_transaction_body::<
6783                EmptyResultWithErrorClassification,
6784                fidl::encoding::DefaultFuchsiaResourceDialect,
6785                0x5ddbf88a353a2a57,
6786            >(_buf?)?;
6787            Ok(_response)
6788        }
6789        self.client.send_query_and_decode::<
6790            RunnerCallFlexibleTwoWayErrRequest,
6791            EmptyResultWithErrorClassification,
6792        >(
6793            (target,),
6794            0x5ddbf88a353a2a57,
6795            fidl::encoding::DynamicFlags::empty(),
6796            _decode,
6797        )
6798    }
6799
6800    type CallFlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6801        NonEmptyResultWithErrorClassification,
6802        fidl::encoding::DefaultFuchsiaResourceDialect,
6803    >;
6804    fn r#call_flexible_two_way_fields_err(
6805        &self,
6806        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6807    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut {
6808        fn _decode(
6809            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6810        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6811            let _response = fidl::client::decode_transaction_body::<
6812                NonEmptyResultWithErrorClassification,
6813                fidl::encoding::DefaultFuchsiaResourceDialect,
6814                0x7ae309383b07048e,
6815            >(_buf?)?;
6816            Ok(_response)
6817        }
6818        self.client.send_query_and_decode::<
6819            RunnerCallFlexibleTwoWayFieldsErrRequest,
6820            NonEmptyResultWithErrorClassification,
6821        >(
6822            (target,),
6823            0x7ae309383b07048e,
6824            fidl::encoding::DynamicFlags::empty(),
6825            _decode,
6826        )
6827    }
6828
6829    type ReceiveClosedEventsResponseFut =
6830        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6831    fn r#receive_closed_events(
6832        &self,
6833        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6834        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
6835    ) -> Self::ReceiveClosedEventsResponseFut {
6836        fn _decode(
6837            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6838        ) -> Result<(), fidl::Error> {
6839            let _response = fidl::client::decode_transaction_body::<
6840                fidl::encoding::EmptyPayload,
6841                fidl::encoding::DefaultFuchsiaResourceDialect,
6842                0x48da834910571aeb,
6843            >(_buf?)?;
6844            Ok(_response)
6845        }
6846        self.client.send_query_and_decode::<RunnerReceiveClosedEventsRequest, ()>(
6847            (target, reporter),
6848            0x48da834910571aeb,
6849            fidl::encoding::DynamicFlags::empty(),
6850            _decode,
6851        )
6852    }
6853
6854    type ReceiveAjarEventsResponseFut =
6855        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6856    fn r#receive_ajar_events(
6857        &self,
6858        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
6859        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
6860    ) -> Self::ReceiveAjarEventsResponseFut {
6861        fn _decode(
6862            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6863        ) -> Result<(), fidl::Error> {
6864            let _response = fidl::client::decode_transaction_body::<
6865                fidl::encoding::EmptyPayload,
6866                fidl::encoding::DefaultFuchsiaResourceDialect,
6867                0xc5662b9a9c007a3,
6868            >(_buf?)?;
6869            Ok(_response)
6870        }
6871        self.client.send_query_and_decode::<RunnerReceiveAjarEventsRequest, ()>(
6872            (target, reporter),
6873            0xc5662b9a9c007a3,
6874            fidl::encoding::DynamicFlags::empty(),
6875            _decode,
6876        )
6877    }
6878
6879    type ReceiveOpenEventsResponseFut =
6880        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6881    fn r#receive_open_events(
6882        &self,
6883        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6884        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
6885    ) -> Self::ReceiveOpenEventsResponseFut {
6886        fn _decode(
6887            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6888        ) -> Result<(), fidl::Error> {
6889            let _response = fidl::client::decode_transaction_body::<
6890                fidl::encoding::EmptyPayload,
6891                fidl::encoding::DefaultFuchsiaResourceDialect,
6892                0x79a7073fd18edbdf,
6893            >(_buf?)?;
6894            Ok(_response)
6895        }
6896        self.client.send_query_and_decode::<RunnerReceiveOpenEventsRequest, ()>(
6897            (target, reporter),
6898            0x79a7073fd18edbdf,
6899            fidl::encoding::DynamicFlags::empty(),
6900            _decode,
6901        )
6902    }
6903}
6904
6905pub struct RunnerEventStream {
6906    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
6907}
6908
6909impl std::marker::Unpin for RunnerEventStream {}
6910
6911impl futures::stream::FusedStream for RunnerEventStream {
6912    fn is_terminated(&self) -> bool {
6913        self.event_receiver.is_terminated()
6914    }
6915}
6916
6917impl futures::Stream for RunnerEventStream {
6918    type Item = Result<RunnerEvent, fidl::Error>;
6919
6920    fn poll_next(
6921        mut self: std::pin::Pin<&mut Self>,
6922        cx: &mut std::task::Context<'_>,
6923    ) -> std::task::Poll<Option<Self::Item>> {
6924        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
6925            &mut self.event_receiver,
6926            cx
6927        )?) {
6928            Some(buf) => std::task::Poll::Ready(Some(RunnerEvent::decode(buf))),
6929            None => std::task::Poll::Ready(None),
6930        }
6931    }
6932}
6933
6934#[derive(Debug)]
6935pub enum RunnerEvent {}
6936
6937impl RunnerEvent {
6938    /// Decodes a message buffer as a [`RunnerEvent`].
6939    fn decode(
6940        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
6941    ) -> Result<RunnerEvent, fidl::Error> {
6942        let (bytes, _handles) = buf.split_mut();
6943        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6944        debug_assert_eq!(tx_header.tx_id, 0);
6945        match tx_header.ordinal {
6946            _ => Err(fidl::Error::UnknownOrdinal {
6947                ordinal: tx_header.ordinal,
6948                protocol_name: <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6949            }),
6950        }
6951    }
6952}
6953
6954/// A Stream of incoming requests for fidl.clientsuite/Runner.
6955pub struct RunnerRequestStream {
6956    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6957    is_terminated: bool,
6958}
6959
6960impl std::marker::Unpin for RunnerRequestStream {}
6961
6962impl futures::stream::FusedStream for RunnerRequestStream {
6963    fn is_terminated(&self) -> bool {
6964        self.is_terminated
6965    }
6966}
6967
6968impl fidl::endpoints::RequestStream for RunnerRequestStream {
6969    type Protocol = RunnerMarker;
6970    type ControlHandle = RunnerControlHandle;
6971
6972    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
6973        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
6974    }
6975
6976    fn control_handle(&self) -> Self::ControlHandle {
6977        RunnerControlHandle { inner: self.inner.clone() }
6978    }
6979
6980    fn into_inner(
6981        self,
6982    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
6983    {
6984        (self.inner, self.is_terminated)
6985    }
6986
6987    fn from_inner(
6988        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6989        is_terminated: bool,
6990    ) -> Self {
6991        Self { inner, is_terminated }
6992    }
6993}
6994
6995impl futures::Stream for RunnerRequestStream {
6996    type Item = Result<RunnerRequest, fidl::Error>;
6997
6998    fn poll_next(
6999        mut self: std::pin::Pin<&mut Self>,
7000        cx: &mut std::task::Context<'_>,
7001    ) -> std::task::Poll<Option<Self::Item>> {
7002        let this = &mut *self;
7003        if this.inner.check_shutdown(cx) {
7004            this.is_terminated = true;
7005            return std::task::Poll::Ready(None);
7006        }
7007        if this.is_terminated {
7008            panic!("polled RunnerRequestStream after completion");
7009        }
7010        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
7011            |bytes, handles| {
7012                match this.inner.channel().read_etc(cx, bytes, handles) {
7013                    std::task::Poll::Ready(Ok(())) => {}
7014                    std::task::Poll::Pending => return std::task::Poll::Pending,
7015                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
7016                        this.is_terminated = true;
7017                        return std::task::Poll::Ready(None);
7018                    }
7019                    std::task::Poll::Ready(Err(e)) => {
7020                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
7021                            e.into(),
7022                        ))));
7023                    }
7024                }
7025
7026                // A message has been received from the channel
7027                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
7028
7029                std::task::Poll::Ready(Some(match header.ordinal {
7030                    0x555d1430b913cdd4 => {
7031                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7032                        let mut req = fidl::new_empty!(
7033                            fidl::encoding::EmptyPayload,
7034                            fidl::encoding::DefaultFuchsiaResourceDialect
7035                        );
7036                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
7037                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7038                        Ok(RunnerRequest::GetVersion {
7039                            responder: RunnerGetVersionResponder {
7040                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7041                                tx_id: header.tx_id,
7042                            },
7043                        })
7044                    }
7045                    0x755bc493368d7c50 => {
7046                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7047                        let mut req = fidl::new_empty!(
7048                            RunnerIsTestEnabledRequest,
7049                            fidl::encoding::DefaultFuchsiaResourceDialect
7050                        );
7051                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerIsTestEnabledRequest>(&header, _body_bytes, handles, &mut req)?;
7052                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7053                        Ok(RunnerRequest::IsTestEnabled {
7054                            test: req.test,
7055
7056                            responder: RunnerIsTestEnabledResponder {
7057                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7058                                tx_id: header.tx_id,
7059                            },
7060                        })
7061                    }
7062                    0x5a77b04abdfde130 => {
7063                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7064                        let mut req = fidl::new_empty!(
7065                            fidl::encoding::EmptyPayload,
7066                            fidl::encoding::DefaultFuchsiaResourceDialect
7067                        );
7068                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
7069                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7070                        Ok(RunnerRequest::CheckAlive {
7071                            responder: RunnerCheckAliveResponder {
7072                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7073                                tx_id: header.tx_id,
7074                            },
7075                        })
7076                    }
7077                    0x76b5610bfd4fa636 => {
7078                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7079                        let mut req = fidl::new_empty!(
7080                            fidl::encoding::EmptyPayload,
7081                            fidl::encoding::DefaultFuchsiaResourceDialect
7082                        );
7083                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
7084                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7085                        Ok(RunnerRequest::GetBindingsProperties {
7086                            responder: RunnerGetBindingsPropertiesResponder {
7087                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7088                                tx_id: header.tx_id,
7089                            },
7090                        })
7091                    }
7092                    0x53ac710c20b320a1 => {
7093                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7094                        let mut req = fidl::new_empty!(
7095                            RunnerCallTwoWayNoPayloadRequest,
7096                            fidl::encoding::DefaultFuchsiaResourceDialect
7097                        );
7098                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayNoPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7099                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7100                        Ok(RunnerRequest::CallTwoWayNoPayload {
7101                            target: req.target,
7102
7103                            responder: RunnerCallTwoWayNoPayloadResponder {
7104                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7105                                tx_id: header.tx_id,
7106                            },
7107                        })
7108                    }
7109                    0x24e98c668499b946 => {
7110                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7111                        let mut req = fidl::new_empty!(
7112                            RunnerCallTwoWayStructPayloadRequest,
7113                            fidl::encoding::DefaultFuchsiaResourceDialect
7114                        );
7115                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7116                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7117                        Ok(RunnerRequest::CallTwoWayStructPayload {
7118                            target: req.target,
7119
7120                            responder: RunnerCallTwoWayStructPayloadResponder {
7121                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7122                                tx_id: header.tx_id,
7123                            },
7124                        })
7125                    }
7126                    0x72e428e1605b76a => {
7127                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7128                        let mut req = fidl::new_empty!(
7129                            RunnerCallTwoWayTablePayloadRequest,
7130                            fidl::encoding::DefaultFuchsiaResourceDialect
7131                        );
7132                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTablePayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7133                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7134                        Ok(RunnerRequest::CallTwoWayTablePayload {
7135                            target: req.target,
7136
7137                            responder: RunnerCallTwoWayTablePayloadResponder {
7138                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7139                                tx_id: header.tx_id,
7140                            },
7141                        })
7142                    }
7143                    0x7dc9d67218343860 => {
7144                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7145                        let mut req = fidl::new_empty!(
7146                            RunnerCallTwoWayUnionPayloadRequest,
7147                            fidl::encoding::DefaultFuchsiaResourceDialect
7148                        );
7149                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7150                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7151                        Ok(RunnerRequest::CallTwoWayUnionPayload {
7152                            target: req.target,
7153
7154                            responder: RunnerCallTwoWayUnionPayloadResponder {
7155                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7156                                tx_id: header.tx_id,
7157                            },
7158                        })
7159                    }
7160                    0x2b07a57942c5f6e5 => {
7161                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7162                        let mut req = fidl::new_empty!(
7163                            RunnerCallTwoWayStructPayloadErrRequest,
7164                            fidl::encoding::DefaultFuchsiaResourceDialect
7165                        );
7166                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadErrRequest>(&header, _body_bytes, handles, &mut req)?;
7167                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7168                        Ok(RunnerRequest::CallTwoWayStructPayloadErr {
7169                            target: req.target,
7170
7171                            responder: RunnerCallTwoWayStructPayloadErrResponder {
7172                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7173                                tx_id: header.tx_id,
7174                            },
7175                        })
7176                    }
7177                    0x7c00a6ba2e6c9b45 => {
7178                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7179                        let mut req = fidl::new_empty!(
7180                            RunnerCallTwoWayStructRequestRequest,
7181                            fidl::encoding::DefaultFuchsiaResourceDialect
7182                        );
7183                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7184                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7185                        Ok(RunnerRequest::CallTwoWayStructRequest {
7186                            target: req.target,
7187                            request: req.request,
7188
7189                            responder: RunnerCallTwoWayStructRequestResponder {
7190                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7191                                tx_id: header.tx_id,
7192                            },
7193                        })
7194                    }
7195                    0x641763237d3885be => {
7196                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7197                        let mut req = fidl::new_empty!(
7198                            RunnerCallTwoWayTableRequestRequest,
7199                            fidl::encoding::DefaultFuchsiaResourceDialect
7200                        );
7201                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7202                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7203                        Ok(RunnerRequest::CallTwoWayTableRequest {
7204                            target: req.target,
7205                            request: req.request,
7206
7207                            responder: RunnerCallTwoWayTableRequestResponder {
7208                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7209                                tx_id: header.tx_id,
7210                            },
7211                        })
7212                    }
7213                    0x4be5f061df42619e => {
7214                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7215                        let mut req = fidl::new_empty!(
7216                            RunnerCallTwoWayUnionRequestRequest,
7217                            fidl::encoding::DefaultFuchsiaResourceDialect
7218                        );
7219                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7220                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7221                        Ok(RunnerRequest::CallTwoWayUnionRequest {
7222                            target: req.target,
7223                            request: req.request,
7224
7225                            responder: RunnerCallTwoWayUnionRequestResponder {
7226                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7227                                tx_id: header.tx_id,
7228                            },
7229                        })
7230                    }
7231                    0x24b6eea8cbdccc09 => {
7232                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7233                        let mut req = fidl::new_empty!(
7234                            RunnerCallOneWayNoRequestRequest,
7235                            fidl::encoding::DefaultFuchsiaResourceDialect
7236                        );
7237                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayNoRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7238                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7239                        Ok(RunnerRequest::CallOneWayNoRequest {
7240                            target: req.target,
7241
7242                            responder: RunnerCallOneWayNoRequestResponder {
7243                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7244                                tx_id: header.tx_id,
7245                            },
7246                        })
7247                    }
7248                    0x352a2907a0fcb420 => {
7249                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7250                        let mut req = fidl::new_empty!(
7251                            RunnerCallOneWayStructRequestRequest,
7252                            fidl::encoding::DefaultFuchsiaResourceDialect
7253                        );
7254                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7255                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7256                        Ok(RunnerRequest::CallOneWayStructRequest {
7257                            target: req.target,
7258                            request: req.request,
7259
7260                            responder: RunnerCallOneWayStructRequestResponder {
7261                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7262                                tx_id: header.tx_id,
7263                            },
7264                        })
7265                    }
7266                    0x734121bf8bf336ef => {
7267                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7268                        let mut req = fidl::new_empty!(
7269                            RunnerCallOneWayTableRequestRequest,
7270                            fidl::encoding::DefaultFuchsiaResourceDialect
7271                        );
7272                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7273                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7274                        Ok(RunnerRequest::CallOneWayTableRequest {
7275                            target: req.target,
7276                            request: req.request,
7277
7278                            responder: RunnerCallOneWayTableRequestResponder {
7279                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7280                                tx_id: header.tx_id,
7281                            },
7282                        })
7283                    }
7284                    0x9be8e5eb7d50eb6 => {
7285                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7286                        let mut req = fidl::new_empty!(
7287                            RunnerCallOneWayUnionRequestRequest,
7288                            fidl::encoding::DefaultFuchsiaResourceDialect
7289                        );
7290                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7291                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7292                        Ok(RunnerRequest::CallOneWayUnionRequest {
7293                            target: req.target,
7294                            request: req.request,
7295
7296                            responder: RunnerCallOneWayUnionRequestResponder {
7297                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7298                                tx_id: header.tx_id,
7299                            },
7300                        })
7301                    }
7302                    0x4edd0b6f52c0446b => {
7303                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7304                        let mut req = fidl::new_empty!(
7305                            RunnerCallStrictOneWayRequest,
7306                            fidl::encoding::DefaultFuchsiaResourceDialect
7307                        );
7308                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7309                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7310                        Ok(RunnerRequest::CallStrictOneWay {
7311                            target: req.target,
7312
7313                            responder: RunnerCallStrictOneWayResponder {
7314                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7315                                tx_id: header.tx_id,
7316                            },
7317                        })
7318                    }
7319                    0x7253f10a77dfe817 => {
7320                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7321                        let mut req = fidl::new_empty!(
7322                            RunnerCallFlexibleOneWayRequest,
7323                            fidl::encoding::DefaultFuchsiaResourceDialect
7324                        );
7325                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7326                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7327                        Ok(RunnerRequest::CallFlexibleOneWay {
7328                            target: req.target,
7329
7330                            responder: RunnerCallFlexibleOneWayResponder {
7331                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7332                                tx_id: header.tx_id,
7333                            },
7334                        })
7335                    }
7336                    0x1fa9fb7414aedd27 => {
7337                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7338                        let mut req = fidl::new_empty!(
7339                            RunnerCallStrictTwoWayRequest,
7340                            fidl::encoding::DefaultFuchsiaResourceDialect
7341                        );
7342                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7343                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7344                        Ok(RunnerRequest::CallStrictTwoWay {
7345                            target: req.target,
7346
7347                            responder: RunnerCallStrictTwoWayResponder {
7348                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7349                                tx_id: header.tx_id,
7350                            },
7351                        })
7352                    }
7353                    0x6f690e00ebf6f123 => {
7354                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7355                        let mut req = fidl::new_empty!(
7356                            RunnerCallStrictTwoWayFieldsRequest,
7357                            fidl::encoding::DefaultFuchsiaResourceDialect
7358                        );
7359                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7360                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7361                        Ok(RunnerRequest::CallStrictTwoWayFields {
7362                            target: req.target,
7363
7364                            responder: RunnerCallStrictTwoWayFieldsResponder {
7365                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7366                                tx_id: header.tx_id,
7367                            },
7368                        })
7369                    }
7370                    0x51d6bc7cf6cbaf1a => {
7371                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7372                        let mut req = fidl::new_empty!(
7373                            RunnerCallStrictTwoWayErrRequest,
7374                            fidl::encoding::DefaultFuchsiaResourceDialect
7375                        );
7376                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7377                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7378                        Ok(RunnerRequest::CallStrictTwoWayErr {
7379                            target: req.target,
7380
7381                            responder: RunnerCallStrictTwoWayErrResponder {
7382                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7383                                tx_id: header.tx_id,
7384                            },
7385                        })
7386                    }
7387                    0x6fa31ced05074c05 => {
7388                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7389                        let mut req = fidl::new_empty!(
7390                            RunnerCallStrictTwoWayFieldsErrRequest,
7391                            fidl::encoding::DefaultFuchsiaResourceDialect
7392                        );
7393                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7394                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7395                        Ok(RunnerRequest::CallStrictTwoWayFieldsErr {
7396                            target: req.target,
7397
7398                            responder: RunnerCallStrictTwoWayFieldsErrResponder {
7399                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7400                                tx_id: header.tx_id,
7401                            },
7402                        })
7403                    }
7404                    0x411f70724876d49 => {
7405                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7406                        let mut req = fidl::new_empty!(
7407                            RunnerCallFlexibleTwoWayRequest,
7408                            fidl::encoding::DefaultFuchsiaResourceDialect
7409                        );
7410                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7411                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7412                        Ok(RunnerRequest::CallFlexibleTwoWay {
7413                            target: req.target,
7414
7415                            responder: RunnerCallFlexibleTwoWayResponder {
7416                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7417                                tx_id: header.tx_id,
7418                            },
7419                        })
7420                    }
7421                    0x330996b623598eed => {
7422                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7423                        let mut req = fidl::new_empty!(
7424                            RunnerCallFlexibleTwoWayFieldsRequest,
7425                            fidl::encoding::DefaultFuchsiaResourceDialect
7426                        );
7427                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7428                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7429                        Ok(RunnerRequest::CallFlexibleTwoWayFields {
7430                            target: req.target,
7431
7432                            responder: RunnerCallFlexibleTwoWayFieldsResponder {
7433                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7434                                tx_id: header.tx_id,
7435                            },
7436                        })
7437                    }
7438                    0x5ddbf88a353a2a57 => {
7439                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7440                        let mut req = fidl::new_empty!(
7441                            RunnerCallFlexibleTwoWayErrRequest,
7442                            fidl::encoding::DefaultFuchsiaResourceDialect
7443                        );
7444                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7445                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7446                        Ok(RunnerRequest::CallFlexibleTwoWayErr {
7447                            target: req.target,
7448
7449                            responder: RunnerCallFlexibleTwoWayErrResponder {
7450                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7451                                tx_id: header.tx_id,
7452                            },
7453                        })
7454                    }
7455                    0x7ae309383b07048e => {
7456                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7457                        let mut req = fidl::new_empty!(
7458                            RunnerCallFlexibleTwoWayFieldsErrRequest,
7459                            fidl::encoding::DefaultFuchsiaResourceDialect
7460                        );
7461                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7462                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7463                        Ok(RunnerRequest::CallFlexibleTwoWayFieldsErr {
7464                            target: req.target,
7465
7466                            responder: RunnerCallFlexibleTwoWayFieldsErrResponder {
7467                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7468                                tx_id: header.tx_id,
7469                            },
7470                        })
7471                    }
7472                    0x48da834910571aeb => {
7473                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7474                        let mut req = fidl::new_empty!(
7475                            RunnerReceiveClosedEventsRequest,
7476                            fidl::encoding::DefaultFuchsiaResourceDialect
7477                        );
7478                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveClosedEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7479                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7480                        Ok(RunnerRequest::ReceiveClosedEvents {
7481                            target: req.target,
7482                            reporter: req.reporter,
7483
7484                            responder: RunnerReceiveClosedEventsResponder {
7485                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7486                                tx_id: header.tx_id,
7487                            },
7488                        })
7489                    }
7490                    0xc5662b9a9c007a3 => {
7491                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7492                        let mut req = fidl::new_empty!(
7493                            RunnerReceiveAjarEventsRequest,
7494                            fidl::encoding::DefaultFuchsiaResourceDialect
7495                        );
7496                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveAjarEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7497                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7498                        Ok(RunnerRequest::ReceiveAjarEvents {
7499                            target: req.target,
7500                            reporter: req.reporter,
7501
7502                            responder: RunnerReceiveAjarEventsResponder {
7503                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7504                                tx_id: header.tx_id,
7505                            },
7506                        })
7507                    }
7508                    0x79a7073fd18edbdf => {
7509                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7510                        let mut req = fidl::new_empty!(
7511                            RunnerReceiveOpenEventsRequest,
7512                            fidl::encoding::DefaultFuchsiaResourceDialect
7513                        );
7514                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveOpenEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7515                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7516                        Ok(RunnerRequest::ReceiveOpenEvents {
7517                            target: req.target,
7518                            reporter: req.reporter,
7519
7520                            responder: RunnerReceiveOpenEventsResponder {
7521                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7522                                tx_id: header.tx_id,
7523                            },
7524                        })
7525                    }
7526                    _ => Err(fidl::Error::UnknownOrdinal {
7527                        ordinal: header.ordinal,
7528                        protocol_name:
7529                            <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
7530                    }),
7531                }))
7532            },
7533        )
7534    }
7535}
7536
7537#[derive(Debug)]
7538pub enum RunnerRequest {
7539    GetVersion {
7540        responder: RunnerGetVersionResponder,
7541    },
7542    IsTestEnabled {
7543        test: Test,
7544        responder: RunnerIsTestEnabledResponder,
7545    },
7546    CheckAlive {
7547        responder: RunnerCheckAliveResponder,
7548    },
7549    GetBindingsProperties {
7550        responder: RunnerGetBindingsPropertiesResponder,
7551    },
7552    CallTwoWayNoPayload {
7553        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7554        responder: RunnerCallTwoWayNoPayloadResponder,
7555    },
7556    CallTwoWayStructPayload {
7557        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7558        responder: RunnerCallTwoWayStructPayloadResponder,
7559    },
7560    CallTwoWayTablePayload {
7561        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7562        responder: RunnerCallTwoWayTablePayloadResponder,
7563    },
7564    CallTwoWayUnionPayload {
7565        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7566        responder: RunnerCallTwoWayUnionPayloadResponder,
7567    },
7568    CallTwoWayStructPayloadErr {
7569        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7570        responder: RunnerCallTwoWayStructPayloadErrResponder,
7571    },
7572    CallTwoWayStructRequest {
7573        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7574        request: NonEmptyPayload,
7575        responder: RunnerCallTwoWayStructRequestResponder,
7576    },
7577    CallTwoWayTableRequest {
7578        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7579        request: TablePayload,
7580        responder: RunnerCallTwoWayTableRequestResponder,
7581    },
7582    CallTwoWayUnionRequest {
7583        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7584        request: UnionPayload,
7585        responder: RunnerCallTwoWayUnionRequestResponder,
7586    },
7587    CallOneWayNoRequest {
7588        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7589        responder: RunnerCallOneWayNoRequestResponder,
7590    },
7591    CallOneWayStructRequest {
7592        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7593        request: NonEmptyPayload,
7594        responder: RunnerCallOneWayStructRequestResponder,
7595    },
7596    CallOneWayTableRequest {
7597        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7598        request: TablePayload,
7599        responder: RunnerCallOneWayTableRequestResponder,
7600    },
7601    CallOneWayUnionRequest {
7602        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7603        request: UnionPayload,
7604        responder: RunnerCallOneWayUnionRequestResponder,
7605    },
7606    CallStrictOneWay {
7607        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7608        responder: RunnerCallStrictOneWayResponder,
7609    },
7610    CallFlexibleOneWay {
7611        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7612        responder: RunnerCallFlexibleOneWayResponder,
7613    },
7614    CallStrictTwoWay {
7615        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7616        responder: RunnerCallStrictTwoWayResponder,
7617    },
7618    CallStrictTwoWayFields {
7619        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7620        responder: RunnerCallStrictTwoWayFieldsResponder,
7621    },
7622    CallStrictTwoWayErr {
7623        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7624        responder: RunnerCallStrictTwoWayErrResponder,
7625    },
7626    CallStrictTwoWayFieldsErr {
7627        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7628        responder: RunnerCallStrictTwoWayFieldsErrResponder,
7629    },
7630    CallFlexibleTwoWay {
7631        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7632        responder: RunnerCallFlexibleTwoWayResponder,
7633    },
7634    CallFlexibleTwoWayFields {
7635        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7636        responder: RunnerCallFlexibleTwoWayFieldsResponder,
7637    },
7638    CallFlexibleTwoWayErr {
7639        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7640        responder: RunnerCallFlexibleTwoWayErrResponder,
7641    },
7642    CallFlexibleTwoWayFieldsErr {
7643        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7644        responder: RunnerCallFlexibleTwoWayFieldsErrResponder,
7645    },
7646    ReceiveClosedEvents {
7647        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7648        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7649        responder: RunnerReceiveClosedEventsResponder,
7650    },
7651    ReceiveAjarEvents {
7652        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
7653        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7654        responder: RunnerReceiveAjarEventsResponder,
7655    },
7656    ReceiveOpenEvents {
7657        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7658        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7659        responder: RunnerReceiveOpenEventsResponder,
7660    },
7661}
7662
7663impl RunnerRequest {
7664    #[allow(irrefutable_let_patterns)]
7665    pub fn into_get_version(self) -> Option<(RunnerGetVersionResponder)> {
7666        if let RunnerRequest::GetVersion { responder } = self { Some((responder)) } else { None }
7667    }
7668
7669    #[allow(irrefutable_let_patterns)]
7670    pub fn into_is_test_enabled(self) -> Option<(Test, RunnerIsTestEnabledResponder)> {
7671        if let RunnerRequest::IsTestEnabled { test, responder } = self {
7672            Some((test, responder))
7673        } else {
7674            None
7675        }
7676    }
7677
7678    #[allow(irrefutable_let_patterns)]
7679    pub fn into_check_alive(self) -> Option<(RunnerCheckAliveResponder)> {
7680        if let RunnerRequest::CheckAlive { responder } = self { Some((responder)) } else { None }
7681    }
7682
7683    #[allow(irrefutable_let_patterns)]
7684    pub fn into_get_bindings_properties(self) -> Option<(RunnerGetBindingsPropertiesResponder)> {
7685        if let RunnerRequest::GetBindingsProperties { responder } = self {
7686            Some((responder))
7687        } else {
7688            None
7689        }
7690    }
7691
7692    #[allow(irrefutable_let_patterns)]
7693    pub fn into_call_two_way_no_payload(
7694        self,
7695    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallTwoWayNoPayloadResponder)>
7696    {
7697        if let RunnerRequest::CallTwoWayNoPayload { target, responder } = self {
7698            Some((target, responder))
7699        } else {
7700            None
7701        }
7702    }
7703
7704    #[allow(irrefutable_let_patterns)]
7705    pub fn into_call_two_way_struct_payload(
7706        self,
7707    ) -> Option<(
7708        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7709        RunnerCallTwoWayStructPayloadResponder,
7710    )> {
7711        if let RunnerRequest::CallTwoWayStructPayload { target, responder } = self {
7712            Some((target, responder))
7713        } else {
7714            None
7715        }
7716    }
7717
7718    #[allow(irrefutable_let_patterns)]
7719    pub fn into_call_two_way_table_payload(
7720        self,
7721    ) -> Option<(
7722        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7723        RunnerCallTwoWayTablePayloadResponder,
7724    )> {
7725        if let RunnerRequest::CallTwoWayTablePayload { target, responder } = self {
7726            Some((target, responder))
7727        } else {
7728            None
7729        }
7730    }
7731
7732    #[allow(irrefutable_let_patterns)]
7733    pub fn into_call_two_way_union_payload(
7734        self,
7735    ) -> Option<(
7736        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7737        RunnerCallTwoWayUnionPayloadResponder,
7738    )> {
7739        if let RunnerRequest::CallTwoWayUnionPayload { target, responder } = self {
7740            Some((target, responder))
7741        } else {
7742            None
7743        }
7744    }
7745
7746    #[allow(irrefutable_let_patterns)]
7747    pub fn into_call_two_way_struct_payload_err(
7748        self,
7749    ) -> Option<(
7750        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7751        RunnerCallTwoWayStructPayloadErrResponder,
7752    )> {
7753        if let RunnerRequest::CallTwoWayStructPayloadErr { target, responder } = self {
7754            Some((target, responder))
7755        } else {
7756            None
7757        }
7758    }
7759
7760    #[allow(irrefutable_let_patterns)]
7761    pub fn into_call_two_way_struct_request(
7762        self,
7763    ) -> Option<(
7764        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7765        NonEmptyPayload,
7766        RunnerCallTwoWayStructRequestResponder,
7767    )> {
7768        if let RunnerRequest::CallTwoWayStructRequest { target, request, responder } = self {
7769            Some((target, request, responder))
7770        } else {
7771            None
7772        }
7773    }
7774
7775    #[allow(irrefutable_let_patterns)]
7776    pub fn into_call_two_way_table_request(
7777        self,
7778    ) -> Option<(
7779        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7780        TablePayload,
7781        RunnerCallTwoWayTableRequestResponder,
7782    )> {
7783        if let RunnerRequest::CallTwoWayTableRequest { target, request, responder } = self {
7784            Some((target, request, responder))
7785        } else {
7786            None
7787        }
7788    }
7789
7790    #[allow(irrefutable_let_patterns)]
7791    pub fn into_call_two_way_union_request(
7792        self,
7793    ) -> Option<(
7794        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7795        UnionPayload,
7796        RunnerCallTwoWayUnionRequestResponder,
7797    )> {
7798        if let RunnerRequest::CallTwoWayUnionRequest { target, request, responder } = self {
7799            Some((target, request, responder))
7800        } else {
7801            None
7802        }
7803    }
7804
7805    #[allow(irrefutable_let_patterns)]
7806    pub fn into_call_one_way_no_request(
7807        self,
7808    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallOneWayNoRequestResponder)>
7809    {
7810        if let RunnerRequest::CallOneWayNoRequest { target, responder } = self {
7811            Some((target, responder))
7812        } else {
7813            None
7814        }
7815    }
7816
7817    #[allow(irrefutable_let_patterns)]
7818    pub fn into_call_one_way_struct_request(
7819        self,
7820    ) -> Option<(
7821        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7822        NonEmptyPayload,
7823        RunnerCallOneWayStructRequestResponder,
7824    )> {
7825        if let RunnerRequest::CallOneWayStructRequest { target, request, responder } = self {
7826            Some((target, request, responder))
7827        } else {
7828            None
7829        }
7830    }
7831
7832    #[allow(irrefutable_let_patterns)]
7833    pub fn into_call_one_way_table_request(
7834        self,
7835    ) -> Option<(
7836        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7837        TablePayload,
7838        RunnerCallOneWayTableRequestResponder,
7839    )> {
7840        if let RunnerRequest::CallOneWayTableRequest { target, request, responder } = self {
7841            Some((target, request, responder))
7842        } else {
7843            None
7844        }
7845    }
7846
7847    #[allow(irrefutable_let_patterns)]
7848    pub fn into_call_one_way_union_request(
7849        self,
7850    ) -> Option<(
7851        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7852        UnionPayload,
7853        RunnerCallOneWayUnionRequestResponder,
7854    )> {
7855        if let RunnerRequest::CallOneWayUnionRequest { target, request, responder } = self {
7856            Some((target, request, responder))
7857        } else {
7858            None
7859        }
7860    }
7861
7862    #[allow(irrefutable_let_patterns)]
7863    pub fn into_call_strict_one_way(
7864        self,
7865    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictOneWayResponder)>
7866    {
7867        if let RunnerRequest::CallStrictOneWay { target, responder } = self {
7868            Some((target, responder))
7869        } else {
7870            None
7871        }
7872    }
7873
7874    #[allow(irrefutable_let_patterns)]
7875    pub fn into_call_flexible_one_way(
7876        self,
7877    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleOneWayResponder)>
7878    {
7879        if let RunnerRequest::CallFlexibleOneWay { 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(
7888        self,
7889    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayResponder)>
7890    {
7891        if let RunnerRequest::CallStrictTwoWay { target, responder } = self {
7892            Some((target, responder))
7893        } else {
7894            None
7895        }
7896    }
7897
7898    #[allow(irrefutable_let_patterns)]
7899    pub fn into_call_strict_two_way_fields(
7900        self,
7901    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayFieldsResponder)>
7902    {
7903        if let RunnerRequest::CallStrictTwoWayFields { target, responder } = self {
7904            Some((target, responder))
7905        } else {
7906            None
7907        }
7908    }
7909
7910    #[allow(irrefutable_let_patterns)]
7911    pub fn into_call_strict_two_way_err(
7912        self,
7913    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayErrResponder)>
7914    {
7915        if let RunnerRequest::CallStrictTwoWayErr { target, responder } = self {
7916            Some((target, responder))
7917        } else {
7918            None
7919        }
7920    }
7921
7922    #[allow(irrefutable_let_patterns)]
7923    pub fn into_call_strict_two_way_fields_err(
7924        self,
7925    ) -> Option<(
7926        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7927        RunnerCallStrictTwoWayFieldsErrResponder,
7928    )> {
7929        if let RunnerRequest::CallStrictTwoWayFieldsErr { target, responder } = self {
7930            Some((target, responder))
7931        } else {
7932            None
7933        }
7934    }
7935
7936    #[allow(irrefutable_let_patterns)]
7937    pub fn into_call_flexible_two_way(
7938        self,
7939    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayResponder)>
7940    {
7941        if let RunnerRequest::CallFlexibleTwoWay { target, responder } = self {
7942            Some((target, responder))
7943        } else {
7944            None
7945        }
7946    }
7947
7948    #[allow(irrefutable_let_patterns)]
7949    pub fn into_call_flexible_two_way_fields(
7950        self,
7951    ) -> Option<(
7952        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7953        RunnerCallFlexibleTwoWayFieldsResponder,
7954    )> {
7955        if let RunnerRequest::CallFlexibleTwoWayFields { target, responder } = self {
7956            Some((target, responder))
7957        } else {
7958            None
7959        }
7960    }
7961
7962    #[allow(irrefutable_let_patterns)]
7963    pub fn into_call_flexible_two_way_err(
7964        self,
7965    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayErrResponder)>
7966    {
7967        if let RunnerRequest::CallFlexibleTwoWayErr { target, responder } = self {
7968            Some((target, responder))
7969        } else {
7970            None
7971        }
7972    }
7973
7974    #[allow(irrefutable_let_patterns)]
7975    pub fn into_call_flexible_two_way_fields_err(
7976        self,
7977    ) -> Option<(
7978        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7979        RunnerCallFlexibleTwoWayFieldsErrResponder,
7980    )> {
7981        if let RunnerRequest::CallFlexibleTwoWayFieldsErr { target, responder } = self {
7982            Some((target, responder))
7983        } else {
7984            None
7985        }
7986    }
7987
7988    #[allow(irrefutable_let_patterns)]
7989    pub fn into_receive_closed_events(
7990        self,
7991    ) -> Option<(
7992        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7993        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7994        RunnerReceiveClosedEventsResponder,
7995    )> {
7996        if let RunnerRequest::ReceiveClosedEvents { target, reporter, responder } = self {
7997            Some((target, reporter, responder))
7998        } else {
7999            None
8000        }
8001    }
8002
8003    #[allow(irrefutable_let_patterns)]
8004    pub fn into_receive_ajar_events(
8005        self,
8006    ) -> Option<(
8007        fidl::endpoints::ClientEnd<AjarTargetMarker>,
8008        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
8009        RunnerReceiveAjarEventsResponder,
8010    )> {
8011        if let RunnerRequest::ReceiveAjarEvents { target, reporter, responder } = self {
8012            Some((target, reporter, responder))
8013        } else {
8014            None
8015        }
8016    }
8017
8018    #[allow(irrefutable_let_patterns)]
8019    pub fn into_receive_open_events(
8020        self,
8021    ) -> Option<(
8022        fidl::endpoints::ClientEnd<OpenTargetMarker>,
8023        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
8024        RunnerReceiveOpenEventsResponder,
8025    )> {
8026        if let RunnerRequest::ReceiveOpenEvents { target, reporter, responder } = self {
8027            Some((target, reporter, responder))
8028        } else {
8029            None
8030        }
8031    }
8032
8033    /// Name of the method defined in FIDL
8034    pub fn method_name(&self) -> &'static str {
8035        match *self {
8036            RunnerRequest::GetVersion { .. } => "get_version",
8037            RunnerRequest::IsTestEnabled { .. } => "is_test_enabled",
8038            RunnerRequest::CheckAlive { .. } => "check_alive",
8039            RunnerRequest::GetBindingsProperties { .. } => "get_bindings_properties",
8040            RunnerRequest::CallTwoWayNoPayload { .. } => "call_two_way_no_payload",
8041            RunnerRequest::CallTwoWayStructPayload { .. } => "call_two_way_struct_payload",
8042            RunnerRequest::CallTwoWayTablePayload { .. } => "call_two_way_table_payload",
8043            RunnerRequest::CallTwoWayUnionPayload { .. } => "call_two_way_union_payload",
8044            RunnerRequest::CallTwoWayStructPayloadErr { .. } => "call_two_way_struct_payload_err",
8045            RunnerRequest::CallTwoWayStructRequest { .. } => "call_two_way_struct_request",
8046            RunnerRequest::CallTwoWayTableRequest { .. } => "call_two_way_table_request",
8047            RunnerRequest::CallTwoWayUnionRequest { .. } => "call_two_way_union_request",
8048            RunnerRequest::CallOneWayNoRequest { .. } => "call_one_way_no_request",
8049            RunnerRequest::CallOneWayStructRequest { .. } => "call_one_way_struct_request",
8050            RunnerRequest::CallOneWayTableRequest { .. } => "call_one_way_table_request",
8051            RunnerRequest::CallOneWayUnionRequest { .. } => "call_one_way_union_request",
8052            RunnerRequest::CallStrictOneWay { .. } => "call_strict_one_way",
8053            RunnerRequest::CallFlexibleOneWay { .. } => "call_flexible_one_way",
8054            RunnerRequest::CallStrictTwoWay { .. } => "call_strict_two_way",
8055            RunnerRequest::CallStrictTwoWayFields { .. } => "call_strict_two_way_fields",
8056            RunnerRequest::CallStrictTwoWayErr { .. } => "call_strict_two_way_err",
8057            RunnerRequest::CallStrictTwoWayFieldsErr { .. } => "call_strict_two_way_fields_err",
8058            RunnerRequest::CallFlexibleTwoWay { .. } => "call_flexible_two_way",
8059            RunnerRequest::CallFlexibleTwoWayFields { .. } => "call_flexible_two_way_fields",
8060            RunnerRequest::CallFlexibleTwoWayErr { .. } => "call_flexible_two_way_err",
8061            RunnerRequest::CallFlexibleTwoWayFieldsErr { .. } => "call_flexible_two_way_fields_err",
8062            RunnerRequest::ReceiveClosedEvents { .. } => "receive_closed_events",
8063            RunnerRequest::ReceiveAjarEvents { .. } => "receive_ajar_events",
8064            RunnerRequest::ReceiveOpenEvents { .. } => "receive_open_events",
8065        }
8066    }
8067}
8068
8069#[derive(Debug, Clone)]
8070pub struct RunnerControlHandle {
8071    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
8072}
8073
8074impl RunnerControlHandle {
8075    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
8076        self.inner.shutdown_with_epitaph(status.into())
8077    }
8078}
8079
8080impl fidl::endpoints::ControlHandle for RunnerControlHandle {
8081    fn shutdown(&self) {
8082        self.inner.shutdown()
8083    }
8084
8085    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
8086        self.inner.shutdown_with_epitaph(status)
8087    }
8088
8089    fn is_closed(&self) -> bool {
8090        self.inner.channel().is_closed()
8091    }
8092    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
8093        self.inner.channel().on_closed()
8094    }
8095
8096    #[cfg(target_os = "fuchsia")]
8097    fn signal_peer(
8098        &self,
8099        clear_mask: zx::Signals,
8100        set_mask: zx::Signals,
8101    ) -> Result<(), zx_status::Status> {
8102        use fidl::Peered;
8103        self.inner.channel().signal_peer(clear_mask, set_mask)
8104    }
8105}
8106
8107impl RunnerControlHandle {}
8108
8109#[must_use = "FIDL methods require a response to be sent"]
8110#[derive(Debug)]
8111pub struct RunnerGetVersionResponder {
8112    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8113    tx_id: u32,
8114}
8115
8116/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8117/// if the responder is dropped without sending a response, so that the client
8118/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8119impl std::ops::Drop for RunnerGetVersionResponder {
8120    fn drop(&mut self) {
8121        self.control_handle.shutdown();
8122        // Safety: drops once, never accessed again
8123        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8124    }
8125}
8126
8127impl fidl::endpoints::Responder for RunnerGetVersionResponder {
8128    type ControlHandle = RunnerControlHandle;
8129
8130    fn control_handle(&self) -> &RunnerControlHandle {
8131        &self.control_handle
8132    }
8133
8134    fn drop_without_shutdown(mut self) {
8135        // Safety: drops once, never accessed again due to mem::forget
8136        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8137        // Prevent Drop from running (which would shut down the channel)
8138        std::mem::forget(self);
8139    }
8140}
8141
8142impl RunnerGetVersionResponder {
8143    /// Sends a response to the FIDL transaction.
8144    ///
8145    /// Sets the channel to shutdown if an error occurs.
8146    pub fn send(self, mut version: u64) -> Result<(), fidl::Error> {
8147        let _result = self.send_raw(version);
8148        if _result.is_err() {
8149            self.control_handle.shutdown();
8150        }
8151        self.drop_without_shutdown();
8152        _result
8153    }
8154
8155    /// Similar to "send" but does not shutdown the channel if an error occurs.
8156    pub fn send_no_shutdown_on_err(self, mut version: u64) -> Result<(), fidl::Error> {
8157        let _result = self.send_raw(version);
8158        self.drop_without_shutdown();
8159        _result
8160    }
8161
8162    fn send_raw(&self, mut version: u64) -> Result<(), fidl::Error> {
8163        self.control_handle.inner.send::<RunnerGetVersionResponse>(
8164            (version,),
8165            self.tx_id,
8166            0x555d1430b913cdd4,
8167            fidl::encoding::DynamicFlags::empty(),
8168        )
8169    }
8170}
8171
8172#[must_use = "FIDL methods require a response to be sent"]
8173#[derive(Debug)]
8174pub struct RunnerIsTestEnabledResponder {
8175    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8176    tx_id: u32,
8177}
8178
8179/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8180/// if the responder is dropped without sending a response, so that the client
8181/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8182impl std::ops::Drop for RunnerIsTestEnabledResponder {
8183    fn drop(&mut self) {
8184        self.control_handle.shutdown();
8185        // Safety: drops once, never accessed again
8186        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8187    }
8188}
8189
8190impl fidl::endpoints::Responder for RunnerIsTestEnabledResponder {
8191    type ControlHandle = RunnerControlHandle;
8192
8193    fn control_handle(&self) -> &RunnerControlHandle {
8194        &self.control_handle
8195    }
8196
8197    fn drop_without_shutdown(mut self) {
8198        // Safety: drops once, never accessed again due to mem::forget
8199        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8200        // Prevent Drop from running (which would shut down the channel)
8201        std::mem::forget(self);
8202    }
8203}
8204
8205impl RunnerIsTestEnabledResponder {
8206    /// Sends a response to the FIDL transaction.
8207    ///
8208    /// Sets the channel to shutdown if an error occurs.
8209    pub fn send(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8210        let _result = self.send_raw(is_enabled);
8211        if _result.is_err() {
8212            self.control_handle.shutdown();
8213        }
8214        self.drop_without_shutdown();
8215        _result
8216    }
8217
8218    /// Similar to "send" but does not shutdown the channel if an error occurs.
8219    pub fn send_no_shutdown_on_err(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8220        let _result = self.send_raw(is_enabled);
8221        self.drop_without_shutdown();
8222        _result
8223    }
8224
8225    fn send_raw(&self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8226        self.control_handle.inner.send::<RunnerIsTestEnabledResponse>(
8227            (is_enabled,),
8228            self.tx_id,
8229            0x755bc493368d7c50,
8230            fidl::encoding::DynamicFlags::empty(),
8231        )
8232    }
8233}
8234
8235#[must_use = "FIDL methods require a response to be sent"]
8236#[derive(Debug)]
8237pub struct RunnerCheckAliveResponder {
8238    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8239    tx_id: u32,
8240}
8241
8242/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8243/// if the responder is dropped without sending a response, so that the client
8244/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8245impl std::ops::Drop for RunnerCheckAliveResponder {
8246    fn drop(&mut self) {
8247        self.control_handle.shutdown();
8248        // Safety: drops once, never accessed again
8249        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8250    }
8251}
8252
8253impl fidl::endpoints::Responder for RunnerCheckAliveResponder {
8254    type ControlHandle = RunnerControlHandle;
8255
8256    fn control_handle(&self) -> &RunnerControlHandle {
8257        &self.control_handle
8258    }
8259
8260    fn drop_without_shutdown(mut self) {
8261        // Safety: drops once, never accessed again due to mem::forget
8262        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8263        // Prevent Drop from running (which would shut down the channel)
8264        std::mem::forget(self);
8265    }
8266}
8267
8268impl RunnerCheckAliveResponder {
8269    /// Sends a response to the FIDL transaction.
8270    ///
8271    /// Sets the channel to shutdown if an error occurs.
8272    pub fn send(self) -> Result<(), fidl::Error> {
8273        let _result = self.send_raw();
8274        if _result.is_err() {
8275            self.control_handle.shutdown();
8276        }
8277        self.drop_without_shutdown();
8278        _result
8279    }
8280
8281    /// Similar to "send" but does not shutdown the channel if an error occurs.
8282    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8283        let _result = self.send_raw();
8284        self.drop_without_shutdown();
8285        _result
8286    }
8287
8288    fn send_raw(&self) -> Result<(), fidl::Error> {
8289        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8290            (),
8291            self.tx_id,
8292            0x5a77b04abdfde130,
8293            fidl::encoding::DynamicFlags::empty(),
8294        )
8295    }
8296}
8297
8298#[must_use = "FIDL methods require a response to be sent"]
8299#[derive(Debug)]
8300pub struct RunnerGetBindingsPropertiesResponder {
8301    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8302    tx_id: u32,
8303}
8304
8305/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8306/// if the responder is dropped without sending a response, so that the client
8307/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8308impl std::ops::Drop for RunnerGetBindingsPropertiesResponder {
8309    fn drop(&mut self) {
8310        self.control_handle.shutdown();
8311        // Safety: drops once, never accessed again
8312        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8313    }
8314}
8315
8316impl fidl::endpoints::Responder for RunnerGetBindingsPropertiesResponder {
8317    type ControlHandle = RunnerControlHandle;
8318
8319    fn control_handle(&self) -> &RunnerControlHandle {
8320        &self.control_handle
8321    }
8322
8323    fn drop_without_shutdown(mut self) {
8324        // Safety: drops once, never accessed again due to mem::forget
8325        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8326        // Prevent Drop from running (which would shut down the channel)
8327        std::mem::forget(self);
8328    }
8329}
8330
8331impl RunnerGetBindingsPropertiesResponder {
8332    /// Sends a response to the FIDL transaction.
8333    ///
8334    /// Sets the channel to shutdown if an error occurs.
8335    pub fn send(self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8336        let _result = self.send_raw(payload);
8337        if _result.is_err() {
8338            self.control_handle.shutdown();
8339        }
8340        self.drop_without_shutdown();
8341        _result
8342    }
8343
8344    /// Similar to "send" but does not shutdown the channel if an error occurs.
8345    pub fn send_no_shutdown_on_err(
8346        self,
8347        mut payload: &BindingsProperties,
8348    ) -> Result<(), fidl::Error> {
8349        let _result = self.send_raw(payload);
8350        self.drop_without_shutdown();
8351        _result
8352    }
8353
8354    fn send_raw(&self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8355        self.control_handle.inner.send::<BindingsProperties>(
8356            payload,
8357            self.tx_id,
8358            0x76b5610bfd4fa636,
8359            fidl::encoding::DynamicFlags::empty(),
8360        )
8361    }
8362}
8363
8364#[must_use = "FIDL methods require a response to be sent"]
8365#[derive(Debug)]
8366pub struct RunnerCallTwoWayNoPayloadResponder {
8367    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8368    tx_id: u32,
8369}
8370
8371/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8372/// if the responder is dropped without sending a response, so that the client
8373/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8374impl std::ops::Drop for RunnerCallTwoWayNoPayloadResponder {
8375    fn drop(&mut self) {
8376        self.control_handle.shutdown();
8377        // Safety: drops once, never accessed again
8378        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8379    }
8380}
8381
8382impl fidl::endpoints::Responder for RunnerCallTwoWayNoPayloadResponder {
8383    type ControlHandle = RunnerControlHandle;
8384
8385    fn control_handle(&self) -> &RunnerControlHandle {
8386        &self.control_handle
8387    }
8388
8389    fn drop_without_shutdown(mut self) {
8390        // Safety: drops once, never accessed again due to mem::forget
8391        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8392        // Prevent Drop from running (which would shut down the channel)
8393        std::mem::forget(self);
8394    }
8395}
8396
8397impl RunnerCallTwoWayNoPayloadResponder {
8398    /// Sends a response to the FIDL transaction.
8399    ///
8400    /// Sets the channel to shutdown if an error occurs.
8401    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8402        let _result = self.send_raw(payload);
8403        if _result.is_err() {
8404            self.control_handle.shutdown();
8405        }
8406        self.drop_without_shutdown();
8407        _result
8408    }
8409
8410    /// Similar to "send" but does not shutdown the channel if an error occurs.
8411    pub fn send_no_shutdown_on_err(
8412        self,
8413        mut payload: &EmptyResultClassification,
8414    ) -> Result<(), fidl::Error> {
8415        let _result = self.send_raw(payload);
8416        self.drop_without_shutdown();
8417        _result
8418    }
8419
8420    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8421        self.control_handle.inner.send::<EmptyResultClassification>(
8422            payload,
8423            self.tx_id,
8424            0x53ac710c20b320a1,
8425            fidl::encoding::DynamicFlags::empty(),
8426        )
8427    }
8428}
8429
8430#[must_use = "FIDL methods require a response to be sent"]
8431#[derive(Debug)]
8432pub struct RunnerCallTwoWayStructPayloadResponder {
8433    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8434    tx_id: u32,
8435}
8436
8437/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8438/// if the responder is dropped without sending a response, so that the client
8439/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8440impl std::ops::Drop for RunnerCallTwoWayStructPayloadResponder {
8441    fn drop(&mut self) {
8442        self.control_handle.shutdown();
8443        // Safety: drops once, never accessed again
8444        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8445    }
8446}
8447
8448impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadResponder {
8449    type ControlHandle = RunnerControlHandle;
8450
8451    fn control_handle(&self) -> &RunnerControlHandle {
8452        &self.control_handle
8453    }
8454
8455    fn drop_without_shutdown(mut self) {
8456        // Safety: drops once, never accessed again due to mem::forget
8457        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8458        // Prevent Drop from running (which would shut down the channel)
8459        std::mem::forget(self);
8460    }
8461}
8462
8463impl RunnerCallTwoWayStructPayloadResponder {
8464    /// Sends a response to the FIDL transaction.
8465    ///
8466    /// Sets the channel to shutdown if an error occurs.
8467    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8468        let _result = self.send_raw(payload);
8469        if _result.is_err() {
8470            self.control_handle.shutdown();
8471        }
8472        self.drop_without_shutdown();
8473        _result
8474    }
8475
8476    /// Similar to "send" but does not shutdown the channel if an error occurs.
8477    pub fn send_no_shutdown_on_err(
8478        self,
8479        mut payload: &NonEmptyResultClassification,
8480    ) -> Result<(), fidl::Error> {
8481        let _result = self.send_raw(payload);
8482        self.drop_without_shutdown();
8483        _result
8484    }
8485
8486    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8487        self.control_handle.inner.send::<NonEmptyResultClassification>(
8488            payload,
8489            self.tx_id,
8490            0x24e98c668499b946,
8491            fidl::encoding::DynamicFlags::empty(),
8492        )
8493    }
8494}
8495
8496#[must_use = "FIDL methods require a response to be sent"]
8497#[derive(Debug)]
8498pub struct RunnerCallTwoWayTablePayloadResponder {
8499    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8500    tx_id: u32,
8501}
8502
8503/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8504/// if the responder is dropped without sending a response, so that the client
8505/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8506impl std::ops::Drop for RunnerCallTwoWayTablePayloadResponder {
8507    fn drop(&mut self) {
8508        self.control_handle.shutdown();
8509        // Safety: drops once, never accessed again
8510        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8511    }
8512}
8513
8514impl fidl::endpoints::Responder for RunnerCallTwoWayTablePayloadResponder {
8515    type ControlHandle = RunnerControlHandle;
8516
8517    fn control_handle(&self) -> &RunnerControlHandle {
8518        &self.control_handle
8519    }
8520
8521    fn drop_without_shutdown(mut self) {
8522        // Safety: drops once, never accessed again due to mem::forget
8523        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8524        // Prevent Drop from running (which would shut down the channel)
8525        std::mem::forget(self);
8526    }
8527}
8528
8529impl RunnerCallTwoWayTablePayloadResponder {
8530    /// Sends a response to the FIDL transaction.
8531    ///
8532    /// Sets the channel to shutdown if an error occurs.
8533    pub fn send(self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8534        let _result = self.send_raw(payload);
8535        if _result.is_err() {
8536            self.control_handle.shutdown();
8537        }
8538        self.drop_without_shutdown();
8539        _result
8540    }
8541
8542    /// Similar to "send" but does not shutdown the channel if an error occurs.
8543    pub fn send_no_shutdown_on_err(
8544        self,
8545        mut payload: &TableResultClassification,
8546    ) -> Result<(), fidl::Error> {
8547        let _result = self.send_raw(payload);
8548        self.drop_without_shutdown();
8549        _result
8550    }
8551
8552    fn send_raw(&self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8553        self.control_handle.inner.send::<TableResultClassification>(
8554            payload,
8555            self.tx_id,
8556            0x72e428e1605b76a,
8557            fidl::encoding::DynamicFlags::empty(),
8558        )
8559    }
8560}
8561
8562#[must_use = "FIDL methods require a response to be sent"]
8563#[derive(Debug)]
8564pub struct RunnerCallTwoWayUnionPayloadResponder {
8565    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8566    tx_id: u32,
8567}
8568
8569/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8570/// if the responder is dropped without sending a response, so that the client
8571/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8572impl std::ops::Drop for RunnerCallTwoWayUnionPayloadResponder {
8573    fn drop(&mut self) {
8574        self.control_handle.shutdown();
8575        // Safety: drops once, never accessed again
8576        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8577    }
8578}
8579
8580impl fidl::endpoints::Responder for RunnerCallTwoWayUnionPayloadResponder {
8581    type ControlHandle = RunnerControlHandle;
8582
8583    fn control_handle(&self) -> &RunnerControlHandle {
8584        &self.control_handle
8585    }
8586
8587    fn drop_without_shutdown(mut self) {
8588        // Safety: drops once, never accessed again due to mem::forget
8589        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8590        // Prevent Drop from running (which would shut down the channel)
8591        std::mem::forget(self);
8592    }
8593}
8594
8595impl RunnerCallTwoWayUnionPayloadResponder {
8596    /// Sends a response to the FIDL transaction.
8597    ///
8598    /// Sets the channel to shutdown if an error occurs.
8599    pub fn send(self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8600        let _result = self.send_raw(payload);
8601        if _result.is_err() {
8602            self.control_handle.shutdown();
8603        }
8604        self.drop_without_shutdown();
8605        _result
8606    }
8607
8608    /// Similar to "send" but does not shutdown the channel if an error occurs.
8609    pub fn send_no_shutdown_on_err(
8610        self,
8611        mut payload: &UnionResultClassification,
8612    ) -> Result<(), fidl::Error> {
8613        let _result = self.send_raw(payload);
8614        self.drop_without_shutdown();
8615        _result
8616    }
8617
8618    fn send_raw(&self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8619        self.control_handle.inner.send::<UnionResultClassification>(
8620            payload,
8621            self.tx_id,
8622            0x7dc9d67218343860,
8623            fidl::encoding::DynamicFlags::empty(),
8624        )
8625    }
8626}
8627
8628#[must_use = "FIDL methods require a response to be sent"]
8629#[derive(Debug)]
8630pub struct RunnerCallTwoWayStructPayloadErrResponder {
8631    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8632    tx_id: u32,
8633}
8634
8635/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8636/// if the responder is dropped without sending a response, so that the client
8637/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8638impl std::ops::Drop for RunnerCallTwoWayStructPayloadErrResponder {
8639    fn drop(&mut self) {
8640        self.control_handle.shutdown();
8641        // Safety: drops once, never accessed again
8642        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8643    }
8644}
8645
8646impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadErrResponder {
8647    type ControlHandle = RunnerControlHandle;
8648
8649    fn control_handle(&self) -> &RunnerControlHandle {
8650        &self.control_handle
8651    }
8652
8653    fn drop_without_shutdown(mut self) {
8654        // Safety: drops once, never accessed again due to mem::forget
8655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8656        // Prevent Drop from running (which would shut down the channel)
8657        std::mem::forget(self);
8658    }
8659}
8660
8661impl RunnerCallTwoWayStructPayloadErrResponder {
8662    /// Sends a response to the FIDL transaction.
8663    ///
8664    /// Sets the channel to shutdown if an error occurs.
8665    pub fn send(
8666        self,
8667        mut payload: &NonEmptyResultWithErrorClassification,
8668    ) -> Result<(), fidl::Error> {
8669        let _result = self.send_raw(payload);
8670        if _result.is_err() {
8671            self.control_handle.shutdown();
8672        }
8673        self.drop_without_shutdown();
8674        _result
8675    }
8676
8677    /// Similar to "send" but does not shutdown the channel if an error occurs.
8678    pub fn send_no_shutdown_on_err(
8679        self,
8680        mut payload: &NonEmptyResultWithErrorClassification,
8681    ) -> Result<(), fidl::Error> {
8682        let _result = self.send_raw(payload);
8683        self.drop_without_shutdown();
8684        _result
8685    }
8686
8687    fn send_raw(
8688        &self,
8689        mut payload: &NonEmptyResultWithErrorClassification,
8690    ) -> Result<(), fidl::Error> {
8691        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
8692            payload,
8693            self.tx_id,
8694            0x2b07a57942c5f6e5,
8695            fidl::encoding::DynamicFlags::empty(),
8696        )
8697    }
8698}
8699
8700#[must_use = "FIDL methods require a response to be sent"]
8701#[derive(Debug)]
8702pub struct RunnerCallTwoWayStructRequestResponder {
8703    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8704    tx_id: u32,
8705}
8706
8707/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8708/// if the responder is dropped without sending a response, so that the client
8709/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8710impl std::ops::Drop for RunnerCallTwoWayStructRequestResponder {
8711    fn drop(&mut self) {
8712        self.control_handle.shutdown();
8713        // Safety: drops once, never accessed again
8714        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8715    }
8716}
8717
8718impl fidl::endpoints::Responder for RunnerCallTwoWayStructRequestResponder {
8719    type ControlHandle = RunnerControlHandle;
8720
8721    fn control_handle(&self) -> &RunnerControlHandle {
8722        &self.control_handle
8723    }
8724
8725    fn drop_without_shutdown(mut self) {
8726        // Safety: drops once, never accessed again due to mem::forget
8727        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8728        // Prevent Drop from running (which would shut down the channel)
8729        std::mem::forget(self);
8730    }
8731}
8732
8733impl RunnerCallTwoWayStructRequestResponder {
8734    /// Sends a response to the FIDL transaction.
8735    ///
8736    /// Sets the channel to shutdown if an error occurs.
8737    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8738        let _result = self.send_raw(payload);
8739        if _result.is_err() {
8740            self.control_handle.shutdown();
8741        }
8742        self.drop_without_shutdown();
8743        _result
8744    }
8745
8746    /// Similar to "send" but does not shutdown the channel if an error occurs.
8747    pub fn send_no_shutdown_on_err(
8748        self,
8749        mut payload: &EmptyResultClassification,
8750    ) -> Result<(), fidl::Error> {
8751        let _result = self.send_raw(payload);
8752        self.drop_without_shutdown();
8753        _result
8754    }
8755
8756    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8757        self.control_handle.inner.send::<EmptyResultClassification>(
8758            payload,
8759            self.tx_id,
8760            0x7c00a6ba2e6c9b45,
8761            fidl::encoding::DynamicFlags::empty(),
8762        )
8763    }
8764}
8765
8766#[must_use = "FIDL methods require a response to be sent"]
8767#[derive(Debug)]
8768pub struct RunnerCallTwoWayTableRequestResponder {
8769    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8770    tx_id: u32,
8771}
8772
8773/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8774/// if the responder is dropped without sending a response, so that the client
8775/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8776impl std::ops::Drop for RunnerCallTwoWayTableRequestResponder {
8777    fn drop(&mut self) {
8778        self.control_handle.shutdown();
8779        // Safety: drops once, never accessed again
8780        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8781    }
8782}
8783
8784impl fidl::endpoints::Responder for RunnerCallTwoWayTableRequestResponder {
8785    type ControlHandle = RunnerControlHandle;
8786
8787    fn control_handle(&self) -> &RunnerControlHandle {
8788        &self.control_handle
8789    }
8790
8791    fn drop_without_shutdown(mut self) {
8792        // Safety: drops once, never accessed again due to mem::forget
8793        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8794        // Prevent Drop from running (which would shut down the channel)
8795        std::mem::forget(self);
8796    }
8797}
8798
8799impl RunnerCallTwoWayTableRequestResponder {
8800    /// Sends a response to the FIDL transaction.
8801    ///
8802    /// Sets the channel to shutdown if an error occurs.
8803    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8804        let _result = self.send_raw(payload);
8805        if _result.is_err() {
8806            self.control_handle.shutdown();
8807        }
8808        self.drop_without_shutdown();
8809        _result
8810    }
8811
8812    /// Similar to "send" but does not shutdown the channel if an error occurs.
8813    pub fn send_no_shutdown_on_err(
8814        self,
8815        mut payload: &EmptyResultClassification,
8816    ) -> Result<(), fidl::Error> {
8817        let _result = self.send_raw(payload);
8818        self.drop_without_shutdown();
8819        _result
8820    }
8821
8822    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8823        self.control_handle.inner.send::<EmptyResultClassification>(
8824            payload,
8825            self.tx_id,
8826            0x641763237d3885be,
8827            fidl::encoding::DynamicFlags::empty(),
8828        )
8829    }
8830}
8831
8832#[must_use = "FIDL methods require a response to be sent"]
8833#[derive(Debug)]
8834pub struct RunnerCallTwoWayUnionRequestResponder {
8835    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8836    tx_id: u32,
8837}
8838
8839/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8840/// if the responder is dropped without sending a response, so that the client
8841/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8842impl std::ops::Drop for RunnerCallTwoWayUnionRequestResponder {
8843    fn drop(&mut self) {
8844        self.control_handle.shutdown();
8845        // Safety: drops once, never accessed again
8846        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8847    }
8848}
8849
8850impl fidl::endpoints::Responder for RunnerCallTwoWayUnionRequestResponder {
8851    type ControlHandle = RunnerControlHandle;
8852
8853    fn control_handle(&self) -> &RunnerControlHandle {
8854        &self.control_handle
8855    }
8856
8857    fn drop_without_shutdown(mut self) {
8858        // Safety: drops once, never accessed again due to mem::forget
8859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8860        // Prevent Drop from running (which would shut down the channel)
8861        std::mem::forget(self);
8862    }
8863}
8864
8865impl RunnerCallTwoWayUnionRequestResponder {
8866    /// Sends a response to the FIDL transaction.
8867    ///
8868    /// Sets the channel to shutdown if an error occurs.
8869    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8870        let _result = self.send_raw(payload);
8871        if _result.is_err() {
8872            self.control_handle.shutdown();
8873        }
8874        self.drop_without_shutdown();
8875        _result
8876    }
8877
8878    /// Similar to "send" but does not shutdown the channel if an error occurs.
8879    pub fn send_no_shutdown_on_err(
8880        self,
8881        mut payload: &EmptyResultClassification,
8882    ) -> Result<(), fidl::Error> {
8883        let _result = self.send_raw(payload);
8884        self.drop_without_shutdown();
8885        _result
8886    }
8887
8888    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8889        self.control_handle.inner.send::<EmptyResultClassification>(
8890            payload,
8891            self.tx_id,
8892            0x4be5f061df42619e,
8893            fidl::encoding::DynamicFlags::empty(),
8894        )
8895    }
8896}
8897
8898#[must_use = "FIDL methods require a response to be sent"]
8899#[derive(Debug)]
8900pub struct RunnerCallOneWayNoRequestResponder {
8901    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8902    tx_id: u32,
8903}
8904
8905/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8906/// if the responder is dropped without sending a response, so that the client
8907/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8908impl std::ops::Drop for RunnerCallOneWayNoRequestResponder {
8909    fn drop(&mut self) {
8910        self.control_handle.shutdown();
8911        // Safety: drops once, never accessed again
8912        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8913    }
8914}
8915
8916impl fidl::endpoints::Responder for RunnerCallOneWayNoRequestResponder {
8917    type ControlHandle = RunnerControlHandle;
8918
8919    fn control_handle(&self) -> &RunnerControlHandle {
8920        &self.control_handle
8921    }
8922
8923    fn drop_without_shutdown(mut self) {
8924        // Safety: drops once, never accessed again due to mem::forget
8925        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8926        // Prevent Drop from running (which would shut down the channel)
8927        std::mem::forget(self);
8928    }
8929}
8930
8931impl RunnerCallOneWayNoRequestResponder {
8932    /// Sends a response to the FIDL transaction.
8933    ///
8934    /// Sets the channel to shutdown if an error occurs.
8935    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8936        let _result = self.send_raw(payload);
8937        if _result.is_err() {
8938            self.control_handle.shutdown();
8939        }
8940        self.drop_without_shutdown();
8941        _result
8942    }
8943
8944    /// Similar to "send" but does not shutdown the channel if an error occurs.
8945    pub fn send_no_shutdown_on_err(
8946        self,
8947        mut payload: &EmptyResultClassification,
8948    ) -> Result<(), fidl::Error> {
8949        let _result = self.send_raw(payload);
8950        self.drop_without_shutdown();
8951        _result
8952    }
8953
8954    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8955        self.control_handle.inner.send::<EmptyResultClassification>(
8956            payload,
8957            self.tx_id,
8958            0x24b6eea8cbdccc09,
8959            fidl::encoding::DynamicFlags::empty(),
8960        )
8961    }
8962}
8963
8964#[must_use = "FIDL methods require a response to be sent"]
8965#[derive(Debug)]
8966pub struct RunnerCallOneWayStructRequestResponder {
8967    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8968    tx_id: u32,
8969}
8970
8971/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8972/// if the responder is dropped without sending a response, so that the client
8973/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8974impl std::ops::Drop for RunnerCallOneWayStructRequestResponder {
8975    fn drop(&mut self) {
8976        self.control_handle.shutdown();
8977        // Safety: drops once, never accessed again
8978        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8979    }
8980}
8981
8982impl fidl::endpoints::Responder for RunnerCallOneWayStructRequestResponder {
8983    type ControlHandle = RunnerControlHandle;
8984
8985    fn control_handle(&self) -> &RunnerControlHandle {
8986        &self.control_handle
8987    }
8988
8989    fn drop_without_shutdown(mut self) {
8990        // Safety: drops once, never accessed again due to mem::forget
8991        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8992        // Prevent Drop from running (which would shut down the channel)
8993        std::mem::forget(self);
8994    }
8995}
8996
8997impl RunnerCallOneWayStructRequestResponder {
8998    /// Sends a response to the FIDL transaction.
8999    ///
9000    /// Sets the channel to shutdown if an error occurs.
9001    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9002        let _result = self.send_raw(payload);
9003        if _result.is_err() {
9004            self.control_handle.shutdown();
9005        }
9006        self.drop_without_shutdown();
9007        _result
9008    }
9009
9010    /// Similar to "send" but does not shutdown the channel if an error occurs.
9011    pub fn send_no_shutdown_on_err(
9012        self,
9013        mut payload: &EmptyResultClassification,
9014    ) -> Result<(), fidl::Error> {
9015        let _result = self.send_raw(payload);
9016        self.drop_without_shutdown();
9017        _result
9018    }
9019
9020    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9021        self.control_handle.inner.send::<EmptyResultClassification>(
9022            payload,
9023            self.tx_id,
9024            0x352a2907a0fcb420,
9025            fidl::encoding::DynamicFlags::empty(),
9026        )
9027    }
9028}
9029
9030#[must_use = "FIDL methods require a response to be sent"]
9031#[derive(Debug)]
9032pub struct RunnerCallOneWayTableRequestResponder {
9033    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9034    tx_id: u32,
9035}
9036
9037/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9038/// if the responder is dropped without sending a response, so that the client
9039/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9040impl std::ops::Drop for RunnerCallOneWayTableRequestResponder {
9041    fn drop(&mut self) {
9042        self.control_handle.shutdown();
9043        // Safety: drops once, never accessed again
9044        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9045    }
9046}
9047
9048impl fidl::endpoints::Responder for RunnerCallOneWayTableRequestResponder {
9049    type ControlHandle = RunnerControlHandle;
9050
9051    fn control_handle(&self) -> &RunnerControlHandle {
9052        &self.control_handle
9053    }
9054
9055    fn drop_without_shutdown(mut self) {
9056        // Safety: drops once, never accessed again due to mem::forget
9057        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9058        // Prevent Drop from running (which would shut down the channel)
9059        std::mem::forget(self);
9060    }
9061}
9062
9063impl RunnerCallOneWayTableRequestResponder {
9064    /// Sends a response to the FIDL transaction.
9065    ///
9066    /// Sets the channel to shutdown if an error occurs.
9067    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9068        let _result = self.send_raw(payload);
9069        if _result.is_err() {
9070            self.control_handle.shutdown();
9071        }
9072        self.drop_without_shutdown();
9073        _result
9074    }
9075
9076    /// Similar to "send" but does not shutdown the channel if an error occurs.
9077    pub fn send_no_shutdown_on_err(
9078        self,
9079        mut payload: &EmptyResultClassification,
9080    ) -> Result<(), fidl::Error> {
9081        let _result = self.send_raw(payload);
9082        self.drop_without_shutdown();
9083        _result
9084    }
9085
9086    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9087        self.control_handle.inner.send::<EmptyResultClassification>(
9088            payload,
9089            self.tx_id,
9090            0x734121bf8bf336ef,
9091            fidl::encoding::DynamicFlags::empty(),
9092        )
9093    }
9094}
9095
9096#[must_use = "FIDL methods require a response to be sent"]
9097#[derive(Debug)]
9098pub struct RunnerCallOneWayUnionRequestResponder {
9099    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9100    tx_id: u32,
9101}
9102
9103/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9104/// if the responder is dropped without sending a response, so that the client
9105/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9106impl std::ops::Drop for RunnerCallOneWayUnionRequestResponder {
9107    fn drop(&mut self) {
9108        self.control_handle.shutdown();
9109        // Safety: drops once, never accessed again
9110        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9111    }
9112}
9113
9114impl fidl::endpoints::Responder for RunnerCallOneWayUnionRequestResponder {
9115    type ControlHandle = RunnerControlHandle;
9116
9117    fn control_handle(&self) -> &RunnerControlHandle {
9118        &self.control_handle
9119    }
9120
9121    fn drop_without_shutdown(mut self) {
9122        // Safety: drops once, never accessed again due to mem::forget
9123        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9124        // Prevent Drop from running (which would shut down the channel)
9125        std::mem::forget(self);
9126    }
9127}
9128
9129impl RunnerCallOneWayUnionRequestResponder {
9130    /// Sends a response to the FIDL transaction.
9131    ///
9132    /// Sets the channel to shutdown if an error occurs.
9133    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9134        let _result = self.send_raw(payload);
9135        if _result.is_err() {
9136            self.control_handle.shutdown();
9137        }
9138        self.drop_without_shutdown();
9139        _result
9140    }
9141
9142    /// Similar to "send" but does not shutdown the channel if an error occurs.
9143    pub fn send_no_shutdown_on_err(
9144        self,
9145        mut payload: &EmptyResultClassification,
9146    ) -> Result<(), fidl::Error> {
9147        let _result = self.send_raw(payload);
9148        self.drop_without_shutdown();
9149        _result
9150    }
9151
9152    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9153        self.control_handle.inner.send::<EmptyResultClassification>(
9154            payload,
9155            self.tx_id,
9156            0x9be8e5eb7d50eb6,
9157            fidl::encoding::DynamicFlags::empty(),
9158        )
9159    }
9160}
9161
9162#[must_use = "FIDL methods require a response to be sent"]
9163#[derive(Debug)]
9164pub struct RunnerCallStrictOneWayResponder {
9165    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9166    tx_id: u32,
9167}
9168
9169/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9170/// if the responder is dropped without sending a response, so that the client
9171/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9172impl std::ops::Drop for RunnerCallStrictOneWayResponder {
9173    fn drop(&mut self) {
9174        self.control_handle.shutdown();
9175        // Safety: drops once, never accessed again
9176        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9177    }
9178}
9179
9180impl fidl::endpoints::Responder for RunnerCallStrictOneWayResponder {
9181    type ControlHandle = RunnerControlHandle;
9182
9183    fn control_handle(&self) -> &RunnerControlHandle {
9184        &self.control_handle
9185    }
9186
9187    fn drop_without_shutdown(mut self) {
9188        // Safety: drops once, never accessed again due to mem::forget
9189        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9190        // Prevent Drop from running (which would shut down the channel)
9191        std::mem::forget(self);
9192    }
9193}
9194
9195impl RunnerCallStrictOneWayResponder {
9196    /// Sends a response to the FIDL transaction.
9197    ///
9198    /// Sets the channel to shutdown if an error occurs.
9199    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9200        let _result = self.send_raw(payload);
9201        if _result.is_err() {
9202            self.control_handle.shutdown();
9203        }
9204        self.drop_without_shutdown();
9205        _result
9206    }
9207
9208    /// Similar to "send" but does not shutdown the channel if an error occurs.
9209    pub fn send_no_shutdown_on_err(
9210        self,
9211        mut payload: &EmptyResultClassification,
9212    ) -> Result<(), fidl::Error> {
9213        let _result = self.send_raw(payload);
9214        self.drop_without_shutdown();
9215        _result
9216    }
9217
9218    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9219        self.control_handle.inner.send::<EmptyResultClassification>(
9220            payload,
9221            self.tx_id,
9222            0x4edd0b6f52c0446b,
9223            fidl::encoding::DynamicFlags::empty(),
9224        )
9225    }
9226}
9227
9228#[must_use = "FIDL methods require a response to be sent"]
9229#[derive(Debug)]
9230pub struct RunnerCallFlexibleOneWayResponder {
9231    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9232    tx_id: u32,
9233}
9234
9235/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9236/// if the responder is dropped without sending a response, so that the client
9237/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9238impl std::ops::Drop for RunnerCallFlexibleOneWayResponder {
9239    fn drop(&mut self) {
9240        self.control_handle.shutdown();
9241        // Safety: drops once, never accessed again
9242        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9243    }
9244}
9245
9246impl fidl::endpoints::Responder for RunnerCallFlexibleOneWayResponder {
9247    type ControlHandle = RunnerControlHandle;
9248
9249    fn control_handle(&self) -> &RunnerControlHandle {
9250        &self.control_handle
9251    }
9252
9253    fn drop_without_shutdown(mut self) {
9254        // Safety: drops once, never accessed again due to mem::forget
9255        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9256        // Prevent Drop from running (which would shut down the channel)
9257        std::mem::forget(self);
9258    }
9259}
9260
9261impl RunnerCallFlexibleOneWayResponder {
9262    /// Sends a response to the FIDL transaction.
9263    ///
9264    /// Sets the channel to shutdown if an error occurs.
9265    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9266        let _result = self.send_raw(payload);
9267        if _result.is_err() {
9268            self.control_handle.shutdown();
9269        }
9270        self.drop_without_shutdown();
9271        _result
9272    }
9273
9274    /// Similar to "send" but does not shutdown the channel if an error occurs.
9275    pub fn send_no_shutdown_on_err(
9276        self,
9277        mut payload: &EmptyResultClassification,
9278    ) -> Result<(), fidl::Error> {
9279        let _result = self.send_raw(payload);
9280        self.drop_without_shutdown();
9281        _result
9282    }
9283
9284    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9285        self.control_handle.inner.send::<EmptyResultClassification>(
9286            payload,
9287            self.tx_id,
9288            0x7253f10a77dfe817,
9289            fidl::encoding::DynamicFlags::empty(),
9290        )
9291    }
9292}
9293
9294#[must_use = "FIDL methods require a response to be sent"]
9295#[derive(Debug)]
9296pub struct RunnerCallStrictTwoWayResponder {
9297    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9298    tx_id: u32,
9299}
9300
9301/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9302/// if the responder is dropped without sending a response, so that the client
9303/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9304impl std::ops::Drop for RunnerCallStrictTwoWayResponder {
9305    fn drop(&mut self) {
9306        self.control_handle.shutdown();
9307        // Safety: drops once, never accessed again
9308        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9309    }
9310}
9311
9312impl fidl::endpoints::Responder for RunnerCallStrictTwoWayResponder {
9313    type ControlHandle = RunnerControlHandle;
9314
9315    fn control_handle(&self) -> &RunnerControlHandle {
9316        &self.control_handle
9317    }
9318
9319    fn drop_without_shutdown(mut self) {
9320        // Safety: drops once, never accessed again due to mem::forget
9321        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9322        // Prevent Drop from running (which would shut down the channel)
9323        std::mem::forget(self);
9324    }
9325}
9326
9327impl RunnerCallStrictTwoWayResponder {
9328    /// Sends a response to the FIDL transaction.
9329    ///
9330    /// Sets the channel to shutdown if an error occurs.
9331    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9332        let _result = self.send_raw(payload);
9333        if _result.is_err() {
9334            self.control_handle.shutdown();
9335        }
9336        self.drop_without_shutdown();
9337        _result
9338    }
9339
9340    /// Similar to "send" but does not shutdown the channel if an error occurs.
9341    pub fn send_no_shutdown_on_err(
9342        self,
9343        mut payload: &EmptyResultClassification,
9344    ) -> Result<(), fidl::Error> {
9345        let _result = self.send_raw(payload);
9346        self.drop_without_shutdown();
9347        _result
9348    }
9349
9350    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9351        self.control_handle.inner.send::<EmptyResultClassification>(
9352            payload,
9353            self.tx_id,
9354            0x1fa9fb7414aedd27,
9355            fidl::encoding::DynamicFlags::empty(),
9356        )
9357    }
9358}
9359
9360#[must_use = "FIDL methods require a response to be sent"]
9361#[derive(Debug)]
9362pub struct RunnerCallStrictTwoWayFieldsResponder {
9363    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9364    tx_id: u32,
9365}
9366
9367/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9368/// if the responder is dropped without sending a response, so that the client
9369/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9370impl std::ops::Drop for RunnerCallStrictTwoWayFieldsResponder {
9371    fn drop(&mut self) {
9372        self.control_handle.shutdown();
9373        // Safety: drops once, never accessed again
9374        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9375    }
9376}
9377
9378impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsResponder {
9379    type ControlHandle = RunnerControlHandle;
9380
9381    fn control_handle(&self) -> &RunnerControlHandle {
9382        &self.control_handle
9383    }
9384
9385    fn drop_without_shutdown(mut self) {
9386        // Safety: drops once, never accessed again due to mem::forget
9387        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9388        // Prevent Drop from running (which would shut down the channel)
9389        std::mem::forget(self);
9390    }
9391}
9392
9393impl RunnerCallStrictTwoWayFieldsResponder {
9394    /// Sends a response to the FIDL transaction.
9395    ///
9396    /// Sets the channel to shutdown if an error occurs.
9397    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9398        let _result = self.send_raw(payload);
9399        if _result.is_err() {
9400            self.control_handle.shutdown();
9401        }
9402        self.drop_without_shutdown();
9403        _result
9404    }
9405
9406    /// Similar to "send" but does not shutdown the channel if an error occurs.
9407    pub fn send_no_shutdown_on_err(
9408        self,
9409        mut payload: &NonEmptyResultClassification,
9410    ) -> Result<(), fidl::Error> {
9411        let _result = self.send_raw(payload);
9412        self.drop_without_shutdown();
9413        _result
9414    }
9415
9416    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9417        self.control_handle.inner.send::<NonEmptyResultClassification>(
9418            payload,
9419            self.tx_id,
9420            0x6f690e00ebf6f123,
9421            fidl::encoding::DynamicFlags::empty(),
9422        )
9423    }
9424}
9425
9426#[must_use = "FIDL methods require a response to be sent"]
9427#[derive(Debug)]
9428pub struct RunnerCallStrictTwoWayErrResponder {
9429    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9430    tx_id: u32,
9431}
9432
9433/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9434/// if the responder is dropped without sending a response, so that the client
9435/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9436impl std::ops::Drop for RunnerCallStrictTwoWayErrResponder {
9437    fn drop(&mut self) {
9438        self.control_handle.shutdown();
9439        // Safety: drops once, never accessed again
9440        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9441    }
9442}
9443
9444impl fidl::endpoints::Responder for RunnerCallStrictTwoWayErrResponder {
9445    type ControlHandle = RunnerControlHandle;
9446
9447    fn control_handle(&self) -> &RunnerControlHandle {
9448        &self.control_handle
9449    }
9450
9451    fn drop_without_shutdown(mut self) {
9452        // Safety: drops once, never accessed again due to mem::forget
9453        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9454        // Prevent Drop from running (which would shut down the channel)
9455        std::mem::forget(self);
9456    }
9457}
9458
9459impl RunnerCallStrictTwoWayErrResponder {
9460    /// Sends a response to the FIDL transaction.
9461    ///
9462    /// Sets the channel to shutdown if an error occurs.
9463    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9464        let _result = self.send_raw(payload);
9465        if _result.is_err() {
9466            self.control_handle.shutdown();
9467        }
9468        self.drop_without_shutdown();
9469        _result
9470    }
9471
9472    /// Similar to "send" but does not shutdown the channel if an error occurs.
9473    pub fn send_no_shutdown_on_err(
9474        self,
9475        mut payload: &EmptyResultWithErrorClassification,
9476    ) -> Result<(), fidl::Error> {
9477        let _result = self.send_raw(payload);
9478        self.drop_without_shutdown();
9479        _result
9480    }
9481
9482    fn send_raw(
9483        &self,
9484        mut payload: &EmptyResultWithErrorClassification,
9485    ) -> Result<(), fidl::Error> {
9486        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9487            payload,
9488            self.tx_id,
9489            0x51d6bc7cf6cbaf1a,
9490            fidl::encoding::DynamicFlags::empty(),
9491        )
9492    }
9493}
9494
9495#[must_use = "FIDL methods require a response to be sent"]
9496#[derive(Debug)]
9497pub struct RunnerCallStrictTwoWayFieldsErrResponder {
9498    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9499    tx_id: u32,
9500}
9501
9502/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9503/// if the responder is dropped without sending a response, so that the client
9504/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9505impl std::ops::Drop for RunnerCallStrictTwoWayFieldsErrResponder {
9506    fn drop(&mut self) {
9507        self.control_handle.shutdown();
9508        // Safety: drops once, never accessed again
9509        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9510    }
9511}
9512
9513impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsErrResponder {
9514    type ControlHandle = RunnerControlHandle;
9515
9516    fn control_handle(&self) -> &RunnerControlHandle {
9517        &self.control_handle
9518    }
9519
9520    fn drop_without_shutdown(mut self) {
9521        // Safety: drops once, never accessed again due to mem::forget
9522        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9523        // Prevent Drop from running (which would shut down the channel)
9524        std::mem::forget(self);
9525    }
9526}
9527
9528impl RunnerCallStrictTwoWayFieldsErrResponder {
9529    /// Sends a response to the FIDL transaction.
9530    ///
9531    /// Sets the channel to shutdown if an error occurs.
9532    pub fn send(
9533        self,
9534        mut payload: &NonEmptyResultWithErrorClassification,
9535    ) -> Result<(), fidl::Error> {
9536        let _result = self.send_raw(payload);
9537        if _result.is_err() {
9538            self.control_handle.shutdown();
9539        }
9540        self.drop_without_shutdown();
9541        _result
9542    }
9543
9544    /// Similar to "send" but does not shutdown the channel if an error occurs.
9545    pub fn send_no_shutdown_on_err(
9546        self,
9547        mut payload: &NonEmptyResultWithErrorClassification,
9548    ) -> Result<(), fidl::Error> {
9549        let _result = self.send_raw(payload);
9550        self.drop_without_shutdown();
9551        _result
9552    }
9553
9554    fn send_raw(
9555        &self,
9556        mut payload: &NonEmptyResultWithErrorClassification,
9557    ) -> Result<(), fidl::Error> {
9558        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9559            payload,
9560            self.tx_id,
9561            0x6fa31ced05074c05,
9562            fidl::encoding::DynamicFlags::empty(),
9563        )
9564    }
9565}
9566
9567#[must_use = "FIDL methods require a response to be sent"]
9568#[derive(Debug)]
9569pub struct RunnerCallFlexibleTwoWayResponder {
9570    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9571    tx_id: u32,
9572}
9573
9574/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9575/// if the responder is dropped without sending a response, so that the client
9576/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9577impl std::ops::Drop for RunnerCallFlexibleTwoWayResponder {
9578    fn drop(&mut self) {
9579        self.control_handle.shutdown();
9580        // Safety: drops once, never accessed again
9581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9582    }
9583}
9584
9585impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayResponder {
9586    type ControlHandle = RunnerControlHandle;
9587
9588    fn control_handle(&self) -> &RunnerControlHandle {
9589        &self.control_handle
9590    }
9591
9592    fn drop_without_shutdown(mut self) {
9593        // Safety: drops once, never accessed again due to mem::forget
9594        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9595        // Prevent Drop from running (which would shut down the channel)
9596        std::mem::forget(self);
9597    }
9598}
9599
9600impl RunnerCallFlexibleTwoWayResponder {
9601    /// Sends a response to the FIDL transaction.
9602    ///
9603    /// Sets the channel to shutdown if an error occurs.
9604    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9605        let _result = self.send_raw(payload);
9606        if _result.is_err() {
9607            self.control_handle.shutdown();
9608        }
9609        self.drop_without_shutdown();
9610        _result
9611    }
9612
9613    /// Similar to "send" but does not shutdown the channel if an error occurs.
9614    pub fn send_no_shutdown_on_err(
9615        self,
9616        mut payload: &EmptyResultClassification,
9617    ) -> Result<(), fidl::Error> {
9618        let _result = self.send_raw(payload);
9619        self.drop_without_shutdown();
9620        _result
9621    }
9622
9623    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9624        self.control_handle.inner.send::<EmptyResultClassification>(
9625            payload,
9626            self.tx_id,
9627            0x411f70724876d49,
9628            fidl::encoding::DynamicFlags::empty(),
9629        )
9630    }
9631}
9632
9633#[must_use = "FIDL methods require a response to be sent"]
9634#[derive(Debug)]
9635pub struct RunnerCallFlexibleTwoWayFieldsResponder {
9636    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9637    tx_id: u32,
9638}
9639
9640/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9641/// if the responder is dropped without sending a response, so that the client
9642/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9643impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsResponder {
9644    fn drop(&mut self) {
9645        self.control_handle.shutdown();
9646        // Safety: drops once, never accessed again
9647        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9648    }
9649}
9650
9651impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsResponder {
9652    type ControlHandle = RunnerControlHandle;
9653
9654    fn control_handle(&self) -> &RunnerControlHandle {
9655        &self.control_handle
9656    }
9657
9658    fn drop_without_shutdown(mut self) {
9659        // Safety: drops once, never accessed again due to mem::forget
9660        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9661        // Prevent Drop from running (which would shut down the channel)
9662        std::mem::forget(self);
9663    }
9664}
9665
9666impl RunnerCallFlexibleTwoWayFieldsResponder {
9667    /// Sends a response to the FIDL transaction.
9668    ///
9669    /// Sets the channel to shutdown if an error occurs.
9670    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9671        let _result = self.send_raw(payload);
9672        if _result.is_err() {
9673            self.control_handle.shutdown();
9674        }
9675        self.drop_without_shutdown();
9676        _result
9677    }
9678
9679    /// Similar to "send" but does not shutdown the channel if an error occurs.
9680    pub fn send_no_shutdown_on_err(
9681        self,
9682        mut payload: &NonEmptyResultClassification,
9683    ) -> Result<(), fidl::Error> {
9684        let _result = self.send_raw(payload);
9685        self.drop_without_shutdown();
9686        _result
9687    }
9688
9689    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9690        self.control_handle.inner.send::<NonEmptyResultClassification>(
9691            payload,
9692            self.tx_id,
9693            0x330996b623598eed,
9694            fidl::encoding::DynamicFlags::empty(),
9695        )
9696    }
9697}
9698
9699#[must_use = "FIDL methods require a response to be sent"]
9700#[derive(Debug)]
9701pub struct RunnerCallFlexibleTwoWayErrResponder {
9702    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9703    tx_id: u32,
9704}
9705
9706/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9707/// if the responder is dropped without sending a response, so that the client
9708/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9709impl std::ops::Drop for RunnerCallFlexibleTwoWayErrResponder {
9710    fn drop(&mut self) {
9711        self.control_handle.shutdown();
9712        // Safety: drops once, never accessed again
9713        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9714    }
9715}
9716
9717impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayErrResponder {
9718    type ControlHandle = RunnerControlHandle;
9719
9720    fn control_handle(&self) -> &RunnerControlHandle {
9721        &self.control_handle
9722    }
9723
9724    fn drop_without_shutdown(mut self) {
9725        // Safety: drops once, never accessed again due to mem::forget
9726        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9727        // Prevent Drop from running (which would shut down the channel)
9728        std::mem::forget(self);
9729    }
9730}
9731
9732impl RunnerCallFlexibleTwoWayErrResponder {
9733    /// Sends a response to the FIDL transaction.
9734    ///
9735    /// Sets the channel to shutdown if an error occurs.
9736    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9737        let _result = self.send_raw(payload);
9738        if _result.is_err() {
9739            self.control_handle.shutdown();
9740        }
9741        self.drop_without_shutdown();
9742        _result
9743    }
9744
9745    /// Similar to "send" but does not shutdown the channel if an error occurs.
9746    pub fn send_no_shutdown_on_err(
9747        self,
9748        mut payload: &EmptyResultWithErrorClassification,
9749    ) -> Result<(), fidl::Error> {
9750        let _result = self.send_raw(payload);
9751        self.drop_without_shutdown();
9752        _result
9753    }
9754
9755    fn send_raw(
9756        &self,
9757        mut payload: &EmptyResultWithErrorClassification,
9758    ) -> Result<(), fidl::Error> {
9759        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9760            payload,
9761            self.tx_id,
9762            0x5ddbf88a353a2a57,
9763            fidl::encoding::DynamicFlags::empty(),
9764        )
9765    }
9766}
9767
9768#[must_use = "FIDL methods require a response to be sent"]
9769#[derive(Debug)]
9770pub struct RunnerCallFlexibleTwoWayFieldsErrResponder {
9771    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9772    tx_id: u32,
9773}
9774
9775/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9776/// if the responder is dropped without sending a response, so that the client
9777/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9778impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsErrResponder {
9779    fn drop(&mut self) {
9780        self.control_handle.shutdown();
9781        // Safety: drops once, never accessed again
9782        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9783    }
9784}
9785
9786impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsErrResponder {
9787    type ControlHandle = RunnerControlHandle;
9788
9789    fn control_handle(&self) -> &RunnerControlHandle {
9790        &self.control_handle
9791    }
9792
9793    fn drop_without_shutdown(mut self) {
9794        // Safety: drops once, never accessed again due to mem::forget
9795        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9796        // Prevent Drop from running (which would shut down the channel)
9797        std::mem::forget(self);
9798    }
9799}
9800
9801impl RunnerCallFlexibleTwoWayFieldsErrResponder {
9802    /// Sends a response to the FIDL transaction.
9803    ///
9804    /// Sets the channel to shutdown if an error occurs.
9805    pub fn send(
9806        self,
9807        mut payload: &NonEmptyResultWithErrorClassification,
9808    ) -> Result<(), fidl::Error> {
9809        let _result = self.send_raw(payload);
9810        if _result.is_err() {
9811            self.control_handle.shutdown();
9812        }
9813        self.drop_without_shutdown();
9814        _result
9815    }
9816
9817    /// Similar to "send" but does not shutdown the channel if an error occurs.
9818    pub fn send_no_shutdown_on_err(
9819        self,
9820        mut payload: &NonEmptyResultWithErrorClassification,
9821    ) -> Result<(), fidl::Error> {
9822        let _result = self.send_raw(payload);
9823        self.drop_without_shutdown();
9824        _result
9825    }
9826
9827    fn send_raw(
9828        &self,
9829        mut payload: &NonEmptyResultWithErrorClassification,
9830    ) -> Result<(), fidl::Error> {
9831        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9832            payload,
9833            self.tx_id,
9834            0x7ae309383b07048e,
9835            fidl::encoding::DynamicFlags::empty(),
9836        )
9837    }
9838}
9839
9840#[must_use = "FIDL methods require a response to be sent"]
9841#[derive(Debug)]
9842pub struct RunnerReceiveClosedEventsResponder {
9843    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9844    tx_id: u32,
9845}
9846
9847/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9848/// if the responder is dropped without sending a response, so that the client
9849/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9850impl std::ops::Drop for RunnerReceiveClosedEventsResponder {
9851    fn drop(&mut self) {
9852        self.control_handle.shutdown();
9853        // Safety: drops once, never accessed again
9854        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9855    }
9856}
9857
9858impl fidl::endpoints::Responder for RunnerReceiveClosedEventsResponder {
9859    type ControlHandle = RunnerControlHandle;
9860
9861    fn control_handle(&self) -> &RunnerControlHandle {
9862        &self.control_handle
9863    }
9864
9865    fn drop_without_shutdown(mut self) {
9866        // Safety: drops once, never accessed again due to mem::forget
9867        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9868        // Prevent Drop from running (which would shut down the channel)
9869        std::mem::forget(self);
9870    }
9871}
9872
9873impl RunnerReceiveClosedEventsResponder {
9874    /// Sends a response to the FIDL transaction.
9875    ///
9876    /// Sets the channel to shutdown if an error occurs.
9877    pub fn send(self) -> Result<(), fidl::Error> {
9878        let _result = self.send_raw();
9879        if _result.is_err() {
9880            self.control_handle.shutdown();
9881        }
9882        self.drop_without_shutdown();
9883        _result
9884    }
9885
9886    /// Similar to "send" but does not shutdown the channel if an error occurs.
9887    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9888        let _result = self.send_raw();
9889        self.drop_without_shutdown();
9890        _result
9891    }
9892
9893    fn send_raw(&self) -> Result<(), fidl::Error> {
9894        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9895            (),
9896            self.tx_id,
9897            0x48da834910571aeb,
9898            fidl::encoding::DynamicFlags::empty(),
9899        )
9900    }
9901}
9902
9903#[must_use = "FIDL methods require a response to be sent"]
9904#[derive(Debug)]
9905pub struct RunnerReceiveAjarEventsResponder {
9906    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9907    tx_id: u32,
9908}
9909
9910/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9911/// if the responder is dropped without sending a response, so that the client
9912/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9913impl std::ops::Drop for RunnerReceiveAjarEventsResponder {
9914    fn drop(&mut self) {
9915        self.control_handle.shutdown();
9916        // Safety: drops once, never accessed again
9917        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9918    }
9919}
9920
9921impl fidl::endpoints::Responder for RunnerReceiveAjarEventsResponder {
9922    type ControlHandle = RunnerControlHandle;
9923
9924    fn control_handle(&self) -> &RunnerControlHandle {
9925        &self.control_handle
9926    }
9927
9928    fn drop_without_shutdown(mut self) {
9929        // Safety: drops once, never accessed again due to mem::forget
9930        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9931        // Prevent Drop from running (which would shut down the channel)
9932        std::mem::forget(self);
9933    }
9934}
9935
9936impl RunnerReceiveAjarEventsResponder {
9937    /// Sends a response to the FIDL transaction.
9938    ///
9939    /// Sets the channel to shutdown if an error occurs.
9940    pub fn send(self) -> Result<(), fidl::Error> {
9941        let _result = self.send_raw();
9942        if _result.is_err() {
9943            self.control_handle.shutdown();
9944        }
9945        self.drop_without_shutdown();
9946        _result
9947    }
9948
9949    /// Similar to "send" but does not shutdown the channel if an error occurs.
9950    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9951        let _result = self.send_raw();
9952        self.drop_without_shutdown();
9953        _result
9954    }
9955
9956    fn send_raw(&self) -> Result<(), fidl::Error> {
9957        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9958            (),
9959            self.tx_id,
9960            0xc5662b9a9c007a3,
9961            fidl::encoding::DynamicFlags::empty(),
9962        )
9963    }
9964}
9965
9966#[must_use = "FIDL methods require a response to be sent"]
9967#[derive(Debug)]
9968pub struct RunnerReceiveOpenEventsResponder {
9969    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9970    tx_id: u32,
9971}
9972
9973/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9974/// if the responder is dropped without sending a response, so that the client
9975/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9976impl std::ops::Drop for RunnerReceiveOpenEventsResponder {
9977    fn drop(&mut self) {
9978        self.control_handle.shutdown();
9979        // Safety: drops once, never accessed again
9980        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9981    }
9982}
9983
9984impl fidl::endpoints::Responder for RunnerReceiveOpenEventsResponder {
9985    type ControlHandle = RunnerControlHandle;
9986
9987    fn control_handle(&self) -> &RunnerControlHandle {
9988        &self.control_handle
9989    }
9990
9991    fn drop_without_shutdown(mut self) {
9992        // Safety: drops once, never accessed again due to mem::forget
9993        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9994        // Prevent Drop from running (which would shut down the channel)
9995        std::mem::forget(self);
9996    }
9997}
9998
9999impl RunnerReceiveOpenEventsResponder {
10000    /// Sends a response to the FIDL transaction.
10001    ///
10002    /// Sets the channel to shutdown if an error occurs.
10003    pub fn send(self) -> Result<(), fidl::Error> {
10004        let _result = self.send_raw();
10005        if _result.is_err() {
10006            self.control_handle.shutdown();
10007        }
10008        self.drop_without_shutdown();
10009        _result
10010    }
10011
10012    /// Similar to "send" but does not shutdown the channel if an error occurs.
10013    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
10014        let _result = self.send_raw();
10015        self.drop_without_shutdown();
10016        _result
10017    }
10018
10019    fn send_raw(&self) -> Result<(), fidl::Error> {
10020        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
10021            (),
10022            self.tx_id,
10023            0x79a7073fd18edbdf,
10024            fidl::encoding::DynamicFlags::empty(),
10025        )
10026    }
10027}
10028
10029mod internal {
10030    use super::*;
10031
10032    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleOneWayRequest {
10033        type Borrowed<'a> = &'a mut Self;
10034        fn take_or_borrow<'a>(
10035            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10036        ) -> Self::Borrowed<'a> {
10037            value
10038        }
10039    }
10040
10041    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleOneWayRequest {
10042        type Owned = Self;
10043
10044        #[inline(always)]
10045        fn inline_align(_context: fidl::encoding::Context) -> usize {
10046            4
10047        }
10048
10049        #[inline(always)]
10050        fn inline_size(_context: fidl::encoding::Context) -> usize {
10051            4
10052        }
10053    }
10054
10055    unsafe impl
10056        fidl::encoding::Encode<
10057            RunnerCallFlexibleOneWayRequest,
10058            fidl::encoding::DefaultFuchsiaResourceDialect,
10059        > for &mut RunnerCallFlexibleOneWayRequest
10060    {
10061        #[inline]
10062        unsafe fn encode(
10063            self,
10064            encoder: &mut fidl::encoding::Encoder<
10065                '_,
10066                fidl::encoding::DefaultFuchsiaResourceDialect,
10067            >,
10068            offset: usize,
10069            _depth: fidl::encoding::Depth,
10070        ) -> fidl::Result<()> {
10071            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
10072            // Delegate to tuple encoding.
10073            fidl::encoding::Encode::<RunnerCallFlexibleOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10074                (
10075                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10076                ),
10077                encoder, offset, _depth
10078            )
10079        }
10080    }
10081    unsafe impl<
10082        T0: fidl::encoding::Encode<
10083                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10084                fidl::encoding::DefaultFuchsiaResourceDialect,
10085            >,
10086    >
10087        fidl::encoding::Encode<
10088            RunnerCallFlexibleOneWayRequest,
10089            fidl::encoding::DefaultFuchsiaResourceDialect,
10090        > for (T0,)
10091    {
10092        #[inline]
10093        unsafe fn encode(
10094            self,
10095            encoder: &mut fidl::encoding::Encoder<
10096                '_,
10097                fidl::encoding::DefaultFuchsiaResourceDialect,
10098            >,
10099            offset: usize,
10100            depth: fidl::encoding::Depth,
10101        ) -> fidl::Result<()> {
10102            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
10103            // Zero out padding regions. There's no need to apply masks
10104            // because the unmasked parts will be overwritten by fields.
10105            // Write the fields.
10106            self.0.encode(encoder, offset + 0, depth)?;
10107            Ok(())
10108        }
10109    }
10110
10111    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10112        for RunnerCallFlexibleOneWayRequest
10113    {
10114        #[inline(always)]
10115        fn new_empty() -> Self {
10116            Self {
10117                target: fidl::new_empty!(
10118                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10119                    fidl::encoding::DefaultFuchsiaResourceDialect
10120                ),
10121            }
10122        }
10123
10124        #[inline]
10125        unsafe fn decode(
10126            &mut self,
10127            decoder: &mut fidl::encoding::Decoder<
10128                '_,
10129                fidl::encoding::DefaultFuchsiaResourceDialect,
10130            >,
10131            offset: usize,
10132            _depth: fidl::encoding::Depth,
10133        ) -> fidl::Result<()> {
10134            decoder.debug_check_bounds::<Self>(offset);
10135            // Verify that padding bytes are zero.
10136            fidl::decode!(
10137                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10138                fidl::encoding::DefaultFuchsiaResourceDialect,
10139                &mut self.target,
10140                decoder,
10141                offset + 0,
10142                _depth
10143            )?;
10144            Ok(())
10145        }
10146    }
10147
10148    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10149        type Borrowed<'a> = &'a mut Self;
10150        fn take_or_borrow<'a>(
10151            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10152        ) -> Self::Borrowed<'a> {
10153            value
10154        }
10155    }
10156
10157    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10158        type Owned = Self;
10159
10160        #[inline(always)]
10161        fn inline_align(_context: fidl::encoding::Context) -> usize {
10162            4
10163        }
10164
10165        #[inline(always)]
10166        fn inline_size(_context: fidl::encoding::Context) -> usize {
10167            4
10168        }
10169    }
10170
10171    unsafe impl
10172        fidl::encoding::Encode<
10173            RunnerCallFlexibleTwoWayErrRequest,
10174            fidl::encoding::DefaultFuchsiaResourceDialect,
10175        > for &mut RunnerCallFlexibleTwoWayErrRequest
10176    {
10177        #[inline]
10178        unsafe fn encode(
10179            self,
10180            encoder: &mut fidl::encoding::Encoder<
10181                '_,
10182                fidl::encoding::DefaultFuchsiaResourceDialect,
10183            >,
10184            offset: usize,
10185            _depth: fidl::encoding::Depth,
10186        ) -> fidl::Result<()> {
10187            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10188            // Delegate to tuple encoding.
10189            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10190                (
10191                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10192                ),
10193                encoder, offset, _depth
10194            )
10195        }
10196    }
10197    unsafe impl<
10198        T0: fidl::encoding::Encode<
10199                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10200                fidl::encoding::DefaultFuchsiaResourceDialect,
10201            >,
10202    >
10203        fidl::encoding::Encode<
10204            RunnerCallFlexibleTwoWayErrRequest,
10205            fidl::encoding::DefaultFuchsiaResourceDialect,
10206        > for (T0,)
10207    {
10208        #[inline]
10209        unsafe fn encode(
10210            self,
10211            encoder: &mut fidl::encoding::Encoder<
10212                '_,
10213                fidl::encoding::DefaultFuchsiaResourceDialect,
10214            >,
10215            offset: usize,
10216            depth: fidl::encoding::Depth,
10217        ) -> fidl::Result<()> {
10218            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10219            // Zero out padding regions. There's no need to apply masks
10220            // because the unmasked parts will be overwritten by fields.
10221            // Write the fields.
10222            self.0.encode(encoder, offset + 0, depth)?;
10223            Ok(())
10224        }
10225    }
10226
10227    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10228        for RunnerCallFlexibleTwoWayErrRequest
10229    {
10230        #[inline(always)]
10231        fn new_empty() -> Self {
10232            Self {
10233                target: fidl::new_empty!(
10234                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10235                    fidl::encoding::DefaultFuchsiaResourceDialect
10236                ),
10237            }
10238        }
10239
10240        #[inline]
10241        unsafe fn decode(
10242            &mut self,
10243            decoder: &mut fidl::encoding::Decoder<
10244                '_,
10245                fidl::encoding::DefaultFuchsiaResourceDialect,
10246            >,
10247            offset: usize,
10248            _depth: fidl::encoding::Depth,
10249        ) -> fidl::Result<()> {
10250            decoder.debug_check_bounds::<Self>(offset);
10251            // Verify that padding bytes are zero.
10252            fidl::decode!(
10253                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10254                fidl::encoding::DefaultFuchsiaResourceDialect,
10255                &mut self.target,
10256                decoder,
10257                offset + 0,
10258                _depth
10259            )?;
10260            Ok(())
10261        }
10262    }
10263
10264    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10265        type Borrowed<'a> = &'a mut Self;
10266        fn take_or_borrow<'a>(
10267            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10268        ) -> Self::Borrowed<'a> {
10269            value
10270        }
10271    }
10272
10273    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10274        type Owned = Self;
10275
10276        #[inline(always)]
10277        fn inline_align(_context: fidl::encoding::Context) -> usize {
10278            4
10279        }
10280
10281        #[inline(always)]
10282        fn inline_size(_context: fidl::encoding::Context) -> usize {
10283            4
10284        }
10285    }
10286
10287    unsafe impl
10288        fidl::encoding::Encode<
10289            RunnerCallFlexibleTwoWayFieldsErrRequest,
10290            fidl::encoding::DefaultFuchsiaResourceDialect,
10291        > for &mut RunnerCallFlexibleTwoWayFieldsErrRequest
10292    {
10293        #[inline]
10294        unsafe fn encode(
10295            self,
10296            encoder: &mut fidl::encoding::Encoder<
10297                '_,
10298                fidl::encoding::DefaultFuchsiaResourceDialect,
10299            >,
10300            offset: usize,
10301            _depth: fidl::encoding::Depth,
10302        ) -> fidl::Result<()> {
10303            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10304            // Delegate to tuple encoding.
10305            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10306                (
10307                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10308                ),
10309                encoder, offset, _depth
10310            )
10311        }
10312    }
10313    unsafe impl<
10314        T0: fidl::encoding::Encode<
10315                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10316                fidl::encoding::DefaultFuchsiaResourceDialect,
10317            >,
10318    >
10319        fidl::encoding::Encode<
10320            RunnerCallFlexibleTwoWayFieldsErrRequest,
10321            fidl::encoding::DefaultFuchsiaResourceDialect,
10322        > for (T0,)
10323    {
10324        #[inline]
10325        unsafe fn encode(
10326            self,
10327            encoder: &mut fidl::encoding::Encoder<
10328                '_,
10329                fidl::encoding::DefaultFuchsiaResourceDialect,
10330            >,
10331            offset: usize,
10332            depth: fidl::encoding::Depth,
10333        ) -> fidl::Result<()> {
10334            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10335            // Zero out padding regions. There's no need to apply masks
10336            // because the unmasked parts will be overwritten by fields.
10337            // Write the fields.
10338            self.0.encode(encoder, offset + 0, depth)?;
10339            Ok(())
10340        }
10341    }
10342
10343    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10344        for RunnerCallFlexibleTwoWayFieldsErrRequest
10345    {
10346        #[inline(always)]
10347        fn new_empty() -> Self {
10348            Self {
10349                target: fidl::new_empty!(
10350                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10351                    fidl::encoding::DefaultFuchsiaResourceDialect
10352                ),
10353            }
10354        }
10355
10356        #[inline]
10357        unsafe fn decode(
10358            &mut self,
10359            decoder: &mut fidl::encoding::Decoder<
10360                '_,
10361                fidl::encoding::DefaultFuchsiaResourceDialect,
10362            >,
10363            offset: usize,
10364            _depth: fidl::encoding::Depth,
10365        ) -> fidl::Result<()> {
10366            decoder.debug_check_bounds::<Self>(offset);
10367            // Verify that padding bytes are zero.
10368            fidl::decode!(
10369                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10370                fidl::encoding::DefaultFuchsiaResourceDialect,
10371                &mut self.target,
10372                decoder,
10373                offset + 0,
10374                _depth
10375            )?;
10376            Ok(())
10377        }
10378    }
10379
10380    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10381        type Borrowed<'a> = &'a mut Self;
10382        fn take_or_borrow<'a>(
10383            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10384        ) -> Self::Borrowed<'a> {
10385            value
10386        }
10387    }
10388
10389    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10390        type Owned = Self;
10391
10392        #[inline(always)]
10393        fn inline_align(_context: fidl::encoding::Context) -> usize {
10394            4
10395        }
10396
10397        #[inline(always)]
10398        fn inline_size(_context: fidl::encoding::Context) -> usize {
10399            4
10400        }
10401    }
10402
10403    unsafe impl
10404        fidl::encoding::Encode<
10405            RunnerCallFlexibleTwoWayFieldsRequest,
10406            fidl::encoding::DefaultFuchsiaResourceDialect,
10407        > for &mut RunnerCallFlexibleTwoWayFieldsRequest
10408    {
10409        #[inline]
10410        unsafe fn encode(
10411            self,
10412            encoder: &mut fidl::encoding::Encoder<
10413                '_,
10414                fidl::encoding::DefaultFuchsiaResourceDialect,
10415            >,
10416            offset: usize,
10417            _depth: fidl::encoding::Depth,
10418        ) -> fidl::Result<()> {
10419            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10420            // Delegate to tuple encoding.
10421            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10422                (
10423                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10424                ),
10425                encoder, offset, _depth
10426            )
10427        }
10428    }
10429    unsafe impl<
10430        T0: fidl::encoding::Encode<
10431                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10432                fidl::encoding::DefaultFuchsiaResourceDialect,
10433            >,
10434    >
10435        fidl::encoding::Encode<
10436            RunnerCallFlexibleTwoWayFieldsRequest,
10437            fidl::encoding::DefaultFuchsiaResourceDialect,
10438        > for (T0,)
10439    {
10440        #[inline]
10441        unsafe fn encode(
10442            self,
10443            encoder: &mut fidl::encoding::Encoder<
10444                '_,
10445                fidl::encoding::DefaultFuchsiaResourceDialect,
10446            >,
10447            offset: usize,
10448            depth: fidl::encoding::Depth,
10449        ) -> fidl::Result<()> {
10450            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10451            // Zero out padding regions. There's no need to apply masks
10452            // because the unmasked parts will be overwritten by fields.
10453            // Write the fields.
10454            self.0.encode(encoder, offset + 0, depth)?;
10455            Ok(())
10456        }
10457    }
10458
10459    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10460        for RunnerCallFlexibleTwoWayFieldsRequest
10461    {
10462        #[inline(always)]
10463        fn new_empty() -> Self {
10464            Self {
10465                target: fidl::new_empty!(
10466                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10467                    fidl::encoding::DefaultFuchsiaResourceDialect
10468                ),
10469            }
10470        }
10471
10472        #[inline]
10473        unsafe fn decode(
10474            &mut self,
10475            decoder: &mut fidl::encoding::Decoder<
10476                '_,
10477                fidl::encoding::DefaultFuchsiaResourceDialect,
10478            >,
10479            offset: usize,
10480            _depth: fidl::encoding::Depth,
10481        ) -> fidl::Result<()> {
10482            decoder.debug_check_bounds::<Self>(offset);
10483            // Verify that padding bytes are zero.
10484            fidl::decode!(
10485                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10486                fidl::encoding::DefaultFuchsiaResourceDialect,
10487                &mut self.target,
10488                decoder,
10489                offset + 0,
10490                _depth
10491            )?;
10492            Ok(())
10493        }
10494    }
10495
10496    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayRequest {
10497        type Borrowed<'a> = &'a mut Self;
10498        fn take_or_borrow<'a>(
10499            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10500        ) -> Self::Borrowed<'a> {
10501            value
10502        }
10503    }
10504
10505    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayRequest {
10506        type Owned = Self;
10507
10508        #[inline(always)]
10509        fn inline_align(_context: fidl::encoding::Context) -> usize {
10510            4
10511        }
10512
10513        #[inline(always)]
10514        fn inline_size(_context: fidl::encoding::Context) -> usize {
10515            4
10516        }
10517    }
10518
10519    unsafe impl
10520        fidl::encoding::Encode<
10521            RunnerCallFlexibleTwoWayRequest,
10522            fidl::encoding::DefaultFuchsiaResourceDialect,
10523        > for &mut RunnerCallFlexibleTwoWayRequest
10524    {
10525        #[inline]
10526        unsafe fn encode(
10527            self,
10528            encoder: &mut fidl::encoding::Encoder<
10529                '_,
10530                fidl::encoding::DefaultFuchsiaResourceDialect,
10531            >,
10532            offset: usize,
10533            _depth: fidl::encoding::Depth,
10534        ) -> fidl::Result<()> {
10535            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10536            // Delegate to tuple encoding.
10537            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10538                (
10539                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10540                ),
10541                encoder, offset, _depth
10542            )
10543        }
10544    }
10545    unsafe impl<
10546        T0: fidl::encoding::Encode<
10547                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10548                fidl::encoding::DefaultFuchsiaResourceDialect,
10549            >,
10550    >
10551        fidl::encoding::Encode<
10552            RunnerCallFlexibleTwoWayRequest,
10553            fidl::encoding::DefaultFuchsiaResourceDialect,
10554        > for (T0,)
10555    {
10556        #[inline]
10557        unsafe fn encode(
10558            self,
10559            encoder: &mut fidl::encoding::Encoder<
10560                '_,
10561                fidl::encoding::DefaultFuchsiaResourceDialect,
10562            >,
10563            offset: usize,
10564            depth: fidl::encoding::Depth,
10565        ) -> fidl::Result<()> {
10566            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10567            // Zero out padding regions. There's no need to apply masks
10568            // because the unmasked parts will be overwritten by fields.
10569            // Write the fields.
10570            self.0.encode(encoder, offset + 0, depth)?;
10571            Ok(())
10572        }
10573    }
10574
10575    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10576        for RunnerCallFlexibleTwoWayRequest
10577    {
10578        #[inline(always)]
10579        fn new_empty() -> Self {
10580            Self {
10581                target: fidl::new_empty!(
10582                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10583                    fidl::encoding::DefaultFuchsiaResourceDialect
10584                ),
10585            }
10586        }
10587
10588        #[inline]
10589        unsafe fn decode(
10590            &mut self,
10591            decoder: &mut fidl::encoding::Decoder<
10592                '_,
10593                fidl::encoding::DefaultFuchsiaResourceDialect,
10594            >,
10595            offset: usize,
10596            _depth: fidl::encoding::Depth,
10597        ) -> fidl::Result<()> {
10598            decoder.debug_check_bounds::<Self>(offset);
10599            // Verify that padding bytes are zero.
10600            fidl::decode!(
10601                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10602                fidl::encoding::DefaultFuchsiaResourceDialect,
10603                &mut self.target,
10604                decoder,
10605                offset + 0,
10606                _depth
10607            )?;
10608            Ok(())
10609        }
10610    }
10611
10612    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayNoRequestRequest {
10613        type Borrowed<'a> = &'a mut Self;
10614        fn take_or_borrow<'a>(
10615            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10616        ) -> Self::Borrowed<'a> {
10617            value
10618        }
10619    }
10620
10621    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayNoRequestRequest {
10622        type Owned = Self;
10623
10624        #[inline(always)]
10625        fn inline_align(_context: fidl::encoding::Context) -> usize {
10626            4
10627        }
10628
10629        #[inline(always)]
10630        fn inline_size(_context: fidl::encoding::Context) -> usize {
10631            4
10632        }
10633    }
10634
10635    unsafe impl
10636        fidl::encoding::Encode<
10637            RunnerCallOneWayNoRequestRequest,
10638            fidl::encoding::DefaultFuchsiaResourceDialect,
10639        > for &mut RunnerCallOneWayNoRequestRequest
10640    {
10641        #[inline]
10642        unsafe fn encode(
10643            self,
10644            encoder: &mut fidl::encoding::Encoder<
10645                '_,
10646                fidl::encoding::DefaultFuchsiaResourceDialect,
10647            >,
10648            offset: usize,
10649            _depth: fidl::encoding::Depth,
10650        ) -> fidl::Result<()> {
10651            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10652            // Delegate to tuple encoding.
10653            fidl::encoding::Encode::<RunnerCallOneWayNoRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10654                (
10655                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10656                ),
10657                encoder, offset, _depth
10658            )
10659        }
10660    }
10661    unsafe impl<
10662        T0: fidl::encoding::Encode<
10663                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10664                fidl::encoding::DefaultFuchsiaResourceDialect,
10665            >,
10666    >
10667        fidl::encoding::Encode<
10668            RunnerCallOneWayNoRequestRequest,
10669            fidl::encoding::DefaultFuchsiaResourceDialect,
10670        > for (T0,)
10671    {
10672        #[inline]
10673        unsafe fn encode(
10674            self,
10675            encoder: &mut fidl::encoding::Encoder<
10676                '_,
10677                fidl::encoding::DefaultFuchsiaResourceDialect,
10678            >,
10679            offset: usize,
10680            depth: fidl::encoding::Depth,
10681        ) -> fidl::Result<()> {
10682            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10683            // Zero out padding regions. There's no need to apply masks
10684            // because the unmasked parts will be overwritten by fields.
10685            // Write the fields.
10686            self.0.encode(encoder, offset + 0, depth)?;
10687            Ok(())
10688        }
10689    }
10690
10691    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10692        for RunnerCallOneWayNoRequestRequest
10693    {
10694        #[inline(always)]
10695        fn new_empty() -> Self {
10696            Self {
10697                target: fidl::new_empty!(
10698                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10699                    fidl::encoding::DefaultFuchsiaResourceDialect
10700                ),
10701            }
10702        }
10703
10704        #[inline]
10705        unsafe fn decode(
10706            &mut self,
10707            decoder: &mut fidl::encoding::Decoder<
10708                '_,
10709                fidl::encoding::DefaultFuchsiaResourceDialect,
10710            >,
10711            offset: usize,
10712            _depth: fidl::encoding::Depth,
10713        ) -> fidl::Result<()> {
10714            decoder.debug_check_bounds::<Self>(offset);
10715            // Verify that padding bytes are zero.
10716            fidl::decode!(
10717                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10718                fidl::encoding::DefaultFuchsiaResourceDialect,
10719                &mut self.target,
10720                decoder,
10721                offset + 0,
10722                _depth
10723            )?;
10724            Ok(())
10725        }
10726    }
10727
10728    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayStructRequestRequest {
10729        type Borrowed<'a> = &'a mut Self;
10730        fn take_or_borrow<'a>(
10731            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10732        ) -> Self::Borrowed<'a> {
10733            value
10734        }
10735    }
10736
10737    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayStructRequestRequest {
10738        type Owned = Self;
10739
10740        #[inline(always)]
10741        fn inline_align(_context: fidl::encoding::Context) -> usize {
10742            4
10743        }
10744
10745        #[inline(always)]
10746        fn inline_size(_context: fidl::encoding::Context) -> usize {
10747            8
10748        }
10749    }
10750
10751    unsafe impl
10752        fidl::encoding::Encode<
10753            RunnerCallOneWayStructRequestRequest,
10754            fidl::encoding::DefaultFuchsiaResourceDialect,
10755        > for &mut RunnerCallOneWayStructRequestRequest
10756    {
10757        #[inline]
10758        unsafe fn encode(
10759            self,
10760            encoder: &mut fidl::encoding::Encoder<
10761                '_,
10762                fidl::encoding::DefaultFuchsiaResourceDialect,
10763            >,
10764            offset: usize,
10765            _depth: fidl::encoding::Depth,
10766        ) -> fidl::Result<()> {
10767            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10768            // Delegate to tuple encoding.
10769            fidl::encoding::Encode::<RunnerCallOneWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10770                (
10771                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10772                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10773                ),
10774                encoder, offset, _depth
10775            )
10776        }
10777    }
10778    unsafe impl<
10779        T0: fidl::encoding::Encode<
10780                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10781                fidl::encoding::DefaultFuchsiaResourceDialect,
10782            >,
10783        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10784    >
10785        fidl::encoding::Encode<
10786            RunnerCallOneWayStructRequestRequest,
10787            fidl::encoding::DefaultFuchsiaResourceDialect,
10788        > for (T0, T1)
10789    {
10790        #[inline]
10791        unsafe fn encode(
10792            self,
10793            encoder: &mut fidl::encoding::Encoder<
10794                '_,
10795                fidl::encoding::DefaultFuchsiaResourceDialect,
10796            >,
10797            offset: usize,
10798            depth: fidl::encoding::Depth,
10799        ) -> fidl::Result<()> {
10800            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10801            // Zero out padding regions. There's no need to apply masks
10802            // because the unmasked parts will be overwritten by fields.
10803            // Write the fields.
10804            self.0.encode(encoder, offset + 0, depth)?;
10805            self.1.encode(encoder, offset + 4, depth)?;
10806            Ok(())
10807        }
10808    }
10809
10810    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10811        for RunnerCallOneWayStructRequestRequest
10812    {
10813        #[inline(always)]
10814        fn new_empty() -> Self {
10815            Self {
10816                target: fidl::new_empty!(
10817                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10818                    fidl::encoding::DefaultFuchsiaResourceDialect
10819                ),
10820                request: fidl::new_empty!(
10821                    NonEmptyPayload,
10822                    fidl::encoding::DefaultFuchsiaResourceDialect
10823                ),
10824            }
10825        }
10826
10827        #[inline]
10828        unsafe fn decode(
10829            &mut self,
10830            decoder: &mut fidl::encoding::Decoder<
10831                '_,
10832                fidl::encoding::DefaultFuchsiaResourceDialect,
10833            >,
10834            offset: usize,
10835            _depth: fidl::encoding::Depth,
10836        ) -> fidl::Result<()> {
10837            decoder.debug_check_bounds::<Self>(offset);
10838            // Verify that padding bytes are zero.
10839            fidl::decode!(
10840                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10841                fidl::encoding::DefaultFuchsiaResourceDialect,
10842                &mut self.target,
10843                decoder,
10844                offset + 0,
10845                _depth
10846            )?;
10847            fidl::decode!(
10848                NonEmptyPayload,
10849                fidl::encoding::DefaultFuchsiaResourceDialect,
10850                &mut self.request,
10851                decoder,
10852                offset + 4,
10853                _depth
10854            )?;
10855            Ok(())
10856        }
10857    }
10858
10859    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayTableRequestRequest {
10860        type Borrowed<'a> = &'a mut Self;
10861        fn take_or_borrow<'a>(
10862            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10863        ) -> Self::Borrowed<'a> {
10864            value
10865        }
10866    }
10867
10868    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayTableRequestRequest {
10869        type Owned = Self;
10870
10871        #[inline(always)]
10872        fn inline_align(_context: fidl::encoding::Context) -> usize {
10873            8
10874        }
10875
10876        #[inline(always)]
10877        fn inline_size(_context: fidl::encoding::Context) -> usize {
10878            24
10879        }
10880    }
10881
10882    unsafe impl
10883        fidl::encoding::Encode<
10884            RunnerCallOneWayTableRequestRequest,
10885            fidl::encoding::DefaultFuchsiaResourceDialect,
10886        > for &mut RunnerCallOneWayTableRequestRequest
10887    {
10888        #[inline]
10889        unsafe fn encode(
10890            self,
10891            encoder: &mut fidl::encoding::Encoder<
10892                '_,
10893                fidl::encoding::DefaultFuchsiaResourceDialect,
10894            >,
10895            offset: usize,
10896            _depth: fidl::encoding::Depth,
10897        ) -> fidl::Result<()> {
10898            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10899            // Delegate to tuple encoding.
10900            fidl::encoding::Encode::<RunnerCallOneWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10901                (
10902                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10903                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10904                ),
10905                encoder, offset, _depth
10906            )
10907        }
10908    }
10909    unsafe impl<
10910        T0: fidl::encoding::Encode<
10911                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10912                fidl::encoding::DefaultFuchsiaResourceDialect,
10913            >,
10914        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10915    >
10916        fidl::encoding::Encode<
10917            RunnerCallOneWayTableRequestRequest,
10918            fidl::encoding::DefaultFuchsiaResourceDialect,
10919        > for (T0, T1)
10920    {
10921        #[inline]
10922        unsafe fn encode(
10923            self,
10924            encoder: &mut fidl::encoding::Encoder<
10925                '_,
10926                fidl::encoding::DefaultFuchsiaResourceDialect,
10927            >,
10928            offset: usize,
10929            depth: fidl::encoding::Depth,
10930        ) -> fidl::Result<()> {
10931            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10932            // Zero out padding regions. There's no need to apply masks
10933            // because the unmasked parts will be overwritten by fields.
10934            unsafe {
10935                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10936                (ptr as *mut u64).write_unaligned(0);
10937            }
10938            // Write the fields.
10939            self.0.encode(encoder, offset + 0, depth)?;
10940            self.1.encode(encoder, offset + 8, depth)?;
10941            Ok(())
10942        }
10943    }
10944
10945    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10946        for RunnerCallOneWayTableRequestRequest
10947    {
10948        #[inline(always)]
10949        fn new_empty() -> Self {
10950            Self {
10951                target: fidl::new_empty!(
10952                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10953                    fidl::encoding::DefaultFuchsiaResourceDialect
10954                ),
10955                request: fidl::new_empty!(
10956                    TablePayload,
10957                    fidl::encoding::DefaultFuchsiaResourceDialect
10958                ),
10959            }
10960        }
10961
10962        #[inline]
10963        unsafe fn decode(
10964            &mut self,
10965            decoder: &mut fidl::encoding::Decoder<
10966                '_,
10967                fidl::encoding::DefaultFuchsiaResourceDialect,
10968            >,
10969            offset: usize,
10970            _depth: fidl::encoding::Depth,
10971        ) -> fidl::Result<()> {
10972            decoder.debug_check_bounds::<Self>(offset);
10973            // Verify that padding bytes are zero.
10974            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
10975            let padval = unsafe { (ptr as *const u64).read_unaligned() };
10976            let mask = 0xffffffff00000000u64;
10977            let maskedval = padval & mask;
10978            if maskedval != 0 {
10979                return Err(fidl::Error::NonZeroPadding {
10980                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
10981                });
10982            }
10983            fidl::decode!(
10984                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10985                fidl::encoding::DefaultFuchsiaResourceDialect,
10986                &mut self.target,
10987                decoder,
10988                offset + 0,
10989                _depth
10990            )?;
10991            fidl::decode!(
10992                TablePayload,
10993                fidl::encoding::DefaultFuchsiaResourceDialect,
10994                &mut self.request,
10995                decoder,
10996                offset + 8,
10997                _depth
10998            )?;
10999            Ok(())
11000        }
11001    }
11002
11003    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayUnionRequestRequest {
11004        type Borrowed<'a> = &'a mut Self;
11005        fn take_or_borrow<'a>(
11006            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11007        ) -> Self::Borrowed<'a> {
11008            value
11009        }
11010    }
11011
11012    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayUnionRequestRequest {
11013        type Owned = Self;
11014
11015        #[inline(always)]
11016        fn inline_align(_context: fidl::encoding::Context) -> usize {
11017            8
11018        }
11019
11020        #[inline(always)]
11021        fn inline_size(_context: fidl::encoding::Context) -> usize {
11022            24
11023        }
11024    }
11025
11026    unsafe impl
11027        fidl::encoding::Encode<
11028            RunnerCallOneWayUnionRequestRequest,
11029            fidl::encoding::DefaultFuchsiaResourceDialect,
11030        > for &mut RunnerCallOneWayUnionRequestRequest
11031    {
11032        #[inline]
11033        unsafe fn encode(
11034            self,
11035            encoder: &mut fidl::encoding::Encoder<
11036                '_,
11037                fidl::encoding::DefaultFuchsiaResourceDialect,
11038            >,
11039            offset: usize,
11040            _depth: fidl::encoding::Depth,
11041        ) -> fidl::Result<()> {
11042            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
11043            // Delegate to tuple encoding.
11044            fidl::encoding::Encode::<RunnerCallOneWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11045                (
11046                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11047                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
11048                ),
11049                encoder, offset, _depth
11050            )
11051        }
11052    }
11053    unsafe impl<
11054        T0: fidl::encoding::Encode<
11055                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11056                fidl::encoding::DefaultFuchsiaResourceDialect,
11057            >,
11058        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
11059    >
11060        fidl::encoding::Encode<
11061            RunnerCallOneWayUnionRequestRequest,
11062            fidl::encoding::DefaultFuchsiaResourceDialect,
11063        > for (T0, T1)
11064    {
11065        #[inline]
11066        unsafe fn encode(
11067            self,
11068            encoder: &mut fidl::encoding::Encoder<
11069                '_,
11070                fidl::encoding::DefaultFuchsiaResourceDialect,
11071            >,
11072            offset: usize,
11073            depth: fidl::encoding::Depth,
11074        ) -> fidl::Result<()> {
11075            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
11076            // Zero out padding regions. There's no need to apply masks
11077            // because the unmasked parts will be overwritten by fields.
11078            unsafe {
11079                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
11080                (ptr as *mut u64).write_unaligned(0);
11081            }
11082            // Write the fields.
11083            self.0.encode(encoder, offset + 0, depth)?;
11084            self.1.encode(encoder, offset + 8, depth)?;
11085            Ok(())
11086        }
11087    }
11088
11089    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11090        for RunnerCallOneWayUnionRequestRequest
11091    {
11092        #[inline(always)]
11093        fn new_empty() -> Self {
11094            Self {
11095                target: fidl::new_empty!(
11096                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11097                    fidl::encoding::DefaultFuchsiaResourceDialect
11098                ),
11099                request: fidl::new_empty!(
11100                    UnionPayload,
11101                    fidl::encoding::DefaultFuchsiaResourceDialect
11102                ),
11103            }
11104        }
11105
11106        #[inline]
11107        unsafe fn decode(
11108            &mut self,
11109            decoder: &mut fidl::encoding::Decoder<
11110                '_,
11111                fidl::encoding::DefaultFuchsiaResourceDialect,
11112            >,
11113            offset: usize,
11114            _depth: fidl::encoding::Depth,
11115        ) -> fidl::Result<()> {
11116            decoder.debug_check_bounds::<Self>(offset);
11117            // Verify that padding bytes are zero.
11118            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
11119            let padval = unsafe { (ptr as *const u64).read_unaligned() };
11120            let mask = 0xffffffff00000000u64;
11121            let maskedval = padval & mask;
11122            if maskedval != 0 {
11123                return Err(fidl::Error::NonZeroPadding {
11124                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
11125                });
11126            }
11127            fidl::decode!(
11128                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11129                fidl::encoding::DefaultFuchsiaResourceDialect,
11130                &mut self.target,
11131                decoder,
11132                offset + 0,
11133                _depth
11134            )?;
11135            fidl::decode!(
11136                UnionPayload,
11137                fidl::encoding::DefaultFuchsiaResourceDialect,
11138                &mut self.request,
11139                decoder,
11140                offset + 8,
11141                _depth
11142            )?;
11143            Ok(())
11144        }
11145    }
11146
11147    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictOneWayRequest {
11148        type Borrowed<'a> = &'a mut Self;
11149        fn take_or_borrow<'a>(
11150            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11151        ) -> Self::Borrowed<'a> {
11152            value
11153        }
11154    }
11155
11156    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictOneWayRequest {
11157        type Owned = Self;
11158
11159        #[inline(always)]
11160        fn inline_align(_context: fidl::encoding::Context) -> usize {
11161            4
11162        }
11163
11164        #[inline(always)]
11165        fn inline_size(_context: fidl::encoding::Context) -> usize {
11166            4
11167        }
11168    }
11169
11170    unsafe impl
11171        fidl::encoding::Encode<
11172            RunnerCallStrictOneWayRequest,
11173            fidl::encoding::DefaultFuchsiaResourceDialect,
11174        > for &mut RunnerCallStrictOneWayRequest
11175    {
11176        #[inline]
11177        unsafe fn encode(
11178            self,
11179            encoder: &mut fidl::encoding::Encoder<
11180                '_,
11181                fidl::encoding::DefaultFuchsiaResourceDialect,
11182            >,
11183            offset: usize,
11184            _depth: fidl::encoding::Depth,
11185        ) -> fidl::Result<()> {
11186            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11187            // Delegate to tuple encoding.
11188            fidl::encoding::Encode::<RunnerCallStrictOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11189                (
11190                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11191                ),
11192                encoder, offset, _depth
11193            )
11194        }
11195    }
11196    unsafe impl<
11197        T0: fidl::encoding::Encode<
11198                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11199                fidl::encoding::DefaultFuchsiaResourceDialect,
11200            >,
11201    >
11202        fidl::encoding::Encode<
11203            RunnerCallStrictOneWayRequest,
11204            fidl::encoding::DefaultFuchsiaResourceDialect,
11205        > for (T0,)
11206    {
11207        #[inline]
11208        unsafe fn encode(
11209            self,
11210            encoder: &mut fidl::encoding::Encoder<
11211                '_,
11212                fidl::encoding::DefaultFuchsiaResourceDialect,
11213            >,
11214            offset: usize,
11215            depth: fidl::encoding::Depth,
11216        ) -> fidl::Result<()> {
11217            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11218            // Zero out padding regions. There's no need to apply masks
11219            // because the unmasked parts will be overwritten by fields.
11220            // Write the fields.
11221            self.0.encode(encoder, offset + 0, depth)?;
11222            Ok(())
11223        }
11224    }
11225
11226    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11227        for RunnerCallStrictOneWayRequest
11228    {
11229        #[inline(always)]
11230        fn new_empty() -> Self {
11231            Self {
11232                target: fidl::new_empty!(
11233                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11234                    fidl::encoding::DefaultFuchsiaResourceDialect
11235                ),
11236            }
11237        }
11238
11239        #[inline]
11240        unsafe fn decode(
11241            &mut self,
11242            decoder: &mut fidl::encoding::Decoder<
11243                '_,
11244                fidl::encoding::DefaultFuchsiaResourceDialect,
11245            >,
11246            offset: usize,
11247            _depth: fidl::encoding::Depth,
11248        ) -> fidl::Result<()> {
11249            decoder.debug_check_bounds::<Self>(offset);
11250            // Verify that padding bytes are zero.
11251            fidl::decode!(
11252                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11253                fidl::encoding::DefaultFuchsiaResourceDialect,
11254                &mut self.target,
11255                decoder,
11256                offset + 0,
11257                _depth
11258            )?;
11259            Ok(())
11260        }
11261    }
11262
11263    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayErrRequest {
11264        type Borrowed<'a> = &'a mut Self;
11265        fn take_or_borrow<'a>(
11266            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11267        ) -> Self::Borrowed<'a> {
11268            value
11269        }
11270    }
11271
11272    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayErrRequest {
11273        type Owned = Self;
11274
11275        #[inline(always)]
11276        fn inline_align(_context: fidl::encoding::Context) -> usize {
11277            4
11278        }
11279
11280        #[inline(always)]
11281        fn inline_size(_context: fidl::encoding::Context) -> usize {
11282            4
11283        }
11284    }
11285
11286    unsafe impl
11287        fidl::encoding::Encode<
11288            RunnerCallStrictTwoWayErrRequest,
11289            fidl::encoding::DefaultFuchsiaResourceDialect,
11290        > for &mut RunnerCallStrictTwoWayErrRequest
11291    {
11292        #[inline]
11293        unsafe fn encode(
11294            self,
11295            encoder: &mut fidl::encoding::Encoder<
11296                '_,
11297                fidl::encoding::DefaultFuchsiaResourceDialect,
11298            >,
11299            offset: usize,
11300            _depth: fidl::encoding::Depth,
11301        ) -> fidl::Result<()> {
11302            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11303            // Delegate to tuple encoding.
11304            fidl::encoding::Encode::<RunnerCallStrictTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11305                (
11306                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11307                ),
11308                encoder, offset, _depth
11309            )
11310        }
11311    }
11312    unsafe impl<
11313        T0: fidl::encoding::Encode<
11314                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11315                fidl::encoding::DefaultFuchsiaResourceDialect,
11316            >,
11317    >
11318        fidl::encoding::Encode<
11319            RunnerCallStrictTwoWayErrRequest,
11320            fidl::encoding::DefaultFuchsiaResourceDialect,
11321        > for (T0,)
11322    {
11323        #[inline]
11324        unsafe fn encode(
11325            self,
11326            encoder: &mut fidl::encoding::Encoder<
11327                '_,
11328                fidl::encoding::DefaultFuchsiaResourceDialect,
11329            >,
11330            offset: usize,
11331            depth: fidl::encoding::Depth,
11332        ) -> fidl::Result<()> {
11333            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11334            // Zero out padding regions. There's no need to apply masks
11335            // because the unmasked parts will be overwritten by fields.
11336            // Write the fields.
11337            self.0.encode(encoder, offset + 0, depth)?;
11338            Ok(())
11339        }
11340    }
11341
11342    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11343        for RunnerCallStrictTwoWayErrRequest
11344    {
11345        #[inline(always)]
11346        fn new_empty() -> Self {
11347            Self {
11348                target: fidl::new_empty!(
11349                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11350                    fidl::encoding::DefaultFuchsiaResourceDialect
11351                ),
11352            }
11353        }
11354
11355        #[inline]
11356        unsafe fn decode(
11357            &mut self,
11358            decoder: &mut fidl::encoding::Decoder<
11359                '_,
11360                fidl::encoding::DefaultFuchsiaResourceDialect,
11361            >,
11362            offset: usize,
11363            _depth: fidl::encoding::Depth,
11364        ) -> fidl::Result<()> {
11365            decoder.debug_check_bounds::<Self>(offset);
11366            // Verify that padding bytes are zero.
11367            fidl::decode!(
11368                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11369                fidl::encoding::DefaultFuchsiaResourceDialect,
11370                &mut self.target,
11371                decoder,
11372                offset + 0,
11373                _depth
11374            )?;
11375            Ok(())
11376        }
11377    }
11378
11379    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11380        type Borrowed<'a> = &'a mut Self;
11381        fn take_or_borrow<'a>(
11382            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11383        ) -> Self::Borrowed<'a> {
11384            value
11385        }
11386    }
11387
11388    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11389        type Owned = Self;
11390
11391        #[inline(always)]
11392        fn inline_align(_context: fidl::encoding::Context) -> usize {
11393            4
11394        }
11395
11396        #[inline(always)]
11397        fn inline_size(_context: fidl::encoding::Context) -> usize {
11398            4
11399        }
11400    }
11401
11402    unsafe impl
11403        fidl::encoding::Encode<
11404            RunnerCallStrictTwoWayFieldsErrRequest,
11405            fidl::encoding::DefaultFuchsiaResourceDialect,
11406        > for &mut RunnerCallStrictTwoWayFieldsErrRequest
11407    {
11408        #[inline]
11409        unsafe fn encode(
11410            self,
11411            encoder: &mut fidl::encoding::Encoder<
11412                '_,
11413                fidl::encoding::DefaultFuchsiaResourceDialect,
11414            >,
11415            offset: usize,
11416            _depth: fidl::encoding::Depth,
11417        ) -> fidl::Result<()> {
11418            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11419            // Delegate to tuple encoding.
11420            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11421                (
11422                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11423                ),
11424                encoder, offset, _depth
11425            )
11426        }
11427    }
11428    unsafe impl<
11429        T0: fidl::encoding::Encode<
11430                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11431                fidl::encoding::DefaultFuchsiaResourceDialect,
11432            >,
11433    >
11434        fidl::encoding::Encode<
11435            RunnerCallStrictTwoWayFieldsErrRequest,
11436            fidl::encoding::DefaultFuchsiaResourceDialect,
11437        > for (T0,)
11438    {
11439        #[inline]
11440        unsafe fn encode(
11441            self,
11442            encoder: &mut fidl::encoding::Encoder<
11443                '_,
11444                fidl::encoding::DefaultFuchsiaResourceDialect,
11445            >,
11446            offset: usize,
11447            depth: fidl::encoding::Depth,
11448        ) -> fidl::Result<()> {
11449            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11450            // Zero out padding regions. There's no need to apply masks
11451            // because the unmasked parts will be overwritten by fields.
11452            // Write the fields.
11453            self.0.encode(encoder, offset + 0, depth)?;
11454            Ok(())
11455        }
11456    }
11457
11458    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11459        for RunnerCallStrictTwoWayFieldsErrRequest
11460    {
11461        #[inline(always)]
11462        fn new_empty() -> Self {
11463            Self {
11464                target: fidl::new_empty!(
11465                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11466                    fidl::encoding::DefaultFuchsiaResourceDialect
11467                ),
11468            }
11469        }
11470
11471        #[inline]
11472        unsafe fn decode(
11473            &mut self,
11474            decoder: &mut fidl::encoding::Decoder<
11475                '_,
11476                fidl::encoding::DefaultFuchsiaResourceDialect,
11477            >,
11478            offset: usize,
11479            _depth: fidl::encoding::Depth,
11480        ) -> fidl::Result<()> {
11481            decoder.debug_check_bounds::<Self>(offset);
11482            // Verify that padding bytes are zero.
11483            fidl::decode!(
11484                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11485                fidl::encoding::DefaultFuchsiaResourceDialect,
11486                &mut self.target,
11487                decoder,
11488                offset + 0,
11489                _depth
11490            )?;
11491            Ok(())
11492        }
11493    }
11494
11495    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11496        type Borrowed<'a> = &'a mut Self;
11497        fn take_or_borrow<'a>(
11498            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11499        ) -> Self::Borrowed<'a> {
11500            value
11501        }
11502    }
11503
11504    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11505        type Owned = Self;
11506
11507        #[inline(always)]
11508        fn inline_align(_context: fidl::encoding::Context) -> usize {
11509            4
11510        }
11511
11512        #[inline(always)]
11513        fn inline_size(_context: fidl::encoding::Context) -> usize {
11514            4
11515        }
11516    }
11517
11518    unsafe impl
11519        fidl::encoding::Encode<
11520            RunnerCallStrictTwoWayFieldsRequest,
11521            fidl::encoding::DefaultFuchsiaResourceDialect,
11522        > for &mut RunnerCallStrictTwoWayFieldsRequest
11523    {
11524        #[inline]
11525        unsafe fn encode(
11526            self,
11527            encoder: &mut fidl::encoding::Encoder<
11528                '_,
11529                fidl::encoding::DefaultFuchsiaResourceDialect,
11530            >,
11531            offset: usize,
11532            _depth: fidl::encoding::Depth,
11533        ) -> fidl::Result<()> {
11534            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11535            // Delegate to tuple encoding.
11536            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11537                (
11538                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11539                ),
11540                encoder, offset, _depth
11541            )
11542        }
11543    }
11544    unsafe impl<
11545        T0: fidl::encoding::Encode<
11546                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11547                fidl::encoding::DefaultFuchsiaResourceDialect,
11548            >,
11549    >
11550        fidl::encoding::Encode<
11551            RunnerCallStrictTwoWayFieldsRequest,
11552            fidl::encoding::DefaultFuchsiaResourceDialect,
11553        > for (T0,)
11554    {
11555        #[inline]
11556        unsafe fn encode(
11557            self,
11558            encoder: &mut fidl::encoding::Encoder<
11559                '_,
11560                fidl::encoding::DefaultFuchsiaResourceDialect,
11561            >,
11562            offset: usize,
11563            depth: fidl::encoding::Depth,
11564        ) -> fidl::Result<()> {
11565            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11566            // Zero out padding regions. There's no need to apply masks
11567            // because the unmasked parts will be overwritten by fields.
11568            // Write the fields.
11569            self.0.encode(encoder, offset + 0, depth)?;
11570            Ok(())
11571        }
11572    }
11573
11574    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11575        for RunnerCallStrictTwoWayFieldsRequest
11576    {
11577        #[inline(always)]
11578        fn new_empty() -> Self {
11579            Self {
11580                target: fidl::new_empty!(
11581                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11582                    fidl::encoding::DefaultFuchsiaResourceDialect
11583                ),
11584            }
11585        }
11586
11587        #[inline]
11588        unsafe fn decode(
11589            &mut self,
11590            decoder: &mut fidl::encoding::Decoder<
11591                '_,
11592                fidl::encoding::DefaultFuchsiaResourceDialect,
11593            >,
11594            offset: usize,
11595            _depth: fidl::encoding::Depth,
11596        ) -> fidl::Result<()> {
11597            decoder.debug_check_bounds::<Self>(offset);
11598            // Verify that padding bytes are zero.
11599            fidl::decode!(
11600                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11601                fidl::encoding::DefaultFuchsiaResourceDialect,
11602                &mut self.target,
11603                decoder,
11604                offset + 0,
11605                _depth
11606            )?;
11607            Ok(())
11608        }
11609    }
11610
11611    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayRequest {
11612        type Borrowed<'a> = &'a mut Self;
11613        fn take_or_borrow<'a>(
11614            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11615        ) -> Self::Borrowed<'a> {
11616            value
11617        }
11618    }
11619
11620    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayRequest {
11621        type Owned = Self;
11622
11623        #[inline(always)]
11624        fn inline_align(_context: fidl::encoding::Context) -> usize {
11625            4
11626        }
11627
11628        #[inline(always)]
11629        fn inline_size(_context: fidl::encoding::Context) -> usize {
11630            4
11631        }
11632    }
11633
11634    unsafe impl
11635        fidl::encoding::Encode<
11636            RunnerCallStrictTwoWayRequest,
11637            fidl::encoding::DefaultFuchsiaResourceDialect,
11638        > for &mut RunnerCallStrictTwoWayRequest
11639    {
11640        #[inline]
11641        unsafe fn encode(
11642            self,
11643            encoder: &mut fidl::encoding::Encoder<
11644                '_,
11645                fidl::encoding::DefaultFuchsiaResourceDialect,
11646            >,
11647            offset: usize,
11648            _depth: fidl::encoding::Depth,
11649        ) -> fidl::Result<()> {
11650            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11651            // Delegate to tuple encoding.
11652            fidl::encoding::Encode::<RunnerCallStrictTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11653                (
11654                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11655                ),
11656                encoder, offset, _depth
11657            )
11658        }
11659    }
11660    unsafe impl<
11661        T0: fidl::encoding::Encode<
11662                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11663                fidl::encoding::DefaultFuchsiaResourceDialect,
11664            >,
11665    >
11666        fidl::encoding::Encode<
11667            RunnerCallStrictTwoWayRequest,
11668            fidl::encoding::DefaultFuchsiaResourceDialect,
11669        > for (T0,)
11670    {
11671        #[inline]
11672        unsafe fn encode(
11673            self,
11674            encoder: &mut fidl::encoding::Encoder<
11675                '_,
11676                fidl::encoding::DefaultFuchsiaResourceDialect,
11677            >,
11678            offset: usize,
11679            depth: fidl::encoding::Depth,
11680        ) -> fidl::Result<()> {
11681            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11682            // Zero out padding regions. There's no need to apply masks
11683            // because the unmasked parts will be overwritten by fields.
11684            // Write the fields.
11685            self.0.encode(encoder, offset + 0, depth)?;
11686            Ok(())
11687        }
11688    }
11689
11690    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11691        for RunnerCallStrictTwoWayRequest
11692    {
11693        #[inline(always)]
11694        fn new_empty() -> Self {
11695            Self {
11696                target: fidl::new_empty!(
11697                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11698                    fidl::encoding::DefaultFuchsiaResourceDialect
11699                ),
11700            }
11701        }
11702
11703        #[inline]
11704        unsafe fn decode(
11705            &mut self,
11706            decoder: &mut fidl::encoding::Decoder<
11707                '_,
11708                fidl::encoding::DefaultFuchsiaResourceDialect,
11709            >,
11710            offset: usize,
11711            _depth: fidl::encoding::Depth,
11712        ) -> fidl::Result<()> {
11713            decoder.debug_check_bounds::<Self>(offset);
11714            // Verify that padding bytes are zero.
11715            fidl::decode!(
11716                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11717                fidl::encoding::DefaultFuchsiaResourceDialect,
11718                &mut self.target,
11719                decoder,
11720                offset + 0,
11721                _depth
11722            )?;
11723            Ok(())
11724        }
11725    }
11726
11727    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayNoPayloadRequest {
11728        type Borrowed<'a> = &'a mut Self;
11729        fn take_or_borrow<'a>(
11730            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11731        ) -> Self::Borrowed<'a> {
11732            value
11733        }
11734    }
11735
11736    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayNoPayloadRequest {
11737        type Owned = Self;
11738
11739        #[inline(always)]
11740        fn inline_align(_context: fidl::encoding::Context) -> usize {
11741            4
11742        }
11743
11744        #[inline(always)]
11745        fn inline_size(_context: fidl::encoding::Context) -> usize {
11746            4
11747        }
11748    }
11749
11750    unsafe impl
11751        fidl::encoding::Encode<
11752            RunnerCallTwoWayNoPayloadRequest,
11753            fidl::encoding::DefaultFuchsiaResourceDialect,
11754        > for &mut RunnerCallTwoWayNoPayloadRequest
11755    {
11756        #[inline]
11757        unsafe fn encode(
11758            self,
11759            encoder: &mut fidl::encoding::Encoder<
11760                '_,
11761                fidl::encoding::DefaultFuchsiaResourceDialect,
11762            >,
11763            offset: usize,
11764            _depth: fidl::encoding::Depth,
11765        ) -> fidl::Result<()> {
11766            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11767            // Delegate to tuple encoding.
11768            fidl::encoding::Encode::<RunnerCallTwoWayNoPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11769                (
11770                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11771                ),
11772                encoder, offset, _depth
11773            )
11774        }
11775    }
11776    unsafe impl<
11777        T0: fidl::encoding::Encode<
11778                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11779                fidl::encoding::DefaultFuchsiaResourceDialect,
11780            >,
11781    >
11782        fidl::encoding::Encode<
11783            RunnerCallTwoWayNoPayloadRequest,
11784            fidl::encoding::DefaultFuchsiaResourceDialect,
11785        > for (T0,)
11786    {
11787        #[inline]
11788        unsafe fn encode(
11789            self,
11790            encoder: &mut fidl::encoding::Encoder<
11791                '_,
11792                fidl::encoding::DefaultFuchsiaResourceDialect,
11793            >,
11794            offset: usize,
11795            depth: fidl::encoding::Depth,
11796        ) -> fidl::Result<()> {
11797            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11798            // Zero out padding regions. There's no need to apply masks
11799            // because the unmasked parts will be overwritten by fields.
11800            // Write the fields.
11801            self.0.encode(encoder, offset + 0, depth)?;
11802            Ok(())
11803        }
11804    }
11805
11806    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11807        for RunnerCallTwoWayNoPayloadRequest
11808    {
11809        #[inline(always)]
11810        fn new_empty() -> Self {
11811            Self {
11812                target: fidl::new_empty!(
11813                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11814                    fidl::encoding::DefaultFuchsiaResourceDialect
11815                ),
11816            }
11817        }
11818
11819        #[inline]
11820        unsafe fn decode(
11821            &mut self,
11822            decoder: &mut fidl::encoding::Decoder<
11823                '_,
11824                fidl::encoding::DefaultFuchsiaResourceDialect,
11825            >,
11826            offset: usize,
11827            _depth: fidl::encoding::Depth,
11828        ) -> fidl::Result<()> {
11829            decoder.debug_check_bounds::<Self>(offset);
11830            // Verify that padding bytes are zero.
11831            fidl::decode!(
11832                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11833                fidl::encoding::DefaultFuchsiaResourceDialect,
11834                &mut self.target,
11835                decoder,
11836                offset + 0,
11837                _depth
11838            )?;
11839            Ok(())
11840        }
11841    }
11842
11843    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11844        type Borrowed<'a> = &'a mut Self;
11845        fn take_or_borrow<'a>(
11846            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11847        ) -> Self::Borrowed<'a> {
11848            value
11849        }
11850    }
11851
11852    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11853        type Owned = Self;
11854
11855        #[inline(always)]
11856        fn inline_align(_context: fidl::encoding::Context) -> usize {
11857            4
11858        }
11859
11860        #[inline(always)]
11861        fn inline_size(_context: fidl::encoding::Context) -> usize {
11862            4
11863        }
11864    }
11865
11866    unsafe impl
11867        fidl::encoding::Encode<
11868            RunnerCallTwoWayStructPayloadErrRequest,
11869            fidl::encoding::DefaultFuchsiaResourceDialect,
11870        > for &mut RunnerCallTwoWayStructPayloadErrRequest
11871    {
11872        #[inline]
11873        unsafe fn encode(
11874            self,
11875            encoder: &mut fidl::encoding::Encoder<
11876                '_,
11877                fidl::encoding::DefaultFuchsiaResourceDialect,
11878            >,
11879            offset: usize,
11880            _depth: fidl::encoding::Depth,
11881        ) -> fidl::Result<()> {
11882            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11883            // Delegate to tuple encoding.
11884            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11885                (
11886                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11887                ),
11888                encoder, offset, _depth
11889            )
11890        }
11891    }
11892    unsafe impl<
11893        T0: fidl::encoding::Encode<
11894                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11895                fidl::encoding::DefaultFuchsiaResourceDialect,
11896            >,
11897    >
11898        fidl::encoding::Encode<
11899            RunnerCallTwoWayStructPayloadErrRequest,
11900            fidl::encoding::DefaultFuchsiaResourceDialect,
11901        > for (T0,)
11902    {
11903        #[inline]
11904        unsafe fn encode(
11905            self,
11906            encoder: &mut fidl::encoding::Encoder<
11907                '_,
11908                fidl::encoding::DefaultFuchsiaResourceDialect,
11909            >,
11910            offset: usize,
11911            depth: fidl::encoding::Depth,
11912        ) -> fidl::Result<()> {
11913            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11914            // Zero out padding regions. There's no need to apply masks
11915            // because the unmasked parts will be overwritten by fields.
11916            // Write the fields.
11917            self.0.encode(encoder, offset + 0, depth)?;
11918            Ok(())
11919        }
11920    }
11921
11922    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11923        for RunnerCallTwoWayStructPayloadErrRequest
11924    {
11925        #[inline(always)]
11926        fn new_empty() -> Self {
11927            Self {
11928                target: fidl::new_empty!(
11929                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11930                    fidl::encoding::DefaultFuchsiaResourceDialect
11931                ),
11932            }
11933        }
11934
11935        #[inline]
11936        unsafe fn decode(
11937            &mut self,
11938            decoder: &mut fidl::encoding::Decoder<
11939                '_,
11940                fidl::encoding::DefaultFuchsiaResourceDialect,
11941            >,
11942            offset: usize,
11943            _depth: fidl::encoding::Depth,
11944        ) -> fidl::Result<()> {
11945            decoder.debug_check_bounds::<Self>(offset);
11946            // Verify that padding bytes are zero.
11947            fidl::decode!(
11948                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11949                fidl::encoding::DefaultFuchsiaResourceDialect,
11950                &mut self.target,
11951                decoder,
11952                offset + 0,
11953                _depth
11954            )?;
11955            Ok(())
11956        }
11957    }
11958
11959    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadRequest {
11960        type Borrowed<'a> = &'a mut Self;
11961        fn take_or_borrow<'a>(
11962            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11963        ) -> Self::Borrowed<'a> {
11964            value
11965        }
11966    }
11967
11968    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadRequest {
11969        type Owned = Self;
11970
11971        #[inline(always)]
11972        fn inline_align(_context: fidl::encoding::Context) -> usize {
11973            4
11974        }
11975
11976        #[inline(always)]
11977        fn inline_size(_context: fidl::encoding::Context) -> usize {
11978            4
11979        }
11980    }
11981
11982    unsafe impl
11983        fidl::encoding::Encode<
11984            RunnerCallTwoWayStructPayloadRequest,
11985            fidl::encoding::DefaultFuchsiaResourceDialect,
11986        > for &mut RunnerCallTwoWayStructPayloadRequest
11987    {
11988        #[inline]
11989        unsafe fn encode(
11990            self,
11991            encoder: &mut fidl::encoding::Encoder<
11992                '_,
11993                fidl::encoding::DefaultFuchsiaResourceDialect,
11994            >,
11995            offset: usize,
11996            _depth: fidl::encoding::Depth,
11997        ) -> fidl::Result<()> {
11998            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11999            // Delegate to tuple encoding.
12000            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12001                (
12002                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12003                ),
12004                encoder, offset, _depth
12005            )
12006        }
12007    }
12008    unsafe impl<
12009        T0: fidl::encoding::Encode<
12010                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12011                fidl::encoding::DefaultFuchsiaResourceDialect,
12012            >,
12013    >
12014        fidl::encoding::Encode<
12015            RunnerCallTwoWayStructPayloadRequest,
12016            fidl::encoding::DefaultFuchsiaResourceDialect,
12017        > for (T0,)
12018    {
12019        #[inline]
12020        unsafe fn encode(
12021            self,
12022            encoder: &mut fidl::encoding::Encoder<
12023                '_,
12024                fidl::encoding::DefaultFuchsiaResourceDialect,
12025            >,
12026            offset: usize,
12027            depth: fidl::encoding::Depth,
12028        ) -> fidl::Result<()> {
12029            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
12030            // Zero out padding regions. There's no need to apply masks
12031            // because the unmasked parts will be overwritten by fields.
12032            // Write the fields.
12033            self.0.encode(encoder, offset + 0, depth)?;
12034            Ok(())
12035        }
12036    }
12037
12038    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12039        for RunnerCallTwoWayStructPayloadRequest
12040    {
12041        #[inline(always)]
12042        fn new_empty() -> Self {
12043            Self {
12044                target: fidl::new_empty!(
12045                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12046                    fidl::encoding::DefaultFuchsiaResourceDialect
12047                ),
12048            }
12049        }
12050
12051        #[inline]
12052        unsafe fn decode(
12053            &mut self,
12054            decoder: &mut fidl::encoding::Decoder<
12055                '_,
12056                fidl::encoding::DefaultFuchsiaResourceDialect,
12057            >,
12058            offset: usize,
12059            _depth: fidl::encoding::Depth,
12060        ) -> fidl::Result<()> {
12061            decoder.debug_check_bounds::<Self>(offset);
12062            // Verify that padding bytes are zero.
12063            fidl::decode!(
12064                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12065                fidl::encoding::DefaultFuchsiaResourceDialect,
12066                &mut self.target,
12067                decoder,
12068                offset + 0,
12069                _depth
12070            )?;
12071            Ok(())
12072        }
12073    }
12074
12075    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructRequestRequest {
12076        type Borrowed<'a> = &'a mut Self;
12077        fn take_or_borrow<'a>(
12078            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12079        ) -> Self::Borrowed<'a> {
12080            value
12081        }
12082    }
12083
12084    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructRequestRequest {
12085        type Owned = Self;
12086
12087        #[inline(always)]
12088        fn inline_align(_context: fidl::encoding::Context) -> usize {
12089            4
12090        }
12091
12092        #[inline(always)]
12093        fn inline_size(_context: fidl::encoding::Context) -> usize {
12094            8
12095        }
12096    }
12097
12098    unsafe impl
12099        fidl::encoding::Encode<
12100            RunnerCallTwoWayStructRequestRequest,
12101            fidl::encoding::DefaultFuchsiaResourceDialect,
12102        > for &mut RunnerCallTwoWayStructRequestRequest
12103    {
12104        #[inline]
12105        unsafe fn encode(
12106            self,
12107            encoder: &mut fidl::encoding::Encoder<
12108                '_,
12109                fidl::encoding::DefaultFuchsiaResourceDialect,
12110            >,
12111            offset: usize,
12112            _depth: fidl::encoding::Depth,
12113        ) -> fidl::Result<()> {
12114            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
12115            // Delegate to tuple encoding.
12116            fidl::encoding::Encode::<RunnerCallTwoWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12117                (
12118                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12119                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12120                ),
12121                encoder, offset, _depth
12122            )
12123        }
12124    }
12125    unsafe impl<
12126        T0: fidl::encoding::Encode<
12127                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12128                fidl::encoding::DefaultFuchsiaResourceDialect,
12129            >,
12130        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12131    >
12132        fidl::encoding::Encode<
12133            RunnerCallTwoWayStructRequestRequest,
12134            fidl::encoding::DefaultFuchsiaResourceDialect,
12135        > for (T0, T1)
12136    {
12137        #[inline]
12138        unsafe fn encode(
12139            self,
12140            encoder: &mut fidl::encoding::Encoder<
12141                '_,
12142                fidl::encoding::DefaultFuchsiaResourceDialect,
12143            >,
12144            offset: usize,
12145            depth: fidl::encoding::Depth,
12146        ) -> fidl::Result<()> {
12147            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
12148            // Zero out padding regions. There's no need to apply masks
12149            // because the unmasked parts will be overwritten by fields.
12150            // Write the fields.
12151            self.0.encode(encoder, offset + 0, depth)?;
12152            self.1.encode(encoder, offset + 4, depth)?;
12153            Ok(())
12154        }
12155    }
12156
12157    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12158        for RunnerCallTwoWayStructRequestRequest
12159    {
12160        #[inline(always)]
12161        fn new_empty() -> Self {
12162            Self {
12163                target: fidl::new_empty!(
12164                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12165                    fidl::encoding::DefaultFuchsiaResourceDialect
12166                ),
12167                request: fidl::new_empty!(
12168                    NonEmptyPayload,
12169                    fidl::encoding::DefaultFuchsiaResourceDialect
12170                ),
12171            }
12172        }
12173
12174        #[inline]
12175        unsafe fn decode(
12176            &mut self,
12177            decoder: &mut fidl::encoding::Decoder<
12178                '_,
12179                fidl::encoding::DefaultFuchsiaResourceDialect,
12180            >,
12181            offset: usize,
12182            _depth: fidl::encoding::Depth,
12183        ) -> fidl::Result<()> {
12184            decoder.debug_check_bounds::<Self>(offset);
12185            // Verify that padding bytes are zero.
12186            fidl::decode!(
12187                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12188                fidl::encoding::DefaultFuchsiaResourceDialect,
12189                &mut self.target,
12190                decoder,
12191                offset + 0,
12192                _depth
12193            )?;
12194            fidl::decode!(
12195                NonEmptyPayload,
12196                fidl::encoding::DefaultFuchsiaResourceDialect,
12197                &mut self.request,
12198                decoder,
12199                offset + 4,
12200                _depth
12201            )?;
12202            Ok(())
12203        }
12204    }
12205
12206    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTablePayloadRequest {
12207        type Borrowed<'a> = &'a mut Self;
12208        fn take_or_borrow<'a>(
12209            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12210        ) -> Self::Borrowed<'a> {
12211            value
12212        }
12213    }
12214
12215    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTablePayloadRequest {
12216        type Owned = Self;
12217
12218        #[inline(always)]
12219        fn inline_align(_context: fidl::encoding::Context) -> usize {
12220            4
12221        }
12222
12223        #[inline(always)]
12224        fn inline_size(_context: fidl::encoding::Context) -> usize {
12225            4
12226        }
12227    }
12228
12229    unsafe impl
12230        fidl::encoding::Encode<
12231            RunnerCallTwoWayTablePayloadRequest,
12232            fidl::encoding::DefaultFuchsiaResourceDialect,
12233        > for &mut RunnerCallTwoWayTablePayloadRequest
12234    {
12235        #[inline]
12236        unsafe fn encode(
12237            self,
12238            encoder: &mut fidl::encoding::Encoder<
12239                '_,
12240                fidl::encoding::DefaultFuchsiaResourceDialect,
12241            >,
12242            offset: usize,
12243            _depth: fidl::encoding::Depth,
12244        ) -> fidl::Result<()> {
12245            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12246            // Delegate to tuple encoding.
12247            fidl::encoding::Encode::<RunnerCallTwoWayTablePayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12248                (
12249                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12250                ),
12251                encoder, offset, _depth
12252            )
12253        }
12254    }
12255    unsafe impl<
12256        T0: fidl::encoding::Encode<
12257                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12258                fidl::encoding::DefaultFuchsiaResourceDialect,
12259            >,
12260    >
12261        fidl::encoding::Encode<
12262            RunnerCallTwoWayTablePayloadRequest,
12263            fidl::encoding::DefaultFuchsiaResourceDialect,
12264        > for (T0,)
12265    {
12266        #[inline]
12267        unsafe fn encode(
12268            self,
12269            encoder: &mut fidl::encoding::Encoder<
12270                '_,
12271                fidl::encoding::DefaultFuchsiaResourceDialect,
12272            >,
12273            offset: usize,
12274            depth: fidl::encoding::Depth,
12275        ) -> fidl::Result<()> {
12276            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12277            // Zero out padding regions. There's no need to apply masks
12278            // because the unmasked parts will be overwritten by fields.
12279            // Write the fields.
12280            self.0.encode(encoder, offset + 0, depth)?;
12281            Ok(())
12282        }
12283    }
12284
12285    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12286        for RunnerCallTwoWayTablePayloadRequest
12287    {
12288        #[inline(always)]
12289        fn new_empty() -> Self {
12290            Self {
12291                target: fidl::new_empty!(
12292                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12293                    fidl::encoding::DefaultFuchsiaResourceDialect
12294                ),
12295            }
12296        }
12297
12298        #[inline]
12299        unsafe fn decode(
12300            &mut self,
12301            decoder: &mut fidl::encoding::Decoder<
12302                '_,
12303                fidl::encoding::DefaultFuchsiaResourceDialect,
12304            >,
12305            offset: usize,
12306            _depth: fidl::encoding::Depth,
12307        ) -> fidl::Result<()> {
12308            decoder.debug_check_bounds::<Self>(offset);
12309            // Verify that padding bytes are zero.
12310            fidl::decode!(
12311                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12312                fidl::encoding::DefaultFuchsiaResourceDialect,
12313                &mut self.target,
12314                decoder,
12315                offset + 0,
12316                _depth
12317            )?;
12318            Ok(())
12319        }
12320    }
12321
12322    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTableRequestRequest {
12323        type Borrowed<'a> = &'a mut Self;
12324        fn take_or_borrow<'a>(
12325            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12326        ) -> Self::Borrowed<'a> {
12327            value
12328        }
12329    }
12330
12331    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTableRequestRequest {
12332        type Owned = Self;
12333
12334        #[inline(always)]
12335        fn inline_align(_context: fidl::encoding::Context) -> usize {
12336            8
12337        }
12338
12339        #[inline(always)]
12340        fn inline_size(_context: fidl::encoding::Context) -> usize {
12341            24
12342        }
12343    }
12344
12345    unsafe impl
12346        fidl::encoding::Encode<
12347            RunnerCallTwoWayTableRequestRequest,
12348            fidl::encoding::DefaultFuchsiaResourceDialect,
12349        > for &mut RunnerCallTwoWayTableRequestRequest
12350    {
12351        #[inline]
12352        unsafe fn encode(
12353            self,
12354            encoder: &mut fidl::encoding::Encoder<
12355                '_,
12356                fidl::encoding::DefaultFuchsiaResourceDialect,
12357            >,
12358            offset: usize,
12359            _depth: fidl::encoding::Depth,
12360        ) -> fidl::Result<()> {
12361            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12362            // Delegate to tuple encoding.
12363            fidl::encoding::Encode::<RunnerCallTwoWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12364                (
12365                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12366                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12367                ),
12368                encoder, offset, _depth
12369            )
12370        }
12371    }
12372    unsafe impl<
12373        T0: fidl::encoding::Encode<
12374                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12375                fidl::encoding::DefaultFuchsiaResourceDialect,
12376            >,
12377        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12378    >
12379        fidl::encoding::Encode<
12380            RunnerCallTwoWayTableRequestRequest,
12381            fidl::encoding::DefaultFuchsiaResourceDialect,
12382        > for (T0, T1)
12383    {
12384        #[inline]
12385        unsafe fn encode(
12386            self,
12387            encoder: &mut fidl::encoding::Encoder<
12388                '_,
12389                fidl::encoding::DefaultFuchsiaResourceDialect,
12390            >,
12391            offset: usize,
12392            depth: fidl::encoding::Depth,
12393        ) -> fidl::Result<()> {
12394            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12395            // Zero out padding regions. There's no need to apply masks
12396            // because the unmasked parts will be overwritten by fields.
12397            unsafe {
12398                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12399                (ptr as *mut u64).write_unaligned(0);
12400            }
12401            // Write the fields.
12402            self.0.encode(encoder, offset + 0, depth)?;
12403            self.1.encode(encoder, offset + 8, depth)?;
12404            Ok(())
12405        }
12406    }
12407
12408    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12409        for RunnerCallTwoWayTableRequestRequest
12410    {
12411        #[inline(always)]
12412        fn new_empty() -> Self {
12413            Self {
12414                target: fidl::new_empty!(
12415                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12416                    fidl::encoding::DefaultFuchsiaResourceDialect
12417                ),
12418                request: fidl::new_empty!(
12419                    TablePayload,
12420                    fidl::encoding::DefaultFuchsiaResourceDialect
12421                ),
12422            }
12423        }
12424
12425        #[inline]
12426        unsafe fn decode(
12427            &mut self,
12428            decoder: &mut fidl::encoding::Decoder<
12429                '_,
12430                fidl::encoding::DefaultFuchsiaResourceDialect,
12431            >,
12432            offset: usize,
12433            _depth: fidl::encoding::Depth,
12434        ) -> fidl::Result<()> {
12435            decoder.debug_check_bounds::<Self>(offset);
12436            // Verify that padding bytes are zero.
12437            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12438            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12439            let mask = 0xffffffff00000000u64;
12440            let maskedval = padval & mask;
12441            if maskedval != 0 {
12442                return Err(fidl::Error::NonZeroPadding {
12443                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12444                });
12445            }
12446            fidl::decode!(
12447                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12448                fidl::encoding::DefaultFuchsiaResourceDialect,
12449                &mut self.target,
12450                decoder,
12451                offset + 0,
12452                _depth
12453            )?;
12454            fidl::decode!(
12455                TablePayload,
12456                fidl::encoding::DefaultFuchsiaResourceDialect,
12457                &mut self.request,
12458                decoder,
12459                offset + 8,
12460                _depth
12461            )?;
12462            Ok(())
12463        }
12464    }
12465
12466    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12467        type Borrowed<'a> = &'a mut Self;
12468        fn take_or_borrow<'a>(
12469            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12470        ) -> Self::Borrowed<'a> {
12471            value
12472        }
12473    }
12474
12475    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12476        type Owned = Self;
12477
12478        #[inline(always)]
12479        fn inline_align(_context: fidl::encoding::Context) -> usize {
12480            4
12481        }
12482
12483        #[inline(always)]
12484        fn inline_size(_context: fidl::encoding::Context) -> usize {
12485            4
12486        }
12487    }
12488
12489    unsafe impl
12490        fidl::encoding::Encode<
12491            RunnerCallTwoWayUnionPayloadRequest,
12492            fidl::encoding::DefaultFuchsiaResourceDialect,
12493        > for &mut RunnerCallTwoWayUnionPayloadRequest
12494    {
12495        #[inline]
12496        unsafe fn encode(
12497            self,
12498            encoder: &mut fidl::encoding::Encoder<
12499                '_,
12500                fidl::encoding::DefaultFuchsiaResourceDialect,
12501            >,
12502            offset: usize,
12503            _depth: fidl::encoding::Depth,
12504        ) -> fidl::Result<()> {
12505            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12506            // Delegate to tuple encoding.
12507            fidl::encoding::Encode::<RunnerCallTwoWayUnionPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12508                (
12509                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12510                ),
12511                encoder, offset, _depth
12512            )
12513        }
12514    }
12515    unsafe impl<
12516        T0: fidl::encoding::Encode<
12517                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12518                fidl::encoding::DefaultFuchsiaResourceDialect,
12519            >,
12520    >
12521        fidl::encoding::Encode<
12522            RunnerCallTwoWayUnionPayloadRequest,
12523            fidl::encoding::DefaultFuchsiaResourceDialect,
12524        > for (T0,)
12525    {
12526        #[inline]
12527        unsafe fn encode(
12528            self,
12529            encoder: &mut fidl::encoding::Encoder<
12530                '_,
12531                fidl::encoding::DefaultFuchsiaResourceDialect,
12532            >,
12533            offset: usize,
12534            depth: fidl::encoding::Depth,
12535        ) -> fidl::Result<()> {
12536            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12537            // Zero out padding regions. There's no need to apply masks
12538            // because the unmasked parts will be overwritten by fields.
12539            // Write the fields.
12540            self.0.encode(encoder, offset + 0, depth)?;
12541            Ok(())
12542        }
12543    }
12544
12545    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12546        for RunnerCallTwoWayUnionPayloadRequest
12547    {
12548        #[inline(always)]
12549        fn new_empty() -> Self {
12550            Self {
12551                target: fidl::new_empty!(
12552                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12553                    fidl::encoding::DefaultFuchsiaResourceDialect
12554                ),
12555            }
12556        }
12557
12558        #[inline]
12559        unsafe fn decode(
12560            &mut self,
12561            decoder: &mut fidl::encoding::Decoder<
12562                '_,
12563                fidl::encoding::DefaultFuchsiaResourceDialect,
12564            >,
12565            offset: usize,
12566            _depth: fidl::encoding::Depth,
12567        ) -> fidl::Result<()> {
12568            decoder.debug_check_bounds::<Self>(offset);
12569            // Verify that padding bytes are zero.
12570            fidl::decode!(
12571                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12572                fidl::encoding::DefaultFuchsiaResourceDialect,
12573                &mut self.target,
12574                decoder,
12575                offset + 0,
12576                _depth
12577            )?;
12578            Ok(())
12579        }
12580    }
12581
12582    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionRequestRequest {
12583        type Borrowed<'a> = &'a mut Self;
12584        fn take_or_borrow<'a>(
12585            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12586        ) -> Self::Borrowed<'a> {
12587            value
12588        }
12589    }
12590
12591    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionRequestRequest {
12592        type Owned = Self;
12593
12594        #[inline(always)]
12595        fn inline_align(_context: fidl::encoding::Context) -> usize {
12596            8
12597        }
12598
12599        #[inline(always)]
12600        fn inline_size(_context: fidl::encoding::Context) -> usize {
12601            24
12602        }
12603    }
12604
12605    unsafe impl
12606        fidl::encoding::Encode<
12607            RunnerCallTwoWayUnionRequestRequest,
12608            fidl::encoding::DefaultFuchsiaResourceDialect,
12609        > for &mut RunnerCallTwoWayUnionRequestRequest
12610    {
12611        #[inline]
12612        unsafe fn encode(
12613            self,
12614            encoder: &mut fidl::encoding::Encoder<
12615                '_,
12616                fidl::encoding::DefaultFuchsiaResourceDialect,
12617            >,
12618            offset: usize,
12619            _depth: fidl::encoding::Depth,
12620        ) -> fidl::Result<()> {
12621            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12622            // Delegate to tuple encoding.
12623            fidl::encoding::Encode::<RunnerCallTwoWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12624                (
12625                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12626                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12627                ),
12628                encoder, offset, _depth
12629            )
12630        }
12631    }
12632    unsafe impl<
12633        T0: fidl::encoding::Encode<
12634                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12635                fidl::encoding::DefaultFuchsiaResourceDialect,
12636            >,
12637        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12638    >
12639        fidl::encoding::Encode<
12640            RunnerCallTwoWayUnionRequestRequest,
12641            fidl::encoding::DefaultFuchsiaResourceDialect,
12642        > for (T0, T1)
12643    {
12644        #[inline]
12645        unsafe fn encode(
12646            self,
12647            encoder: &mut fidl::encoding::Encoder<
12648                '_,
12649                fidl::encoding::DefaultFuchsiaResourceDialect,
12650            >,
12651            offset: usize,
12652            depth: fidl::encoding::Depth,
12653        ) -> fidl::Result<()> {
12654            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12655            // Zero out padding regions. There's no need to apply masks
12656            // because the unmasked parts will be overwritten by fields.
12657            unsafe {
12658                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12659                (ptr as *mut u64).write_unaligned(0);
12660            }
12661            // Write the fields.
12662            self.0.encode(encoder, offset + 0, depth)?;
12663            self.1.encode(encoder, offset + 8, depth)?;
12664            Ok(())
12665        }
12666    }
12667
12668    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12669        for RunnerCallTwoWayUnionRequestRequest
12670    {
12671        #[inline(always)]
12672        fn new_empty() -> Self {
12673            Self {
12674                target: fidl::new_empty!(
12675                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12676                    fidl::encoding::DefaultFuchsiaResourceDialect
12677                ),
12678                request: fidl::new_empty!(
12679                    UnionPayload,
12680                    fidl::encoding::DefaultFuchsiaResourceDialect
12681                ),
12682            }
12683        }
12684
12685        #[inline]
12686        unsafe fn decode(
12687            &mut self,
12688            decoder: &mut fidl::encoding::Decoder<
12689                '_,
12690                fidl::encoding::DefaultFuchsiaResourceDialect,
12691            >,
12692            offset: usize,
12693            _depth: fidl::encoding::Depth,
12694        ) -> fidl::Result<()> {
12695            decoder.debug_check_bounds::<Self>(offset);
12696            // Verify that padding bytes are zero.
12697            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12698            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12699            let mask = 0xffffffff00000000u64;
12700            let maskedval = padval & mask;
12701            if maskedval != 0 {
12702                return Err(fidl::Error::NonZeroPadding {
12703                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12704                });
12705            }
12706            fidl::decode!(
12707                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12708                fidl::encoding::DefaultFuchsiaResourceDialect,
12709                &mut self.target,
12710                decoder,
12711                offset + 0,
12712                _depth
12713            )?;
12714            fidl::decode!(
12715                UnionPayload,
12716                fidl::encoding::DefaultFuchsiaResourceDialect,
12717                &mut self.request,
12718                decoder,
12719                offset + 8,
12720                _depth
12721            )?;
12722            Ok(())
12723        }
12724    }
12725
12726    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveAjarEventsRequest {
12727        type Borrowed<'a> = &'a mut Self;
12728        fn take_or_borrow<'a>(
12729            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12730        ) -> Self::Borrowed<'a> {
12731            value
12732        }
12733    }
12734
12735    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveAjarEventsRequest {
12736        type Owned = Self;
12737
12738        #[inline(always)]
12739        fn inline_align(_context: fidl::encoding::Context) -> usize {
12740            4
12741        }
12742
12743        #[inline(always)]
12744        fn inline_size(_context: fidl::encoding::Context) -> usize {
12745            8
12746        }
12747    }
12748
12749    unsafe impl
12750        fidl::encoding::Encode<
12751            RunnerReceiveAjarEventsRequest,
12752            fidl::encoding::DefaultFuchsiaResourceDialect,
12753        > for &mut RunnerReceiveAjarEventsRequest
12754    {
12755        #[inline]
12756        unsafe fn encode(
12757            self,
12758            encoder: &mut fidl::encoding::Encoder<
12759                '_,
12760                fidl::encoding::DefaultFuchsiaResourceDialect,
12761            >,
12762            offset: usize,
12763            _depth: fidl::encoding::Depth,
12764        ) -> fidl::Result<()> {
12765            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12766            // Delegate to tuple encoding.
12767            fidl::encoding::Encode::<RunnerReceiveAjarEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12768                (
12769                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12770                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12771                ),
12772                encoder, offset, _depth
12773            )
12774        }
12775    }
12776    unsafe impl<
12777        T0: fidl::encoding::Encode<
12778                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12779                fidl::encoding::DefaultFuchsiaResourceDialect,
12780            >,
12781        T1: fidl::encoding::Encode<
12782                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12783                fidl::encoding::DefaultFuchsiaResourceDialect,
12784            >,
12785    >
12786        fidl::encoding::Encode<
12787            RunnerReceiveAjarEventsRequest,
12788            fidl::encoding::DefaultFuchsiaResourceDialect,
12789        > for (T0, T1)
12790    {
12791        #[inline]
12792        unsafe fn encode(
12793            self,
12794            encoder: &mut fidl::encoding::Encoder<
12795                '_,
12796                fidl::encoding::DefaultFuchsiaResourceDialect,
12797            >,
12798            offset: usize,
12799            depth: fidl::encoding::Depth,
12800        ) -> fidl::Result<()> {
12801            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12802            // Zero out padding regions. There's no need to apply masks
12803            // because the unmasked parts will be overwritten by fields.
12804            // Write the fields.
12805            self.0.encode(encoder, offset + 0, depth)?;
12806            self.1.encode(encoder, offset + 4, depth)?;
12807            Ok(())
12808        }
12809    }
12810
12811    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12812        for RunnerReceiveAjarEventsRequest
12813    {
12814        #[inline(always)]
12815        fn new_empty() -> Self {
12816            Self {
12817                target: fidl::new_empty!(
12818                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12819                    fidl::encoding::DefaultFuchsiaResourceDialect
12820                ),
12821                reporter: fidl::new_empty!(
12822                    fidl::encoding::Endpoint<
12823                        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
12824                    >,
12825                    fidl::encoding::DefaultFuchsiaResourceDialect
12826                ),
12827            }
12828        }
12829
12830        #[inline]
12831        unsafe fn decode(
12832            &mut self,
12833            decoder: &mut fidl::encoding::Decoder<
12834                '_,
12835                fidl::encoding::DefaultFuchsiaResourceDialect,
12836            >,
12837            offset: usize,
12838            _depth: fidl::encoding::Depth,
12839        ) -> fidl::Result<()> {
12840            decoder.debug_check_bounds::<Self>(offset);
12841            // Verify that padding bytes are zero.
12842            fidl::decode!(
12843                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12844                fidl::encoding::DefaultFuchsiaResourceDialect,
12845                &mut self.target,
12846                decoder,
12847                offset + 0,
12848                _depth
12849            )?;
12850            fidl::decode!(
12851                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12852                fidl::encoding::DefaultFuchsiaResourceDialect,
12853                &mut self.reporter,
12854                decoder,
12855                offset + 4,
12856                _depth
12857            )?;
12858            Ok(())
12859        }
12860    }
12861
12862    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveClosedEventsRequest {
12863        type Borrowed<'a> = &'a mut Self;
12864        fn take_or_borrow<'a>(
12865            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12866        ) -> Self::Borrowed<'a> {
12867            value
12868        }
12869    }
12870
12871    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveClosedEventsRequest {
12872        type Owned = Self;
12873
12874        #[inline(always)]
12875        fn inline_align(_context: fidl::encoding::Context) -> usize {
12876            4
12877        }
12878
12879        #[inline(always)]
12880        fn inline_size(_context: fidl::encoding::Context) -> usize {
12881            8
12882        }
12883    }
12884
12885    unsafe impl
12886        fidl::encoding::Encode<
12887            RunnerReceiveClosedEventsRequest,
12888            fidl::encoding::DefaultFuchsiaResourceDialect,
12889        > for &mut RunnerReceiveClosedEventsRequest
12890    {
12891        #[inline]
12892        unsafe fn encode(
12893            self,
12894            encoder: &mut fidl::encoding::Encoder<
12895                '_,
12896                fidl::encoding::DefaultFuchsiaResourceDialect,
12897            >,
12898            offset: usize,
12899            _depth: fidl::encoding::Depth,
12900        ) -> fidl::Result<()> {
12901            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12902            // Delegate to tuple encoding.
12903            fidl::encoding::Encode::<RunnerReceiveClosedEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12904                (
12905                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12906                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12907                ),
12908                encoder, offset, _depth
12909            )
12910        }
12911    }
12912    unsafe impl<
12913        T0: fidl::encoding::Encode<
12914                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12915                fidl::encoding::DefaultFuchsiaResourceDialect,
12916            >,
12917        T1: fidl::encoding::Encode<
12918                fidl::encoding::Endpoint<
12919                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12920                >,
12921                fidl::encoding::DefaultFuchsiaResourceDialect,
12922            >,
12923    >
12924        fidl::encoding::Encode<
12925            RunnerReceiveClosedEventsRequest,
12926            fidl::encoding::DefaultFuchsiaResourceDialect,
12927        > for (T0, T1)
12928    {
12929        #[inline]
12930        unsafe fn encode(
12931            self,
12932            encoder: &mut fidl::encoding::Encoder<
12933                '_,
12934                fidl::encoding::DefaultFuchsiaResourceDialect,
12935            >,
12936            offset: usize,
12937            depth: fidl::encoding::Depth,
12938        ) -> fidl::Result<()> {
12939            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12940            // Zero out padding regions. There's no need to apply masks
12941            // because the unmasked parts will be overwritten by fields.
12942            // Write the fields.
12943            self.0.encode(encoder, offset + 0, depth)?;
12944            self.1.encode(encoder, offset + 4, depth)?;
12945            Ok(())
12946        }
12947    }
12948
12949    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12950        for RunnerReceiveClosedEventsRequest
12951    {
12952        #[inline(always)]
12953        fn new_empty() -> Self {
12954            Self {
12955                target: fidl::new_empty!(
12956                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12957                    fidl::encoding::DefaultFuchsiaResourceDialect
12958                ),
12959                reporter: fidl::new_empty!(
12960                    fidl::encoding::Endpoint<
12961                        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12962                    >,
12963                    fidl::encoding::DefaultFuchsiaResourceDialect
12964                ),
12965            }
12966        }
12967
12968        #[inline]
12969        unsafe fn decode(
12970            &mut self,
12971            decoder: &mut fidl::encoding::Decoder<
12972                '_,
12973                fidl::encoding::DefaultFuchsiaResourceDialect,
12974            >,
12975            offset: usize,
12976            _depth: fidl::encoding::Depth,
12977        ) -> fidl::Result<()> {
12978            decoder.debug_check_bounds::<Self>(offset);
12979            // Verify that padding bytes are zero.
12980            fidl::decode!(
12981                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12982                fidl::encoding::DefaultFuchsiaResourceDialect,
12983                &mut self.target,
12984                decoder,
12985                offset + 0,
12986                _depth
12987            )?;
12988            fidl::decode!(
12989                fidl::encoding::Endpoint<
12990                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12991                >,
12992                fidl::encoding::DefaultFuchsiaResourceDialect,
12993                &mut self.reporter,
12994                decoder,
12995                offset + 4,
12996                _depth
12997            )?;
12998            Ok(())
12999        }
13000    }
13001
13002    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveOpenEventsRequest {
13003        type Borrowed<'a> = &'a mut Self;
13004        fn take_or_borrow<'a>(
13005            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
13006        ) -> Self::Borrowed<'a> {
13007            value
13008        }
13009    }
13010
13011    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveOpenEventsRequest {
13012        type Owned = Self;
13013
13014        #[inline(always)]
13015        fn inline_align(_context: fidl::encoding::Context) -> usize {
13016            4
13017        }
13018
13019        #[inline(always)]
13020        fn inline_size(_context: fidl::encoding::Context) -> usize {
13021            8
13022        }
13023    }
13024
13025    unsafe impl
13026        fidl::encoding::Encode<
13027            RunnerReceiveOpenEventsRequest,
13028            fidl::encoding::DefaultFuchsiaResourceDialect,
13029        > for &mut RunnerReceiveOpenEventsRequest
13030    {
13031        #[inline]
13032        unsafe fn encode(
13033            self,
13034            encoder: &mut fidl::encoding::Encoder<
13035                '_,
13036                fidl::encoding::DefaultFuchsiaResourceDialect,
13037            >,
13038            offset: usize,
13039            _depth: fidl::encoding::Depth,
13040        ) -> fidl::Result<()> {
13041            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
13042            // Delegate to tuple encoding.
13043            fidl::encoding::Encode::<RunnerReceiveOpenEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
13044                (
13045                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
13046                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
13047                ),
13048                encoder, offset, _depth
13049            )
13050        }
13051    }
13052    unsafe impl<
13053        T0: fidl::encoding::Encode<
13054                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
13055                fidl::encoding::DefaultFuchsiaResourceDialect,
13056            >,
13057        T1: fidl::encoding::Encode<
13058                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
13059                fidl::encoding::DefaultFuchsiaResourceDialect,
13060            >,
13061    >
13062        fidl::encoding::Encode<
13063            RunnerReceiveOpenEventsRequest,
13064            fidl::encoding::DefaultFuchsiaResourceDialect,
13065        > for (T0, T1)
13066    {
13067        #[inline]
13068        unsafe fn encode(
13069            self,
13070            encoder: &mut fidl::encoding::Encoder<
13071                '_,
13072                fidl::encoding::DefaultFuchsiaResourceDialect,
13073            >,
13074            offset: usize,
13075            depth: fidl::encoding::Depth,
13076        ) -> fidl::Result<()> {
13077            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
13078            // Zero out padding regions. There's no need to apply masks
13079            // because the unmasked parts will be overwritten by fields.
13080            // Write the fields.
13081            self.0.encode(encoder, offset + 0, depth)?;
13082            self.1.encode(encoder, offset + 4, depth)?;
13083            Ok(())
13084        }
13085    }
13086
13087    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
13088        for RunnerReceiveOpenEventsRequest
13089    {
13090        #[inline(always)]
13091        fn new_empty() -> Self {
13092            Self {
13093                target: fidl::new_empty!(
13094                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
13095                    fidl::encoding::DefaultFuchsiaResourceDialect
13096                ),
13097                reporter: fidl::new_empty!(
13098                    fidl::encoding::Endpoint<
13099                        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
13100                    >,
13101                    fidl::encoding::DefaultFuchsiaResourceDialect
13102                ),
13103            }
13104        }
13105
13106        #[inline]
13107        unsafe fn decode(
13108            &mut self,
13109            decoder: &mut fidl::encoding::Decoder<
13110                '_,
13111                fidl::encoding::DefaultFuchsiaResourceDialect,
13112            >,
13113            offset: usize,
13114            _depth: fidl::encoding::Depth,
13115        ) -> fidl::Result<()> {
13116            decoder.debug_check_bounds::<Self>(offset);
13117            // Verify that padding bytes are zero.
13118            fidl::decode!(
13119                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
13120                fidl::encoding::DefaultFuchsiaResourceDialect,
13121                &mut self.target,
13122                decoder,
13123                offset + 0,
13124                _depth
13125            )?;
13126            fidl::decode!(
13127                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
13128                fidl::encoding::DefaultFuchsiaResourceDialect,
13129                &mut self.reporter,
13130                decoder,
13131                offset + 4,
13132                _depth
13133            )?;
13134            Ok(())
13135        }
13136    }
13137}