fidl_fidl_clientsuite/
fidl_fidl_clientsuite.rs

1// WARNING: This file is machine generated by fidlgen.
2
3#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fidl_clientsuite__common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct RunnerCallFlexibleOneWayRequest {
16    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
20    for RunnerCallFlexibleOneWayRequest
21{
22}
23
24#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
25pub struct RunnerCallFlexibleTwoWayErrRequest {
26    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
27}
28
29impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
30    for RunnerCallFlexibleTwoWayErrRequest
31{
32}
33
34#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
35pub struct RunnerCallFlexibleTwoWayFieldsErrRequest {
36    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
37}
38
39impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
40    for RunnerCallFlexibleTwoWayFieldsErrRequest
41{
42}
43
44#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
45pub struct RunnerCallFlexibleTwoWayFieldsRequest {
46    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
47}
48
49impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
50    for RunnerCallFlexibleTwoWayFieldsRequest
51{
52}
53
54#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
55pub struct RunnerCallFlexibleTwoWayRequest {
56    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
57}
58
59impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
60    for RunnerCallFlexibleTwoWayRequest
61{
62}
63
64#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
65pub struct RunnerCallOneWayNoRequestRequest {
66    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
67}
68
69impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
70    for RunnerCallOneWayNoRequestRequest
71{
72}
73
74#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
75pub struct RunnerCallOneWayStructRequestRequest {
76    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
77    pub request: NonEmptyPayload,
78}
79
80impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
81    for RunnerCallOneWayStructRequestRequest
82{
83}
84
85#[derive(Debug, PartialEq)]
86pub struct RunnerCallOneWayTableRequestRequest {
87    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
88    pub request: TablePayload,
89}
90
91impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
92    for RunnerCallOneWayTableRequestRequest
93{
94}
95
96#[derive(Debug, PartialEq)]
97pub struct RunnerCallOneWayUnionRequestRequest {
98    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
99    pub request: UnionPayload,
100}
101
102impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
103    for RunnerCallOneWayUnionRequestRequest
104{
105}
106
107#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
108pub struct RunnerCallStrictOneWayRequest {
109    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
110}
111
112impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
113    for RunnerCallStrictOneWayRequest
114{
115}
116
117#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
118pub struct RunnerCallStrictTwoWayErrRequest {
119    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
120}
121
122impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
123    for RunnerCallStrictTwoWayErrRequest
124{
125}
126
127#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
128pub struct RunnerCallStrictTwoWayFieldsErrRequest {
129    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
130}
131
132impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
133    for RunnerCallStrictTwoWayFieldsErrRequest
134{
135}
136
137#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
138pub struct RunnerCallStrictTwoWayFieldsRequest {
139    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
140}
141
142impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
143    for RunnerCallStrictTwoWayFieldsRequest
144{
145}
146
147#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
148pub struct RunnerCallStrictTwoWayRequest {
149    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
150}
151
152impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
153    for RunnerCallStrictTwoWayRequest
154{
155}
156
157#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
158pub struct RunnerCallTwoWayNoPayloadRequest {
159    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
160}
161
162impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
163    for RunnerCallTwoWayNoPayloadRequest
164{
165}
166
167#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
168pub struct RunnerCallTwoWayStructPayloadErrRequest {
169    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
170}
171
172impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
173    for RunnerCallTwoWayStructPayloadErrRequest
174{
175}
176
177#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
178pub struct RunnerCallTwoWayStructPayloadRequest {
179    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
180}
181
182impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
183    for RunnerCallTwoWayStructPayloadRequest
184{
185}
186
187#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
188pub struct RunnerCallTwoWayStructRequestRequest {
189    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
190    pub request: NonEmptyPayload,
191}
192
193impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
194    for RunnerCallTwoWayStructRequestRequest
195{
196}
197
198#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
199pub struct RunnerCallTwoWayTablePayloadRequest {
200    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
201}
202
203impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
204    for RunnerCallTwoWayTablePayloadRequest
205{
206}
207
208#[derive(Debug, PartialEq)]
209pub struct RunnerCallTwoWayTableRequestRequest {
210    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
211    pub request: TablePayload,
212}
213
214impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
215    for RunnerCallTwoWayTableRequestRequest
216{
217}
218
219#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
220pub struct RunnerCallTwoWayUnionPayloadRequest {
221    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
222}
223
224impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
225    for RunnerCallTwoWayUnionPayloadRequest
226{
227}
228
229#[derive(Debug, PartialEq)]
230pub struct RunnerCallTwoWayUnionRequestRequest {
231    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
232    pub request: UnionPayload,
233}
234
235impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
236    for RunnerCallTwoWayUnionRequestRequest
237{
238}
239
240#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
241pub struct RunnerReceiveAjarEventsRequest {
242    pub target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
243    pub reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
244}
245
246impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
247    for RunnerReceiveAjarEventsRequest
248{
249}
250
251#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
252pub struct RunnerReceiveClosedEventsRequest {
253    pub target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
254    pub reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
255}
256
257impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
258    for RunnerReceiveClosedEventsRequest
259{
260}
261
262#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
263pub struct RunnerReceiveOpenEventsRequest {
264    pub target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
265    pub reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
266}
267
268impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
269    for RunnerReceiveOpenEventsRequest
270{
271}
272
273#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
274pub struct AjarTargetMarker;
275
276impl fidl::endpoints::ProtocolMarker for AjarTargetMarker {
277    type Proxy = AjarTargetProxy;
278    type RequestStream = AjarTargetRequestStream;
279    #[cfg(target_os = "fuchsia")]
280    type SynchronousProxy = AjarTargetSynchronousProxy;
281
282    const DEBUG_NAME: &'static str = "(anonymous) AjarTarget";
283}
284
285pub trait AjarTargetProxyInterface: Send + Sync {}
286#[derive(Debug)]
287#[cfg(target_os = "fuchsia")]
288pub struct AjarTargetSynchronousProxy {
289    client: fidl::client::sync::Client,
290}
291
292#[cfg(target_os = "fuchsia")]
293impl fidl::endpoints::SynchronousProxy for AjarTargetSynchronousProxy {
294    type Proxy = AjarTargetProxy;
295    type Protocol = AjarTargetMarker;
296
297    fn from_channel(inner: fidl::Channel) -> Self {
298        Self::new(inner)
299    }
300
301    fn into_channel(self) -> fidl::Channel {
302        self.client.into_channel()
303    }
304
305    fn as_channel(&self) -> &fidl::Channel {
306        self.client.as_channel()
307    }
308}
309
310#[cfg(target_os = "fuchsia")]
311impl AjarTargetSynchronousProxy {
312    pub fn new(channel: fidl::Channel) -> Self {
313        let protocol_name = <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
314        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
315    }
316
317    pub fn into_channel(self) -> fidl::Channel {
318        self.client.into_channel()
319    }
320
321    /// Waits until an event arrives and returns it. It is safe for other
322    /// threads to make concurrent requests while waiting for an event.
323    pub fn wait_for_event(
324        &self,
325        deadline: zx::MonotonicInstant,
326    ) -> Result<AjarTargetEvent, fidl::Error> {
327        AjarTargetEvent::decode(self.client.wait_for_event(deadline)?)
328    }
329}
330
331#[cfg(target_os = "fuchsia")]
332impl From<AjarTargetSynchronousProxy> for zx::Handle {
333    fn from(value: AjarTargetSynchronousProxy) -> Self {
334        value.into_channel().into()
335    }
336}
337
338#[cfg(target_os = "fuchsia")]
339impl From<fidl::Channel> for AjarTargetSynchronousProxy {
340    fn from(value: fidl::Channel) -> Self {
341        Self::new(value)
342    }
343}
344
345#[cfg(target_os = "fuchsia")]
346impl fidl::endpoints::FromClient for AjarTargetSynchronousProxy {
347    type Protocol = AjarTargetMarker;
348
349    fn from_client(value: fidl::endpoints::ClientEnd<AjarTargetMarker>) -> Self {
350        Self::new(value.into_channel())
351    }
352}
353
354#[derive(Debug, Clone)]
355pub struct AjarTargetProxy {
356    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
357}
358
359impl fidl::endpoints::Proxy for AjarTargetProxy {
360    type Protocol = AjarTargetMarker;
361
362    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
363        Self::new(inner)
364    }
365
366    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
367        self.client.into_channel().map_err(|client| Self { client })
368    }
369
370    fn as_channel(&self) -> &::fidl::AsyncChannel {
371        self.client.as_channel()
372    }
373}
374
375impl AjarTargetProxy {
376    /// Create a new Proxy for fidl.clientsuite/AjarTarget.
377    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
378        let protocol_name = <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
379        Self { client: fidl::client::Client::new(channel, protocol_name) }
380    }
381
382    /// Get a Stream of events from the remote end of the protocol.
383    ///
384    /// # Panics
385    ///
386    /// Panics if the event stream was already taken.
387    pub fn take_event_stream(&self) -> AjarTargetEventStream {
388        AjarTargetEventStream { event_receiver: self.client.take_event_receiver() }
389    }
390}
391
392impl AjarTargetProxyInterface for AjarTargetProxy {}
393
394pub struct AjarTargetEventStream {
395    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
396}
397
398impl std::marker::Unpin for AjarTargetEventStream {}
399
400impl futures::stream::FusedStream for AjarTargetEventStream {
401    fn is_terminated(&self) -> bool {
402        self.event_receiver.is_terminated()
403    }
404}
405
406impl futures::Stream for AjarTargetEventStream {
407    type Item = Result<AjarTargetEvent, fidl::Error>;
408
409    fn poll_next(
410        mut self: std::pin::Pin<&mut Self>,
411        cx: &mut std::task::Context<'_>,
412    ) -> std::task::Poll<Option<Self::Item>> {
413        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
414            &mut self.event_receiver,
415            cx
416        )?) {
417            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEvent::decode(buf))),
418            None => std::task::Poll::Ready(None),
419        }
420    }
421}
422
423#[derive(Debug)]
424pub enum AjarTargetEvent {
425    #[non_exhaustive]
426    _UnknownEvent {
427        /// Ordinal of the event that was sent.
428        ordinal: u64,
429    },
430}
431
432impl AjarTargetEvent {
433    /// Decodes a message buffer as a [`AjarTargetEvent`].
434    fn decode(
435        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
436    ) -> Result<AjarTargetEvent, fidl::Error> {
437        let (bytes, _handles) = buf.split_mut();
438        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
439        debug_assert_eq!(tx_header.tx_id, 0);
440        match tx_header.ordinal {
441            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
442                Ok(AjarTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
443            }
444            _ => Err(fidl::Error::UnknownOrdinal {
445                ordinal: tx_header.ordinal,
446                protocol_name: <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
447            }),
448        }
449    }
450}
451
452/// A Stream of incoming requests for fidl.clientsuite/AjarTarget.
453pub struct AjarTargetRequestStream {
454    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
455    is_terminated: bool,
456}
457
458impl std::marker::Unpin for AjarTargetRequestStream {}
459
460impl futures::stream::FusedStream for AjarTargetRequestStream {
461    fn is_terminated(&self) -> bool {
462        self.is_terminated
463    }
464}
465
466impl fidl::endpoints::RequestStream for AjarTargetRequestStream {
467    type Protocol = AjarTargetMarker;
468    type ControlHandle = AjarTargetControlHandle;
469
470    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
471        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
472    }
473
474    fn control_handle(&self) -> Self::ControlHandle {
475        AjarTargetControlHandle { inner: self.inner.clone() }
476    }
477
478    fn into_inner(
479        self,
480    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
481    {
482        (self.inner, self.is_terminated)
483    }
484
485    fn from_inner(
486        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
487        is_terminated: bool,
488    ) -> Self {
489        Self { inner, is_terminated }
490    }
491}
492
493impl futures::Stream for AjarTargetRequestStream {
494    type Item = Result<AjarTargetRequest, fidl::Error>;
495
496    fn poll_next(
497        mut self: std::pin::Pin<&mut Self>,
498        cx: &mut std::task::Context<'_>,
499    ) -> std::task::Poll<Option<Self::Item>> {
500        let this = &mut *self;
501        if this.inner.check_shutdown(cx) {
502            this.is_terminated = true;
503            return std::task::Poll::Ready(None);
504        }
505        if this.is_terminated {
506            panic!("polled AjarTargetRequestStream after completion");
507        }
508        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
509            |bytes, handles| {
510                match this.inner.channel().read_etc(cx, bytes, handles) {
511                    std::task::Poll::Ready(Ok(())) => {}
512                    std::task::Poll::Pending => return std::task::Poll::Pending,
513                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
514                        this.is_terminated = true;
515                        return std::task::Poll::Ready(None);
516                    }
517                    std::task::Poll::Ready(Err(e)) => {
518                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
519                            e.into(),
520                        ))));
521                    }
522                }
523
524                // A message has been received from the channel
525                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
526
527                std::task::Poll::Ready(Some(match header.ordinal {
528                    _ if header.tx_id == 0
529                        && header
530                            .dynamic_flags()
531                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
532                    {
533                        Ok(AjarTargetRequest::_UnknownMethod {
534                            ordinal: header.ordinal,
535                            control_handle: AjarTargetControlHandle { inner: this.inner.clone() },
536                        })
537                    }
538                    _ => Err(fidl::Error::UnknownOrdinal {
539                        ordinal: header.ordinal,
540                        protocol_name:
541                            <AjarTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
542                    }),
543                }))
544            },
545        )
546    }
547}
548
549#[derive(Debug)]
550pub enum AjarTargetRequest {
551    /// An interaction was received which does not match any known method.
552    #[non_exhaustive]
553    _UnknownMethod {
554        /// Ordinal of the method that was called.
555        ordinal: u64,
556        control_handle: AjarTargetControlHandle,
557    },
558}
559
560impl AjarTargetRequest {
561    /// Name of the method defined in FIDL
562    pub fn method_name(&self) -> &'static str {
563        match *self {
564            AjarTargetRequest::_UnknownMethod { .. } => "unknown one-way method",
565        }
566    }
567}
568
569#[derive(Debug, Clone)]
570pub struct AjarTargetControlHandle {
571    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
572}
573
574impl fidl::endpoints::ControlHandle for AjarTargetControlHandle {
575    fn shutdown(&self) {
576        self.inner.shutdown()
577    }
578    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
579        self.inner.shutdown_with_epitaph(status)
580    }
581
582    fn is_closed(&self) -> bool {
583        self.inner.channel().is_closed()
584    }
585    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
586        self.inner.channel().on_closed()
587    }
588
589    #[cfg(target_os = "fuchsia")]
590    fn signal_peer(
591        &self,
592        clear_mask: zx::Signals,
593        set_mask: zx::Signals,
594    ) -> Result<(), zx_status::Status> {
595        use fidl::Peered;
596        self.inner.channel().signal_peer(clear_mask, set_mask)
597    }
598}
599
600impl AjarTargetControlHandle {}
601
602#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
603pub struct AjarTargetEventReporterMarker;
604
605impl fidl::endpoints::ProtocolMarker for AjarTargetEventReporterMarker {
606    type Proxy = AjarTargetEventReporterProxy;
607    type RequestStream = AjarTargetEventReporterRequestStream;
608    #[cfg(target_os = "fuchsia")]
609    type SynchronousProxy = AjarTargetEventReporterSynchronousProxy;
610
611    const DEBUG_NAME: &'static str = "(anonymous) AjarTargetEventReporter";
612}
613
614pub trait AjarTargetEventReporterProxyInterface: Send + Sync {
615    fn r#report_event(&self, payload: &AjarTargetEventReport) -> Result<(), fidl::Error>;
616}
617#[derive(Debug)]
618#[cfg(target_os = "fuchsia")]
619pub struct AjarTargetEventReporterSynchronousProxy {
620    client: fidl::client::sync::Client,
621}
622
623#[cfg(target_os = "fuchsia")]
624impl fidl::endpoints::SynchronousProxy for AjarTargetEventReporterSynchronousProxy {
625    type Proxy = AjarTargetEventReporterProxy;
626    type Protocol = AjarTargetEventReporterMarker;
627
628    fn from_channel(inner: fidl::Channel) -> Self {
629        Self::new(inner)
630    }
631
632    fn into_channel(self) -> fidl::Channel {
633        self.client.into_channel()
634    }
635
636    fn as_channel(&self) -> &fidl::Channel {
637        self.client.as_channel()
638    }
639}
640
641#[cfg(target_os = "fuchsia")]
642impl AjarTargetEventReporterSynchronousProxy {
643    pub fn new(channel: fidl::Channel) -> Self {
644        let protocol_name =
645            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
646        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
647    }
648
649    pub fn into_channel(self) -> fidl::Channel {
650        self.client.into_channel()
651    }
652
653    /// Waits until an event arrives and returns it. It is safe for other
654    /// threads to make concurrent requests while waiting for an event.
655    pub fn wait_for_event(
656        &self,
657        deadline: zx::MonotonicInstant,
658    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
659        AjarTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
660    }
661
662    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
663        self.client.send::<AjarTargetEventReport>(
664            payload,
665            0x477b93390be99238,
666            fidl::encoding::DynamicFlags::empty(),
667        )
668    }
669}
670
671#[cfg(target_os = "fuchsia")]
672impl From<AjarTargetEventReporterSynchronousProxy> for zx::Handle {
673    fn from(value: AjarTargetEventReporterSynchronousProxy) -> Self {
674        value.into_channel().into()
675    }
676}
677
678#[cfg(target_os = "fuchsia")]
679impl From<fidl::Channel> for AjarTargetEventReporterSynchronousProxy {
680    fn from(value: fidl::Channel) -> Self {
681        Self::new(value)
682    }
683}
684
685#[cfg(target_os = "fuchsia")]
686impl fidl::endpoints::FromClient for AjarTargetEventReporterSynchronousProxy {
687    type Protocol = AjarTargetEventReporterMarker;
688
689    fn from_client(value: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>) -> Self {
690        Self::new(value.into_channel())
691    }
692}
693
694#[derive(Debug, Clone)]
695pub struct AjarTargetEventReporterProxy {
696    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
697}
698
699impl fidl::endpoints::Proxy for AjarTargetEventReporterProxy {
700    type Protocol = AjarTargetEventReporterMarker;
701
702    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
703        Self::new(inner)
704    }
705
706    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
707        self.client.into_channel().map_err(|client| Self { client })
708    }
709
710    fn as_channel(&self) -> &::fidl::AsyncChannel {
711        self.client.as_channel()
712    }
713}
714
715impl AjarTargetEventReporterProxy {
716    /// Create a new Proxy for fidl.clientsuite/AjarTargetEventReporter.
717    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
718        let protocol_name =
719            <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
720        Self { client: fidl::client::Client::new(channel, protocol_name) }
721    }
722
723    /// Get a Stream of events from the remote end of the protocol.
724    ///
725    /// # Panics
726    ///
727    /// Panics if the event stream was already taken.
728    pub fn take_event_stream(&self) -> AjarTargetEventReporterEventStream {
729        AjarTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
730    }
731
732    pub fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
733        AjarTargetEventReporterProxyInterface::r#report_event(self, payload)
734    }
735}
736
737impl AjarTargetEventReporterProxyInterface for AjarTargetEventReporterProxy {
738    fn r#report_event(&self, mut payload: &AjarTargetEventReport) -> Result<(), fidl::Error> {
739        self.client.send::<AjarTargetEventReport>(
740            payload,
741            0x477b93390be99238,
742            fidl::encoding::DynamicFlags::empty(),
743        )
744    }
745}
746
747pub struct AjarTargetEventReporterEventStream {
748    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
749}
750
751impl std::marker::Unpin for AjarTargetEventReporterEventStream {}
752
753impl futures::stream::FusedStream for AjarTargetEventReporterEventStream {
754    fn is_terminated(&self) -> bool {
755        self.event_receiver.is_terminated()
756    }
757}
758
759impl futures::Stream for AjarTargetEventReporterEventStream {
760    type Item = Result<AjarTargetEventReporterEvent, fidl::Error>;
761
762    fn poll_next(
763        mut self: std::pin::Pin<&mut Self>,
764        cx: &mut std::task::Context<'_>,
765    ) -> std::task::Poll<Option<Self::Item>> {
766        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
767            &mut self.event_receiver,
768            cx
769        )?) {
770            Some(buf) => std::task::Poll::Ready(Some(AjarTargetEventReporterEvent::decode(buf))),
771            None => std::task::Poll::Ready(None),
772        }
773    }
774}
775
776#[derive(Debug)]
777pub enum AjarTargetEventReporterEvent {}
778
779impl AjarTargetEventReporterEvent {
780    /// Decodes a message buffer as a [`AjarTargetEventReporterEvent`].
781    fn decode(
782        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
783    ) -> Result<AjarTargetEventReporterEvent, fidl::Error> {
784        let (bytes, _handles) = buf.split_mut();
785        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
786        debug_assert_eq!(tx_header.tx_id, 0);
787        match tx_header.ordinal {
788            _ => Err(fidl::Error::UnknownOrdinal {
789                ordinal: tx_header.ordinal,
790                protocol_name:
791                    <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
792            }),
793        }
794    }
795}
796
797/// A Stream of incoming requests for fidl.clientsuite/AjarTargetEventReporter.
798pub struct AjarTargetEventReporterRequestStream {
799    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
800    is_terminated: bool,
801}
802
803impl std::marker::Unpin for AjarTargetEventReporterRequestStream {}
804
805impl futures::stream::FusedStream for AjarTargetEventReporterRequestStream {
806    fn is_terminated(&self) -> bool {
807        self.is_terminated
808    }
809}
810
811impl fidl::endpoints::RequestStream for AjarTargetEventReporterRequestStream {
812    type Protocol = AjarTargetEventReporterMarker;
813    type ControlHandle = AjarTargetEventReporterControlHandle;
814
815    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
816        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
817    }
818
819    fn control_handle(&self) -> Self::ControlHandle {
820        AjarTargetEventReporterControlHandle { inner: self.inner.clone() }
821    }
822
823    fn into_inner(
824        self,
825    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
826    {
827        (self.inner, self.is_terminated)
828    }
829
830    fn from_inner(
831        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
832        is_terminated: bool,
833    ) -> Self {
834        Self { inner, is_terminated }
835    }
836}
837
838impl futures::Stream for AjarTargetEventReporterRequestStream {
839    type Item = Result<AjarTargetEventReporterRequest, fidl::Error>;
840
841    fn poll_next(
842        mut self: std::pin::Pin<&mut Self>,
843        cx: &mut std::task::Context<'_>,
844    ) -> std::task::Poll<Option<Self::Item>> {
845        let this = &mut *self;
846        if this.inner.check_shutdown(cx) {
847            this.is_terminated = true;
848            return std::task::Poll::Ready(None);
849        }
850        if this.is_terminated {
851            panic!("polled AjarTargetEventReporterRequestStream after completion");
852        }
853        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
854            |bytes, handles| {
855                match this.inner.channel().read_etc(cx, bytes, handles) {
856                    std::task::Poll::Ready(Ok(())) => {}
857                    std::task::Poll::Pending => return std::task::Poll::Pending,
858                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
859                        this.is_terminated = true;
860                        return std::task::Poll::Ready(None);
861                    }
862                    std::task::Poll::Ready(Err(e)) => {
863                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
864                            e.into(),
865                        ))));
866                    }
867                }
868
869                // A message has been received from the channel
870                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
871
872                std::task::Poll::Ready(Some(match header.ordinal {
873                0x477b93390be99238 => {
874                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
875                    let mut req = fidl::new_empty!(AjarTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
876                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<AjarTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
877                    let control_handle = AjarTargetEventReporterControlHandle {
878                        inner: this.inner.clone(),
879                    };
880                    Ok(AjarTargetEventReporterRequest::ReportEvent {payload: req,
881                        control_handle,
882                    })
883                }
884                _ => Err(fidl::Error::UnknownOrdinal {
885                    ordinal: header.ordinal,
886                    protocol_name: <AjarTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
887                }),
888            }))
889            },
890        )
891    }
892}
893
894#[derive(Debug)]
895pub enum AjarTargetEventReporterRequest {
896    ReportEvent {
897        payload: AjarTargetEventReport,
898        control_handle: AjarTargetEventReporterControlHandle,
899    },
900}
901
902impl AjarTargetEventReporterRequest {
903    #[allow(irrefutable_let_patterns)]
904    pub fn into_report_event(
905        self,
906    ) -> Option<(AjarTargetEventReport, AjarTargetEventReporterControlHandle)> {
907        if let AjarTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
908            Some((payload, control_handle))
909        } else {
910            None
911        }
912    }
913
914    /// Name of the method defined in FIDL
915    pub fn method_name(&self) -> &'static str {
916        match *self {
917            AjarTargetEventReporterRequest::ReportEvent { .. } => "report_event",
918        }
919    }
920}
921
922#[derive(Debug, Clone)]
923pub struct AjarTargetEventReporterControlHandle {
924    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
925}
926
927impl fidl::endpoints::ControlHandle for AjarTargetEventReporterControlHandle {
928    fn shutdown(&self) {
929        self.inner.shutdown()
930    }
931    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
932        self.inner.shutdown_with_epitaph(status)
933    }
934
935    fn is_closed(&self) -> bool {
936        self.inner.channel().is_closed()
937    }
938    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
939        self.inner.channel().on_closed()
940    }
941
942    #[cfg(target_os = "fuchsia")]
943    fn signal_peer(
944        &self,
945        clear_mask: zx::Signals,
946        set_mask: zx::Signals,
947    ) -> Result<(), zx_status::Status> {
948        use fidl::Peered;
949        self.inner.channel().signal_peer(clear_mask, set_mask)
950    }
951}
952
953impl AjarTargetEventReporterControlHandle {}
954
955#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
956pub struct ClosedTargetMarker;
957
958impl fidl::endpoints::ProtocolMarker for ClosedTargetMarker {
959    type Proxy = ClosedTargetProxy;
960    type RequestStream = ClosedTargetRequestStream;
961    #[cfg(target_os = "fuchsia")]
962    type SynchronousProxy = ClosedTargetSynchronousProxy;
963
964    const DEBUG_NAME: &'static str = "(anonymous) ClosedTarget";
965}
966pub type ClosedTargetTwoWayStructPayloadErrResult = Result<i32, i32>;
967
968pub trait ClosedTargetProxyInterface: Send + Sync {
969    type TwoWayNoPayloadResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
970    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut;
971    type TwoWayStructPayloadResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
972        + Send;
973    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut;
974    type TwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TablePayload, fidl::Error>>
975        + Send;
976    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut;
977    type TwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionPayload, fidl::Error>>
978        + Send;
979    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut;
980    type TwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error>>
981        + Send;
982    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut;
983    type TwoWayStructRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
984        + Send;
985    fn r#two_way_struct_request(&self, some_field: i32) -> Self::TwoWayStructRequestResponseFut;
986    type TwoWayTableRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
987    fn r#two_way_table_request(
988        &self,
989        payload: &TablePayload,
990    ) -> Self::TwoWayTableRequestResponseFut;
991    type TwoWayUnionRequestResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
992    fn r#two_way_union_request(
993        &self,
994        payload: &UnionPayload,
995    ) -> Self::TwoWayUnionRequestResponseFut;
996    fn r#one_way_no_request(&self) -> Result<(), fidl::Error>;
997    fn r#one_way_struct_request(&self, some_field: i32) -> Result<(), fidl::Error>;
998    fn r#one_way_table_request(&self, payload: &TablePayload) -> Result<(), fidl::Error>;
999    fn r#one_way_union_request(&self, payload: &UnionPayload) -> Result<(), fidl::Error>;
1000}
1001#[derive(Debug)]
1002#[cfg(target_os = "fuchsia")]
1003pub struct ClosedTargetSynchronousProxy {
1004    client: fidl::client::sync::Client,
1005}
1006
1007#[cfg(target_os = "fuchsia")]
1008impl fidl::endpoints::SynchronousProxy for ClosedTargetSynchronousProxy {
1009    type Proxy = ClosedTargetProxy;
1010    type Protocol = ClosedTargetMarker;
1011
1012    fn from_channel(inner: fidl::Channel) -> Self {
1013        Self::new(inner)
1014    }
1015
1016    fn into_channel(self) -> fidl::Channel {
1017        self.client.into_channel()
1018    }
1019
1020    fn as_channel(&self) -> &fidl::Channel {
1021        self.client.as_channel()
1022    }
1023}
1024
1025#[cfg(target_os = "fuchsia")]
1026impl ClosedTargetSynchronousProxy {
1027    pub fn new(channel: fidl::Channel) -> Self {
1028        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1029        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
1030    }
1031
1032    pub fn into_channel(self) -> fidl::Channel {
1033        self.client.into_channel()
1034    }
1035
1036    /// Waits until an event arrives and returns it. It is safe for other
1037    /// threads to make concurrent requests while waiting for an event.
1038    pub fn wait_for_event(
1039        &self,
1040        deadline: zx::MonotonicInstant,
1041    ) -> Result<ClosedTargetEvent, fidl::Error> {
1042        ClosedTargetEvent::decode(self.client.wait_for_event(deadline)?)
1043    }
1044
1045    pub fn r#two_way_no_payload(
1046        &self,
1047        ___deadline: zx::MonotonicInstant,
1048    ) -> Result<(), fidl::Error> {
1049        let _response =
1050            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
1051                (),
1052                0x7a722961424c1720,
1053                fidl::encoding::DynamicFlags::empty(),
1054                ___deadline,
1055            )?;
1056        Ok(_response)
1057    }
1058
1059    pub fn r#two_way_struct_payload(
1060        &self,
1061        ___deadline: zx::MonotonicInstant,
1062    ) -> Result<i32, fidl::Error> {
1063        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload>(
1064            (),
1065            0x3a402118bad781bd,
1066            fidl::encoding::DynamicFlags::empty(),
1067            ___deadline,
1068        )?;
1069        Ok(_response.some_field)
1070    }
1071
1072    pub fn r#two_way_table_payload(
1073        &self,
1074        ___deadline: zx::MonotonicInstant,
1075    ) -> Result<TablePayload, fidl::Error> {
1076        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, TablePayload>(
1077            (),
1078            0x53be101c241c66bc,
1079            fidl::encoding::DynamicFlags::empty(),
1080            ___deadline,
1081        )?;
1082        Ok(_response)
1083    }
1084
1085    pub fn r#two_way_union_payload(
1086        &self,
1087        ___deadline: zx::MonotonicInstant,
1088    ) -> Result<UnionPayload, fidl::Error> {
1089        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, UnionPayload>(
1090            (),
1091            0x1ff7f745ab608f8c,
1092            fidl::encoding::DynamicFlags::empty(),
1093            ___deadline,
1094        )?;
1095        Ok(_response)
1096    }
1097
1098    pub fn r#two_way_struct_payload_err(
1099        &self,
1100        ___deadline: zx::MonotonicInstant,
1101    ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1102        let _response = self.client.send_query::<
1103            fidl::encoding::EmptyPayload,
1104            fidl::encoding::ResultType<NonEmptyPayload, i32>,
1105        >(
1106            (),
1107            0x62b4861c443bbc0b,
1108            fidl::encoding::DynamicFlags::empty(),
1109            ___deadline,
1110        )?;
1111        Ok(_response.map(|x| x.some_field))
1112    }
1113
1114    pub fn r#two_way_struct_request(
1115        &self,
1116        mut some_field: i32,
1117        ___deadline: zx::MonotonicInstant,
1118    ) -> Result<(), fidl::Error> {
1119        let _response = self.client.send_query::<NonEmptyPayload, fidl::encoding::EmptyPayload>(
1120            (some_field,),
1121            0x4ff77b4a913be5b6,
1122            fidl::encoding::DynamicFlags::empty(),
1123            ___deadline,
1124        )?;
1125        Ok(_response)
1126    }
1127
1128    pub fn r#two_way_table_request(
1129        &self,
1130        mut payload: &TablePayload,
1131        ___deadline: zx::MonotonicInstant,
1132    ) -> Result<(), fidl::Error> {
1133        let _response = self.client.send_query::<TablePayload, fidl::encoding::EmptyPayload>(
1134            payload,
1135            0x3d38ad5b0f4f49cf,
1136            fidl::encoding::DynamicFlags::empty(),
1137            ___deadline,
1138        )?;
1139        Ok(_response)
1140    }
1141
1142    pub fn r#two_way_union_request(
1143        &self,
1144        mut payload: &UnionPayload,
1145        ___deadline: zx::MonotonicInstant,
1146    ) -> Result<(), fidl::Error> {
1147        let _response = self.client.send_query::<UnionPayload, fidl::encoding::EmptyPayload>(
1148            payload,
1149            0x7adb1c265a378e77,
1150            fidl::encoding::DynamicFlags::empty(),
1151            ___deadline,
1152        )?;
1153        Ok(_response)
1154    }
1155
1156    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1157        self.client.send::<fidl::encoding::EmptyPayload>(
1158            (),
1159            0xc376730a2cd8a05,
1160            fidl::encoding::DynamicFlags::empty(),
1161        )
1162    }
1163
1164    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1165        self.client.send::<NonEmptyPayload>(
1166            (some_field,),
1167            0x2618da6f51e0dcd2,
1168            fidl::encoding::DynamicFlags::empty(),
1169        )
1170    }
1171
1172    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1173        self.client.send::<TablePayload>(
1174            payload,
1175            0x1a4b7d32eaed401f,
1176            fidl::encoding::DynamicFlags::empty(),
1177        )
1178    }
1179
1180    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1181        self.client.send::<UnionPayload>(
1182            payload,
1183            0x142b3cd9ea530de5,
1184            fidl::encoding::DynamicFlags::empty(),
1185        )
1186    }
1187}
1188
1189#[cfg(target_os = "fuchsia")]
1190impl From<ClosedTargetSynchronousProxy> for zx::Handle {
1191    fn from(value: ClosedTargetSynchronousProxy) -> Self {
1192        value.into_channel().into()
1193    }
1194}
1195
1196#[cfg(target_os = "fuchsia")]
1197impl From<fidl::Channel> for ClosedTargetSynchronousProxy {
1198    fn from(value: fidl::Channel) -> Self {
1199        Self::new(value)
1200    }
1201}
1202
1203#[cfg(target_os = "fuchsia")]
1204impl fidl::endpoints::FromClient for ClosedTargetSynchronousProxy {
1205    type Protocol = ClosedTargetMarker;
1206
1207    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetMarker>) -> Self {
1208        Self::new(value.into_channel())
1209    }
1210}
1211
1212#[derive(Debug, Clone)]
1213pub struct ClosedTargetProxy {
1214    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1215}
1216
1217impl fidl::endpoints::Proxy for ClosedTargetProxy {
1218    type Protocol = ClosedTargetMarker;
1219
1220    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1221        Self::new(inner)
1222    }
1223
1224    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1225        self.client.into_channel().map_err(|client| Self { client })
1226    }
1227
1228    fn as_channel(&self) -> &::fidl::AsyncChannel {
1229        self.client.as_channel()
1230    }
1231}
1232
1233impl ClosedTargetProxy {
1234    /// Create a new Proxy for fidl.clientsuite/ClosedTarget.
1235    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1236        let protocol_name = <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1237        Self { client: fidl::client::Client::new(channel, protocol_name) }
1238    }
1239
1240    /// Get a Stream of events from the remote end of the protocol.
1241    ///
1242    /// # Panics
1243    ///
1244    /// Panics if the event stream was already taken.
1245    pub fn take_event_stream(&self) -> ClosedTargetEventStream {
1246        ClosedTargetEventStream { event_receiver: self.client.take_event_receiver() }
1247    }
1248
1249    pub fn r#two_way_no_payload(
1250        &self,
1251    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1252        ClosedTargetProxyInterface::r#two_way_no_payload(self)
1253    }
1254
1255    pub fn r#two_way_struct_payload(
1256        &self,
1257    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
1258        ClosedTargetProxyInterface::r#two_way_struct_payload(self)
1259    }
1260
1261    pub fn r#two_way_table_payload(
1262        &self,
1263    ) -> fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1264    {
1265        ClosedTargetProxyInterface::r#two_way_table_payload(self)
1266    }
1267
1268    pub fn r#two_way_union_payload(
1269        &self,
1270    ) -> fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>
1271    {
1272        ClosedTargetProxyInterface::r#two_way_union_payload(self)
1273    }
1274
1275    pub fn r#two_way_struct_payload_err(
1276        &self,
1277    ) -> fidl::client::QueryResponseFut<
1278        ClosedTargetTwoWayStructPayloadErrResult,
1279        fidl::encoding::DefaultFuchsiaResourceDialect,
1280    > {
1281        ClosedTargetProxyInterface::r#two_way_struct_payload_err(self)
1282    }
1283
1284    pub fn r#two_way_struct_request(
1285        &self,
1286        mut some_field: i32,
1287    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1288        ClosedTargetProxyInterface::r#two_way_struct_request(self, some_field)
1289    }
1290
1291    pub fn r#two_way_table_request(
1292        &self,
1293        mut payload: &TablePayload,
1294    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1295        ClosedTargetProxyInterface::r#two_way_table_request(self, payload)
1296    }
1297
1298    pub fn r#two_way_union_request(
1299        &self,
1300        mut payload: &UnionPayload,
1301    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1302        ClosedTargetProxyInterface::r#two_way_union_request(self, payload)
1303    }
1304
1305    pub fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1306        ClosedTargetProxyInterface::r#one_way_no_request(self)
1307    }
1308
1309    pub fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1310        ClosedTargetProxyInterface::r#one_way_struct_request(self, some_field)
1311    }
1312
1313    pub fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1314        ClosedTargetProxyInterface::r#one_way_table_request(self, payload)
1315    }
1316
1317    pub fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1318        ClosedTargetProxyInterface::r#one_way_union_request(self, payload)
1319    }
1320}
1321
1322impl ClosedTargetProxyInterface for ClosedTargetProxy {
1323    type TwoWayNoPayloadResponseFut =
1324        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1325    fn r#two_way_no_payload(&self) -> Self::TwoWayNoPayloadResponseFut {
1326        fn _decode(
1327            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1328        ) -> Result<(), fidl::Error> {
1329            let _response = fidl::client::decode_transaction_body::<
1330                fidl::encoding::EmptyPayload,
1331                fidl::encoding::DefaultFuchsiaResourceDialect,
1332                0x7a722961424c1720,
1333            >(_buf?)?;
1334            Ok(_response)
1335        }
1336        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
1337            (),
1338            0x7a722961424c1720,
1339            fidl::encoding::DynamicFlags::empty(),
1340            _decode,
1341        )
1342    }
1343
1344    type TwoWayStructPayloadResponseFut =
1345        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
1346    fn r#two_way_struct_payload(&self) -> Self::TwoWayStructPayloadResponseFut {
1347        fn _decode(
1348            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1349        ) -> Result<i32, fidl::Error> {
1350            let _response = fidl::client::decode_transaction_body::<
1351                NonEmptyPayload,
1352                fidl::encoding::DefaultFuchsiaResourceDialect,
1353                0x3a402118bad781bd,
1354            >(_buf?)?;
1355            Ok(_response.some_field)
1356        }
1357        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
1358            (),
1359            0x3a402118bad781bd,
1360            fidl::encoding::DynamicFlags::empty(),
1361            _decode,
1362        )
1363    }
1364
1365    type TwoWayTablePayloadResponseFut =
1366        fidl::client::QueryResponseFut<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1367    fn r#two_way_table_payload(&self) -> Self::TwoWayTablePayloadResponseFut {
1368        fn _decode(
1369            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1370        ) -> Result<TablePayload, fidl::Error> {
1371            let _response = fidl::client::decode_transaction_body::<
1372                TablePayload,
1373                fidl::encoding::DefaultFuchsiaResourceDialect,
1374                0x53be101c241c66bc,
1375            >(_buf?)?;
1376            Ok(_response)
1377        }
1378        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, TablePayload>(
1379            (),
1380            0x53be101c241c66bc,
1381            fidl::encoding::DynamicFlags::empty(),
1382            _decode,
1383        )
1384    }
1385
1386    type TwoWayUnionPayloadResponseFut =
1387        fidl::client::QueryResponseFut<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>;
1388    fn r#two_way_union_payload(&self) -> Self::TwoWayUnionPayloadResponseFut {
1389        fn _decode(
1390            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1391        ) -> Result<UnionPayload, fidl::Error> {
1392            let _response = fidl::client::decode_transaction_body::<
1393                UnionPayload,
1394                fidl::encoding::DefaultFuchsiaResourceDialect,
1395                0x1ff7f745ab608f8c,
1396            >(_buf?)?;
1397            Ok(_response)
1398        }
1399        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, UnionPayload>(
1400            (),
1401            0x1ff7f745ab608f8c,
1402            fidl::encoding::DynamicFlags::empty(),
1403            _decode,
1404        )
1405    }
1406
1407    type TwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
1408        ClosedTargetTwoWayStructPayloadErrResult,
1409        fidl::encoding::DefaultFuchsiaResourceDialect,
1410    >;
1411    fn r#two_way_struct_payload_err(&self) -> Self::TwoWayStructPayloadErrResponseFut {
1412        fn _decode(
1413            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1414        ) -> Result<ClosedTargetTwoWayStructPayloadErrResult, fidl::Error> {
1415            let _response = fidl::client::decode_transaction_body::<
1416                fidl::encoding::ResultType<NonEmptyPayload, i32>,
1417                fidl::encoding::DefaultFuchsiaResourceDialect,
1418                0x62b4861c443bbc0b,
1419            >(_buf?)?;
1420            Ok(_response.map(|x| x.some_field))
1421        }
1422        self.client.send_query_and_decode::<
1423            fidl::encoding::EmptyPayload,
1424            ClosedTargetTwoWayStructPayloadErrResult,
1425        >(
1426            (),
1427            0x62b4861c443bbc0b,
1428            fidl::encoding::DynamicFlags::empty(),
1429            _decode,
1430        )
1431    }
1432
1433    type TwoWayStructRequestResponseFut =
1434        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1435    fn r#two_way_struct_request(
1436        &self,
1437        mut some_field: i32,
1438    ) -> Self::TwoWayStructRequestResponseFut {
1439        fn _decode(
1440            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1441        ) -> Result<(), fidl::Error> {
1442            let _response = fidl::client::decode_transaction_body::<
1443                fidl::encoding::EmptyPayload,
1444                fidl::encoding::DefaultFuchsiaResourceDialect,
1445                0x4ff77b4a913be5b6,
1446            >(_buf?)?;
1447            Ok(_response)
1448        }
1449        self.client.send_query_and_decode::<NonEmptyPayload, ()>(
1450            (some_field,),
1451            0x4ff77b4a913be5b6,
1452            fidl::encoding::DynamicFlags::empty(),
1453            _decode,
1454        )
1455    }
1456
1457    type TwoWayTableRequestResponseFut =
1458        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1459    fn r#two_way_table_request(
1460        &self,
1461        mut payload: &TablePayload,
1462    ) -> Self::TwoWayTableRequestResponseFut {
1463        fn _decode(
1464            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1465        ) -> Result<(), fidl::Error> {
1466            let _response = fidl::client::decode_transaction_body::<
1467                fidl::encoding::EmptyPayload,
1468                fidl::encoding::DefaultFuchsiaResourceDialect,
1469                0x3d38ad5b0f4f49cf,
1470            >(_buf?)?;
1471            Ok(_response)
1472        }
1473        self.client.send_query_and_decode::<TablePayload, ()>(
1474            payload,
1475            0x3d38ad5b0f4f49cf,
1476            fidl::encoding::DynamicFlags::empty(),
1477            _decode,
1478        )
1479    }
1480
1481    type TwoWayUnionRequestResponseFut =
1482        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1483    fn r#two_way_union_request(
1484        &self,
1485        mut payload: &UnionPayload,
1486    ) -> Self::TwoWayUnionRequestResponseFut {
1487        fn _decode(
1488            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1489        ) -> Result<(), fidl::Error> {
1490            let _response = fidl::client::decode_transaction_body::<
1491                fidl::encoding::EmptyPayload,
1492                fidl::encoding::DefaultFuchsiaResourceDialect,
1493                0x7adb1c265a378e77,
1494            >(_buf?)?;
1495            Ok(_response)
1496        }
1497        self.client.send_query_and_decode::<UnionPayload, ()>(
1498            payload,
1499            0x7adb1c265a378e77,
1500            fidl::encoding::DynamicFlags::empty(),
1501            _decode,
1502        )
1503    }
1504
1505    fn r#one_way_no_request(&self) -> Result<(), fidl::Error> {
1506        self.client.send::<fidl::encoding::EmptyPayload>(
1507            (),
1508            0xc376730a2cd8a05,
1509            fidl::encoding::DynamicFlags::empty(),
1510        )
1511    }
1512
1513    fn r#one_way_struct_request(&self, mut some_field: i32) -> Result<(), fidl::Error> {
1514        self.client.send::<NonEmptyPayload>(
1515            (some_field,),
1516            0x2618da6f51e0dcd2,
1517            fidl::encoding::DynamicFlags::empty(),
1518        )
1519    }
1520
1521    fn r#one_way_table_request(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
1522        self.client.send::<TablePayload>(
1523            payload,
1524            0x1a4b7d32eaed401f,
1525            fidl::encoding::DynamicFlags::empty(),
1526        )
1527    }
1528
1529    fn r#one_way_union_request(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
1530        self.client.send::<UnionPayload>(
1531            payload,
1532            0x142b3cd9ea530de5,
1533            fidl::encoding::DynamicFlags::empty(),
1534        )
1535    }
1536}
1537
1538pub struct ClosedTargetEventStream {
1539    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1540}
1541
1542impl std::marker::Unpin for ClosedTargetEventStream {}
1543
1544impl futures::stream::FusedStream for ClosedTargetEventStream {
1545    fn is_terminated(&self) -> bool {
1546        self.event_receiver.is_terminated()
1547    }
1548}
1549
1550impl futures::Stream for ClosedTargetEventStream {
1551    type Item = Result<ClosedTargetEvent, fidl::Error>;
1552
1553    fn poll_next(
1554        mut self: std::pin::Pin<&mut Self>,
1555        cx: &mut std::task::Context<'_>,
1556    ) -> std::task::Poll<Option<Self::Item>> {
1557        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1558            &mut self.event_receiver,
1559            cx
1560        )?) {
1561            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEvent::decode(buf))),
1562            None => std::task::Poll::Ready(None),
1563        }
1564    }
1565}
1566
1567#[derive(Debug)]
1568pub enum ClosedTargetEvent {
1569    OnEventNoPayload {},
1570    OnEventStructPayload { some_field: i32 },
1571    OnEventTablePayload { payload: TablePayload },
1572    OnEventUnionPayload { payload: UnionPayload },
1573}
1574
1575impl ClosedTargetEvent {
1576    #[allow(irrefutable_let_patterns)]
1577    pub fn into_on_event_no_payload(self) -> Option<()> {
1578        if let ClosedTargetEvent::OnEventNoPayload {} = self { Some(()) } else { None }
1579    }
1580    #[allow(irrefutable_let_patterns)]
1581    pub fn into_on_event_struct_payload(self) -> Option<i32> {
1582        if let ClosedTargetEvent::OnEventStructPayload { some_field } = self {
1583            Some((some_field))
1584        } else {
1585            None
1586        }
1587    }
1588    #[allow(irrefutable_let_patterns)]
1589    pub fn into_on_event_table_payload(self) -> Option<TablePayload> {
1590        if let ClosedTargetEvent::OnEventTablePayload { payload } = self {
1591            Some((payload))
1592        } else {
1593            None
1594        }
1595    }
1596    #[allow(irrefutable_let_patterns)]
1597    pub fn into_on_event_union_payload(self) -> Option<UnionPayload> {
1598        if let ClosedTargetEvent::OnEventUnionPayload { payload } = self {
1599            Some((payload))
1600        } else {
1601            None
1602        }
1603    }
1604
1605    /// Decodes a message buffer as a [`ClosedTargetEvent`].
1606    fn decode(
1607        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1608    ) -> Result<ClosedTargetEvent, fidl::Error> {
1609        let (bytes, _handles) = buf.split_mut();
1610        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1611        debug_assert_eq!(tx_header.tx_id, 0);
1612        match tx_header.ordinal {
1613            0x4ee7b8d3e6bb36a6 => {
1614                let mut out = fidl::new_empty!(
1615                    fidl::encoding::EmptyPayload,
1616                    fidl::encoding::DefaultFuchsiaResourceDialect
1617                );
1618                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1619                Ok((ClosedTargetEvent::OnEventNoPayload {}))
1620            }
1621            0x48e8c897893ae266 => {
1622                let mut out = fidl::new_empty!(
1623                    NonEmptyPayload,
1624                    fidl::encoding::DefaultFuchsiaResourceDialect
1625                );
1626                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1627                Ok((ClosedTargetEvent::OnEventStructPayload { some_field: out.some_field }))
1628            }
1629            0x72837525f4f3e746 => {
1630                let mut out =
1631                    fidl::new_empty!(TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1632                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1633                Ok((ClosedTargetEvent::OnEventTablePayload { payload: out }))
1634            }
1635            0x69c6390e1ac48ea0 => {
1636                let mut out =
1637                    fidl::new_empty!(UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect);
1638                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
1639                Ok((ClosedTargetEvent::OnEventUnionPayload { payload: out }))
1640            }
1641            _ => Err(fidl::Error::UnknownOrdinal {
1642                ordinal: tx_header.ordinal,
1643                protocol_name: <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1644            }),
1645        }
1646    }
1647}
1648
1649/// A Stream of incoming requests for fidl.clientsuite/ClosedTarget.
1650pub struct ClosedTargetRequestStream {
1651    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1652    is_terminated: bool,
1653}
1654
1655impl std::marker::Unpin for ClosedTargetRequestStream {}
1656
1657impl futures::stream::FusedStream for ClosedTargetRequestStream {
1658    fn is_terminated(&self) -> bool {
1659        self.is_terminated
1660    }
1661}
1662
1663impl fidl::endpoints::RequestStream for ClosedTargetRequestStream {
1664    type Protocol = ClosedTargetMarker;
1665    type ControlHandle = ClosedTargetControlHandle;
1666
1667    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1668        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1669    }
1670
1671    fn control_handle(&self) -> Self::ControlHandle {
1672        ClosedTargetControlHandle { inner: self.inner.clone() }
1673    }
1674
1675    fn into_inner(
1676        self,
1677    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1678    {
1679        (self.inner, self.is_terminated)
1680    }
1681
1682    fn from_inner(
1683        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1684        is_terminated: bool,
1685    ) -> Self {
1686        Self { inner, is_terminated }
1687    }
1688}
1689
1690impl futures::Stream for ClosedTargetRequestStream {
1691    type Item = Result<ClosedTargetRequest, fidl::Error>;
1692
1693    fn poll_next(
1694        mut self: std::pin::Pin<&mut Self>,
1695        cx: &mut std::task::Context<'_>,
1696    ) -> std::task::Poll<Option<Self::Item>> {
1697        let this = &mut *self;
1698        if this.inner.check_shutdown(cx) {
1699            this.is_terminated = true;
1700            return std::task::Poll::Ready(None);
1701        }
1702        if this.is_terminated {
1703            panic!("polled ClosedTargetRequestStream after completion");
1704        }
1705        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1706            |bytes, handles| {
1707                match this.inner.channel().read_etc(cx, bytes, handles) {
1708                    std::task::Poll::Ready(Ok(())) => {}
1709                    std::task::Poll::Pending => return std::task::Poll::Pending,
1710                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
1711                        this.is_terminated = true;
1712                        return std::task::Poll::Ready(None);
1713                    }
1714                    std::task::Poll::Ready(Err(e)) => {
1715                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
1716                            e.into(),
1717                        ))));
1718                    }
1719                }
1720
1721                // A message has been received from the channel
1722                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1723
1724                std::task::Poll::Ready(Some(match header.ordinal {
1725                    0x7a722961424c1720 => {
1726                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1727                        let mut req = fidl::new_empty!(
1728                            fidl::encoding::EmptyPayload,
1729                            fidl::encoding::DefaultFuchsiaResourceDialect
1730                        );
1731                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1732                        let control_handle =
1733                            ClosedTargetControlHandle { inner: this.inner.clone() };
1734                        Ok(ClosedTargetRequest::TwoWayNoPayload {
1735                            responder: ClosedTargetTwoWayNoPayloadResponder {
1736                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1737                                tx_id: header.tx_id,
1738                            },
1739                        })
1740                    }
1741                    0x3a402118bad781bd => {
1742                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1743                        let mut req = fidl::new_empty!(
1744                            fidl::encoding::EmptyPayload,
1745                            fidl::encoding::DefaultFuchsiaResourceDialect
1746                        );
1747                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1748                        let control_handle =
1749                            ClosedTargetControlHandle { inner: this.inner.clone() };
1750                        Ok(ClosedTargetRequest::TwoWayStructPayload {
1751                            responder: ClosedTargetTwoWayStructPayloadResponder {
1752                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1753                                tx_id: header.tx_id,
1754                            },
1755                        })
1756                    }
1757                    0x53be101c241c66bc => {
1758                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1759                        let mut req = fidl::new_empty!(
1760                            fidl::encoding::EmptyPayload,
1761                            fidl::encoding::DefaultFuchsiaResourceDialect
1762                        );
1763                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1764                        let control_handle =
1765                            ClosedTargetControlHandle { inner: this.inner.clone() };
1766                        Ok(ClosedTargetRequest::TwoWayTablePayload {
1767                            responder: ClosedTargetTwoWayTablePayloadResponder {
1768                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1769                                tx_id: header.tx_id,
1770                            },
1771                        })
1772                    }
1773                    0x1ff7f745ab608f8c => {
1774                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1775                        let mut req = fidl::new_empty!(
1776                            fidl::encoding::EmptyPayload,
1777                            fidl::encoding::DefaultFuchsiaResourceDialect
1778                        );
1779                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1780                        let control_handle =
1781                            ClosedTargetControlHandle { inner: this.inner.clone() };
1782                        Ok(ClosedTargetRequest::TwoWayUnionPayload {
1783                            responder: ClosedTargetTwoWayUnionPayloadResponder {
1784                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1785                                tx_id: header.tx_id,
1786                            },
1787                        })
1788                    }
1789                    0x62b4861c443bbc0b => {
1790                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1791                        let mut req = fidl::new_empty!(
1792                            fidl::encoding::EmptyPayload,
1793                            fidl::encoding::DefaultFuchsiaResourceDialect
1794                        );
1795                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1796                        let control_handle =
1797                            ClosedTargetControlHandle { inner: this.inner.clone() };
1798                        Ok(ClosedTargetRequest::TwoWayStructPayloadErr {
1799                            responder: ClosedTargetTwoWayStructPayloadErrResponder {
1800                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1801                                tx_id: header.tx_id,
1802                            },
1803                        })
1804                    }
1805                    0x4ff77b4a913be5b6 => {
1806                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1807                        let mut req = fidl::new_empty!(
1808                            NonEmptyPayload,
1809                            fidl::encoding::DefaultFuchsiaResourceDialect
1810                        );
1811                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1812                        let control_handle =
1813                            ClosedTargetControlHandle { inner: this.inner.clone() };
1814                        Ok(ClosedTargetRequest::TwoWayStructRequest {
1815                            some_field: req.some_field,
1816
1817                            responder: ClosedTargetTwoWayStructRequestResponder {
1818                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1819                                tx_id: header.tx_id,
1820                            },
1821                        })
1822                    }
1823                    0x3d38ad5b0f4f49cf => {
1824                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1825                        let mut req = fidl::new_empty!(
1826                            TablePayload,
1827                            fidl::encoding::DefaultFuchsiaResourceDialect
1828                        );
1829                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1830                        let control_handle =
1831                            ClosedTargetControlHandle { inner: this.inner.clone() };
1832                        Ok(ClosedTargetRequest::TwoWayTableRequest {
1833                            payload: req,
1834                            responder: ClosedTargetTwoWayTableRequestResponder {
1835                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1836                                tx_id: header.tx_id,
1837                            },
1838                        })
1839                    }
1840                    0x7adb1c265a378e77 => {
1841                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
1842                        let mut req = fidl::new_empty!(
1843                            UnionPayload,
1844                            fidl::encoding::DefaultFuchsiaResourceDialect
1845                        );
1846                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1847                        let control_handle =
1848                            ClosedTargetControlHandle { inner: this.inner.clone() };
1849                        Ok(ClosedTargetRequest::TwoWayUnionRequest {
1850                            payload: req,
1851                            responder: ClosedTargetTwoWayUnionRequestResponder {
1852                                control_handle: std::mem::ManuallyDrop::new(control_handle),
1853                                tx_id: header.tx_id,
1854                            },
1855                        })
1856                    }
1857                    0xc376730a2cd8a05 => {
1858                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1859                        let mut req = fidl::new_empty!(
1860                            fidl::encoding::EmptyPayload,
1861                            fidl::encoding::DefaultFuchsiaResourceDialect
1862                        );
1863                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1864                        let control_handle =
1865                            ClosedTargetControlHandle { inner: this.inner.clone() };
1866                        Ok(ClosedTargetRequest::OneWayNoRequest { control_handle })
1867                    }
1868                    0x2618da6f51e0dcd2 => {
1869                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1870                        let mut req = fidl::new_empty!(
1871                            NonEmptyPayload,
1872                            fidl::encoding::DefaultFuchsiaResourceDialect
1873                        );
1874                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<NonEmptyPayload>(&header, _body_bytes, handles, &mut req)?;
1875                        let control_handle =
1876                            ClosedTargetControlHandle { inner: this.inner.clone() };
1877                        Ok(ClosedTargetRequest::OneWayStructRequest {
1878                            some_field: req.some_field,
1879
1880                            control_handle,
1881                        })
1882                    }
1883                    0x1a4b7d32eaed401f => {
1884                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1885                        let mut req = fidl::new_empty!(
1886                            TablePayload,
1887                            fidl::encoding::DefaultFuchsiaResourceDialect
1888                        );
1889                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<TablePayload>(&header, _body_bytes, handles, &mut req)?;
1890                        let control_handle =
1891                            ClosedTargetControlHandle { inner: this.inner.clone() };
1892                        Ok(ClosedTargetRequest::OneWayTableRequest { payload: req, control_handle })
1893                    }
1894                    0x142b3cd9ea530de5 => {
1895                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
1896                        let mut req = fidl::new_empty!(
1897                            UnionPayload,
1898                            fidl::encoding::DefaultFuchsiaResourceDialect
1899                        );
1900                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<UnionPayload>(&header, _body_bytes, handles, &mut req)?;
1901                        let control_handle =
1902                            ClosedTargetControlHandle { inner: this.inner.clone() };
1903                        Ok(ClosedTargetRequest::OneWayUnionRequest { payload: req, control_handle })
1904                    }
1905                    _ => Err(fidl::Error::UnknownOrdinal {
1906                        ordinal: header.ordinal,
1907                        protocol_name:
1908                            <ClosedTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1909                    }),
1910                }))
1911            },
1912        )
1913    }
1914}
1915
1916#[derive(Debug)]
1917pub enum ClosedTargetRequest {
1918    TwoWayNoPayload { responder: ClosedTargetTwoWayNoPayloadResponder },
1919    TwoWayStructPayload { responder: ClosedTargetTwoWayStructPayloadResponder },
1920    TwoWayTablePayload { responder: ClosedTargetTwoWayTablePayloadResponder },
1921    TwoWayUnionPayload { responder: ClosedTargetTwoWayUnionPayloadResponder },
1922    TwoWayStructPayloadErr { responder: ClosedTargetTwoWayStructPayloadErrResponder },
1923    TwoWayStructRequest { some_field: i32, responder: ClosedTargetTwoWayStructRequestResponder },
1924    TwoWayTableRequest { payload: TablePayload, responder: ClosedTargetTwoWayTableRequestResponder },
1925    TwoWayUnionRequest { payload: UnionPayload, responder: ClosedTargetTwoWayUnionRequestResponder },
1926    OneWayNoRequest { control_handle: ClosedTargetControlHandle },
1927    OneWayStructRequest { some_field: i32, control_handle: ClosedTargetControlHandle },
1928    OneWayTableRequest { payload: TablePayload, control_handle: ClosedTargetControlHandle },
1929    OneWayUnionRequest { payload: UnionPayload, control_handle: ClosedTargetControlHandle },
1930}
1931
1932impl ClosedTargetRequest {
1933    #[allow(irrefutable_let_patterns)]
1934    pub fn into_two_way_no_payload(self) -> Option<(ClosedTargetTwoWayNoPayloadResponder)> {
1935        if let ClosedTargetRequest::TwoWayNoPayload { responder } = self {
1936            Some((responder))
1937        } else {
1938            None
1939        }
1940    }
1941
1942    #[allow(irrefutable_let_patterns)]
1943    pub fn into_two_way_struct_payload(self) -> Option<(ClosedTargetTwoWayStructPayloadResponder)> {
1944        if let ClosedTargetRequest::TwoWayStructPayload { responder } = self {
1945            Some((responder))
1946        } else {
1947            None
1948        }
1949    }
1950
1951    #[allow(irrefutable_let_patterns)]
1952    pub fn into_two_way_table_payload(self) -> Option<(ClosedTargetTwoWayTablePayloadResponder)> {
1953        if let ClosedTargetRequest::TwoWayTablePayload { responder } = self {
1954            Some((responder))
1955        } else {
1956            None
1957        }
1958    }
1959
1960    #[allow(irrefutable_let_patterns)]
1961    pub fn into_two_way_union_payload(self) -> Option<(ClosedTargetTwoWayUnionPayloadResponder)> {
1962        if let ClosedTargetRequest::TwoWayUnionPayload { responder } = self {
1963            Some((responder))
1964        } else {
1965            None
1966        }
1967    }
1968
1969    #[allow(irrefutable_let_patterns)]
1970    pub fn into_two_way_struct_payload_err(
1971        self,
1972    ) -> Option<(ClosedTargetTwoWayStructPayloadErrResponder)> {
1973        if let ClosedTargetRequest::TwoWayStructPayloadErr { responder } = self {
1974            Some((responder))
1975        } else {
1976            None
1977        }
1978    }
1979
1980    #[allow(irrefutable_let_patterns)]
1981    pub fn into_two_way_struct_request(
1982        self,
1983    ) -> Option<(i32, ClosedTargetTwoWayStructRequestResponder)> {
1984        if let ClosedTargetRequest::TwoWayStructRequest { some_field, responder } = self {
1985            Some((some_field, responder))
1986        } else {
1987            None
1988        }
1989    }
1990
1991    #[allow(irrefutable_let_patterns)]
1992    pub fn into_two_way_table_request(
1993        self,
1994    ) -> Option<(TablePayload, ClosedTargetTwoWayTableRequestResponder)> {
1995        if let ClosedTargetRequest::TwoWayTableRequest { payload, responder } = self {
1996            Some((payload, responder))
1997        } else {
1998            None
1999        }
2000    }
2001
2002    #[allow(irrefutable_let_patterns)]
2003    pub fn into_two_way_union_request(
2004        self,
2005    ) -> Option<(UnionPayload, ClosedTargetTwoWayUnionRequestResponder)> {
2006        if let ClosedTargetRequest::TwoWayUnionRequest { payload, responder } = self {
2007            Some((payload, responder))
2008        } else {
2009            None
2010        }
2011    }
2012
2013    #[allow(irrefutable_let_patterns)]
2014    pub fn into_one_way_no_request(self) -> Option<(ClosedTargetControlHandle)> {
2015        if let ClosedTargetRequest::OneWayNoRequest { control_handle } = self {
2016            Some((control_handle))
2017        } else {
2018            None
2019        }
2020    }
2021
2022    #[allow(irrefutable_let_patterns)]
2023    pub fn into_one_way_struct_request(self) -> Option<(i32, ClosedTargetControlHandle)> {
2024        if let ClosedTargetRequest::OneWayStructRequest { some_field, control_handle } = self {
2025            Some((some_field, control_handle))
2026        } else {
2027            None
2028        }
2029    }
2030
2031    #[allow(irrefutable_let_patterns)]
2032    pub fn into_one_way_table_request(self) -> Option<(TablePayload, ClosedTargetControlHandle)> {
2033        if let ClosedTargetRequest::OneWayTableRequest { payload, control_handle } = self {
2034            Some((payload, control_handle))
2035        } else {
2036            None
2037        }
2038    }
2039
2040    #[allow(irrefutable_let_patterns)]
2041    pub fn into_one_way_union_request(self) -> Option<(UnionPayload, ClosedTargetControlHandle)> {
2042        if let ClosedTargetRequest::OneWayUnionRequest { payload, control_handle } = self {
2043            Some((payload, control_handle))
2044        } else {
2045            None
2046        }
2047    }
2048
2049    /// Name of the method defined in FIDL
2050    pub fn method_name(&self) -> &'static str {
2051        match *self {
2052            ClosedTargetRequest::TwoWayNoPayload { .. } => "two_way_no_payload",
2053            ClosedTargetRequest::TwoWayStructPayload { .. } => "two_way_struct_payload",
2054            ClosedTargetRequest::TwoWayTablePayload { .. } => "two_way_table_payload",
2055            ClosedTargetRequest::TwoWayUnionPayload { .. } => "two_way_union_payload",
2056            ClosedTargetRequest::TwoWayStructPayloadErr { .. } => "two_way_struct_payload_err",
2057            ClosedTargetRequest::TwoWayStructRequest { .. } => "two_way_struct_request",
2058            ClosedTargetRequest::TwoWayTableRequest { .. } => "two_way_table_request",
2059            ClosedTargetRequest::TwoWayUnionRequest { .. } => "two_way_union_request",
2060            ClosedTargetRequest::OneWayNoRequest { .. } => "one_way_no_request",
2061            ClosedTargetRequest::OneWayStructRequest { .. } => "one_way_struct_request",
2062            ClosedTargetRequest::OneWayTableRequest { .. } => "one_way_table_request",
2063            ClosedTargetRequest::OneWayUnionRequest { .. } => "one_way_union_request",
2064        }
2065    }
2066}
2067
2068#[derive(Debug, Clone)]
2069pub struct ClosedTargetControlHandle {
2070    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2071}
2072
2073impl fidl::endpoints::ControlHandle for ClosedTargetControlHandle {
2074    fn shutdown(&self) {
2075        self.inner.shutdown()
2076    }
2077    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2078        self.inner.shutdown_with_epitaph(status)
2079    }
2080
2081    fn is_closed(&self) -> bool {
2082        self.inner.channel().is_closed()
2083    }
2084    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2085        self.inner.channel().on_closed()
2086    }
2087
2088    #[cfg(target_os = "fuchsia")]
2089    fn signal_peer(
2090        &self,
2091        clear_mask: zx::Signals,
2092        set_mask: zx::Signals,
2093    ) -> Result<(), zx_status::Status> {
2094        use fidl::Peered;
2095        self.inner.channel().signal_peer(clear_mask, set_mask)
2096    }
2097}
2098
2099impl ClosedTargetControlHandle {
2100    pub fn send_on_event_no_payload(&self) -> Result<(), fidl::Error> {
2101        self.inner.send::<fidl::encoding::EmptyPayload>(
2102            (),
2103            0,
2104            0x4ee7b8d3e6bb36a6,
2105            fidl::encoding::DynamicFlags::empty(),
2106        )
2107    }
2108
2109    pub fn send_on_event_struct_payload(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2110        self.inner.send::<NonEmptyPayload>(
2111            (some_field,),
2112            0,
2113            0x48e8c897893ae266,
2114            fidl::encoding::DynamicFlags::empty(),
2115        )
2116    }
2117
2118    pub fn send_on_event_table_payload(
2119        &self,
2120        mut payload: &TablePayload,
2121    ) -> Result<(), fidl::Error> {
2122        self.inner.send::<TablePayload>(
2123            payload,
2124            0,
2125            0x72837525f4f3e746,
2126            fidl::encoding::DynamicFlags::empty(),
2127        )
2128    }
2129
2130    pub fn send_on_event_union_payload(
2131        &self,
2132        mut payload: &UnionPayload,
2133    ) -> Result<(), fidl::Error> {
2134        self.inner.send::<UnionPayload>(
2135            payload,
2136            0,
2137            0x69c6390e1ac48ea0,
2138            fidl::encoding::DynamicFlags::empty(),
2139        )
2140    }
2141}
2142
2143#[must_use = "FIDL methods require a response to be sent"]
2144#[derive(Debug)]
2145pub struct ClosedTargetTwoWayNoPayloadResponder {
2146    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2147    tx_id: u32,
2148}
2149
2150/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2151/// if the responder is dropped without sending a response, so that the client
2152/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2153impl std::ops::Drop for ClosedTargetTwoWayNoPayloadResponder {
2154    fn drop(&mut self) {
2155        self.control_handle.shutdown();
2156        // Safety: drops once, never accessed again
2157        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2158    }
2159}
2160
2161impl fidl::endpoints::Responder for ClosedTargetTwoWayNoPayloadResponder {
2162    type ControlHandle = ClosedTargetControlHandle;
2163
2164    fn control_handle(&self) -> &ClosedTargetControlHandle {
2165        &self.control_handle
2166    }
2167
2168    fn drop_without_shutdown(mut self) {
2169        // Safety: drops once, never accessed again due to mem::forget
2170        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2171        // Prevent Drop from running (which would shut down the channel)
2172        std::mem::forget(self);
2173    }
2174}
2175
2176impl ClosedTargetTwoWayNoPayloadResponder {
2177    /// Sends a response to the FIDL transaction.
2178    ///
2179    /// Sets the channel to shutdown if an error occurs.
2180    pub fn send(self) -> Result<(), fidl::Error> {
2181        let _result = self.send_raw();
2182        if _result.is_err() {
2183            self.control_handle.shutdown();
2184        }
2185        self.drop_without_shutdown();
2186        _result
2187    }
2188
2189    /// Similar to "send" but does not shutdown the channel if an error occurs.
2190    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2191        let _result = self.send_raw();
2192        self.drop_without_shutdown();
2193        _result
2194    }
2195
2196    fn send_raw(&self) -> Result<(), fidl::Error> {
2197        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2198            (),
2199            self.tx_id,
2200            0x7a722961424c1720,
2201            fidl::encoding::DynamicFlags::empty(),
2202        )
2203    }
2204}
2205
2206#[must_use = "FIDL methods require a response to be sent"]
2207#[derive(Debug)]
2208pub struct ClosedTargetTwoWayStructPayloadResponder {
2209    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2210    tx_id: u32,
2211}
2212
2213/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2214/// if the responder is dropped without sending a response, so that the client
2215/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2216impl std::ops::Drop for ClosedTargetTwoWayStructPayloadResponder {
2217    fn drop(&mut self) {
2218        self.control_handle.shutdown();
2219        // Safety: drops once, never accessed again
2220        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2221    }
2222}
2223
2224impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadResponder {
2225    type ControlHandle = ClosedTargetControlHandle;
2226
2227    fn control_handle(&self) -> &ClosedTargetControlHandle {
2228        &self.control_handle
2229    }
2230
2231    fn drop_without_shutdown(mut self) {
2232        // Safety: drops once, never accessed again due to mem::forget
2233        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2234        // Prevent Drop from running (which would shut down the channel)
2235        std::mem::forget(self);
2236    }
2237}
2238
2239impl ClosedTargetTwoWayStructPayloadResponder {
2240    /// Sends a response to the FIDL transaction.
2241    ///
2242    /// Sets the channel to shutdown if an error occurs.
2243    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
2244        let _result = self.send_raw(some_field);
2245        if _result.is_err() {
2246            self.control_handle.shutdown();
2247        }
2248        self.drop_without_shutdown();
2249        _result
2250    }
2251
2252    /// Similar to "send" but does not shutdown the channel if an error occurs.
2253    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
2254        let _result = self.send_raw(some_field);
2255        self.drop_without_shutdown();
2256        _result
2257    }
2258
2259    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
2260        self.control_handle.inner.send::<NonEmptyPayload>(
2261            (some_field,),
2262            self.tx_id,
2263            0x3a402118bad781bd,
2264            fidl::encoding::DynamicFlags::empty(),
2265        )
2266    }
2267}
2268
2269#[must_use = "FIDL methods require a response to be sent"]
2270#[derive(Debug)]
2271pub struct ClosedTargetTwoWayTablePayloadResponder {
2272    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2273    tx_id: u32,
2274}
2275
2276/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2277/// if the responder is dropped without sending a response, so that the client
2278/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2279impl std::ops::Drop for ClosedTargetTwoWayTablePayloadResponder {
2280    fn drop(&mut self) {
2281        self.control_handle.shutdown();
2282        // Safety: drops once, never accessed again
2283        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2284    }
2285}
2286
2287impl fidl::endpoints::Responder for ClosedTargetTwoWayTablePayloadResponder {
2288    type ControlHandle = ClosedTargetControlHandle;
2289
2290    fn control_handle(&self) -> &ClosedTargetControlHandle {
2291        &self.control_handle
2292    }
2293
2294    fn drop_without_shutdown(mut self) {
2295        // Safety: drops once, never accessed again due to mem::forget
2296        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2297        // Prevent Drop from running (which would shut down the channel)
2298        std::mem::forget(self);
2299    }
2300}
2301
2302impl ClosedTargetTwoWayTablePayloadResponder {
2303    /// Sends a response to the FIDL transaction.
2304    ///
2305    /// Sets the channel to shutdown if an error occurs.
2306    pub fn send(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2307        let _result = self.send_raw(payload);
2308        if _result.is_err() {
2309            self.control_handle.shutdown();
2310        }
2311        self.drop_without_shutdown();
2312        _result
2313    }
2314
2315    /// Similar to "send" but does not shutdown the channel if an error occurs.
2316    pub fn send_no_shutdown_on_err(self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2317        let _result = self.send_raw(payload);
2318        self.drop_without_shutdown();
2319        _result
2320    }
2321
2322    fn send_raw(&self, mut payload: &TablePayload) -> Result<(), fidl::Error> {
2323        self.control_handle.inner.send::<TablePayload>(
2324            payload,
2325            self.tx_id,
2326            0x53be101c241c66bc,
2327            fidl::encoding::DynamicFlags::empty(),
2328        )
2329    }
2330}
2331
2332#[must_use = "FIDL methods require a response to be sent"]
2333#[derive(Debug)]
2334pub struct ClosedTargetTwoWayUnionPayloadResponder {
2335    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2336    tx_id: u32,
2337}
2338
2339/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2340/// if the responder is dropped without sending a response, so that the client
2341/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2342impl std::ops::Drop for ClosedTargetTwoWayUnionPayloadResponder {
2343    fn drop(&mut self) {
2344        self.control_handle.shutdown();
2345        // Safety: drops once, never accessed again
2346        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2347    }
2348}
2349
2350impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionPayloadResponder {
2351    type ControlHandle = ClosedTargetControlHandle;
2352
2353    fn control_handle(&self) -> &ClosedTargetControlHandle {
2354        &self.control_handle
2355    }
2356
2357    fn drop_without_shutdown(mut self) {
2358        // Safety: drops once, never accessed again due to mem::forget
2359        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2360        // Prevent Drop from running (which would shut down the channel)
2361        std::mem::forget(self);
2362    }
2363}
2364
2365impl ClosedTargetTwoWayUnionPayloadResponder {
2366    /// Sends a response to the FIDL transaction.
2367    ///
2368    /// Sets the channel to shutdown if an error occurs.
2369    pub fn send(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2370        let _result = self.send_raw(payload);
2371        if _result.is_err() {
2372            self.control_handle.shutdown();
2373        }
2374        self.drop_without_shutdown();
2375        _result
2376    }
2377
2378    /// Similar to "send" but does not shutdown the channel if an error occurs.
2379    pub fn send_no_shutdown_on_err(self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2380        let _result = self.send_raw(payload);
2381        self.drop_without_shutdown();
2382        _result
2383    }
2384
2385    fn send_raw(&self, mut payload: &UnionPayload) -> Result<(), fidl::Error> {
2386        self.control_handle.inner.send::<UnionPayload>(
2387            payload,
2388            self.tx_id,
2389            0x1ff7f745ab608f8c,
2390            fidl::encoding::DynamicFlags::empty(),
2391        )
2392    }
2393}
2394
2395#[must_use = "FIDL methods require a response to be sent"]
2396#[derive(Debug)]
2397pub struct ClosedTargetTwoWayStructPayloadErrResponder {
2398    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2399    tx_id: u32,
2400}
2401
2402/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2403/// if the responder is dropped without sending a response, so that the client
2404/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2405impl std::ops::Drop for ClosedTargetTwoWayStructPayloadErrResponder {
2406    fn drop(&mut self) {
2407        self.control_handle.shutdown();
2408        // Safety: drops once, never accessed again
2409        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2410    }
2411}
2412
2413impl fidl::endpoints::Responder for ClosedTargetTwoWayStructPayloadErrResponder {
2414    type ControlHandle = ClosedTargetControlHandle;
2415
2416    fn control_handle(&self) -> &ClosedTargetControlHandle {
2417        &self.control_handle
2418    }
2419
2420    fn drop_without_shutdown(mut self) {
2421        // Safety: drops once, never accessed again due to mem::forget
2422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2423        // Prevent Drop from running (which would shut down the channel)
2424        std::mem::forget(self);
2425    }
2426}
2427
2428impl ClosedTargetTwoWayStructPayloadErrResponder {
2429    /// Sends a response to the FIDL transaction.
2430    ///
2431    /// Sets the channel to shutdown if an error occurs.
2432    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2433        let _result = self.send_raw(result);
2434        if _result.is_err() {
2435            self.control_handle.shutdown();
2436        }
2437        self.drop_without_shutdown();
2438        _result
2439    }
2440
2441    /// Similar to "send" but does not shutdown the channel if an error occurs.
2442    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2443        let _result = self.send_raw(result);
2444        self.drop_without_shutdown();
2445        _result
2446    }
2447
2448    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
2449        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
2450            result.map(|some_field| (some_field,)),
2451            self.tx_id,
2452            0x62b4861c443bbc0b,
2453            fidl::encoding::DynamicFlags::empty(),
2454        )
2455    }
2456}
2457
2458#[must_use = "FIDL methods require a response to be sent"]
2459#[derive(Debug)]
2460pub struct ClosedTargetTwoWayStructRequestResponder {
2461    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2462    tx_id: u32,
2463}
2464
2465/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2466/// if the responder is dropped without sending a response, so that the client
2467/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2468impl std::ops::Drop for ClosedTargetTwoWayStructRequestResponder {
2469    fn drop(&mut self) {
2470        self.control_handle.shutdown();
2471        // Safety: drops once, never accessed again
2472        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2473    }
2474}
2475
2476impl fidl::endpoints::Responder for ClosedTargetTwoWayStructRequestResponder {
2477    type ControlHandle = ClosedTargetControlHandle;
2478
2479    fn control_handle(&self) -> &ClosedTargetControlHandle {
2480        &self.control_handle
2481    }
2482
2483    fn drop_without_shutdown(mut self) {
2484        // Safety: drops once, never accessed again due to mem::forget
2485        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2486        // Prevent Drop from running (which would shut down the channel)
2487        std::mem::forget(self);
2488    }
2489}
2490
2491impl ClosedTargetTwoWayStructRequestResponder {
2492    /// Sends a response to the FIDL transaction.
2493    ///
2494    /// Sets the channel to shutdown if an error occurs.
2495    pub fn send(self) -> Result<(), fidl::Error> {
2496        let _result = self.send_raw();
2497        if _result.is_err() {
2498            self.control_handle.shutdown();
2499        }
2500        self.drop_without_shutdown();
2501        _result
2502    }
2503
2504    /// Similar to "send" but does not shutdown the channel if an error occurs.
2505    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2506        let _result = self.send_raw();
2507        self.drop_without_shutdown();
2508        _result
2509    }
2510
2511    fn send_raw(&self) -> Result<(), fidl::Error> {
2512        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2513            (),
2514            self.tx_id,
2515            0x4ff77b4a913be5b6,
2516            fidl::encoding::DynamicFlags::empty(),
2517        )
2518    }
2519}
2520
2521#[must_use = "FIDL methods require a response to be sent"]
2522#[derive(Debug)]
2523pub struct ClosedTargetTwoWayTableRequestResponder {
2524    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2525    tx_id: u32,
2526}
2527
2528/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2529/// if the responder is dropped without sending a response, so that the client
2530/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2531impl std::ops::Drop for ClosedTargetTwoWayTableRequestResponder {
2532    fn drop(&mut self) {
2533        self.control_handle.shutdown();
2534        // Safety: drops once, never accessed again
2535        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2536    }
2537}
2538
2539impl fidl::endpoints::Responder for ClosedTargetTwoWayTableRequestResponder {
2540    type ControlHandle = ClosedTargetControlHandle;
2541
2542    fn control_handle(&self) -> &ClosedTargetControlHandle {
2543        &self.control_handle
2544    }
2545
2546    fn drop_without_shutdown(mut self) {
2547        // Safety: drops once, never accessed again due to mem::forget
2548        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2549        // Prevent Drop from running (which would shut down the channel)
2550        std::mem::forget(self);
2551    }
2552}
2553
2554impl ClosedTargetTwoWayTableRequestResponder {
2555    /// Sends a response to the FIDL transaction.
2556    ///
2557    /// Sets the channel to shutdown if an error occurs.
2558    pub fn send(self) -> Result<(), fidl::Error> {
2559        let _result = self.send_raw();
2560        if _result.is_err() {
2561            self.control_handle.shutdown();
2562        }
2563        self.drop_without_shutdown();
2564        _result
2565    }
2566
2567    /// Similar to "send" but does not shutdown the channel if an error occurs.
2568    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2569        let _result = self.send_raw();
2570        self.drop_without_shutdown();
2571        _result
2572    }
2573
2574    fn send_raw(&self) -> Result<(), fidl::Error> {
2575        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2576            (),
2577            self.tx_id,
2578            0x3d38ad5b0f4f49cf,
2579            fidl::encoding::DynamicFlags::empty(),
2580        )
2581    }
2582}
2583
2584#[must_use = "FIDL methods require a response to be sent"]
2585#[derive(Debug)]
2586pub struct ClosedTargetTwoWayUnionRequestResponder {
2587    control_handle: std::mem::ManuallyDrop<ClosedTargetControlHandle>,
2588    tx_id: u32,
2589}
2590
2591/// Set the the channel to be shutdown (see [`ClosedTargetControlHandle::shutdown`])
2592/// if the responder is dropped without sending a response, so that the client
2593/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
2594impl std::ops::Drop for ClosedTargetTwoWayUnionRequestResponder {
2595    fn drop(&mut self) {
2596        self.control_handle.shutdown();
2597        // Safety: drops once, never accessed again
2598        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2599    }
2600}
2601
2602impl fidl::endpoints::Responder for ClosedTargetTwoWayUnionRequestResponder {
2603    type ControlHandle = ClosedTargetControlHandle;
2604
2605    fn control_handle(&self) -> &ClosedTargetControlHandle {
2606        &self.control_handle
2607    }
2608
2609    fn drop_without_shutdown(mut self) {
2610        // Safety: drops once, never accessed again due to mem::forget
2611        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
2612        // Prevent Drop from running (which would shut down the channel)
2613        std::mem::forget(self);
2614    }
2615}
2616
2617impl ClosedTargetTwoWayUnionRequestResponder {
2618    /// Sends a response to the FIDL transaction.
2619    ///
2620    /// Sets the channel to shutdown if an error occurs.
2621    pub fn send(self) -> Result<(), fidl::Error> {
2622        let _result = self.send_raw();
2623        if _result.is_err() {
2624            self.control_handle.shutdown();
2625        }
2626        self.drop_without_shutdown();
2627        _result
2628    }
2629
2630    /// Similar to "send" but does not shutdown the channel if an error occurs.
2631    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
2632        let _result = self.send_raw();
2633        self.drop_without_shutdown();
2634        _result
2635    }
2636
2637    fn send_raw(&self) -> Result<(), fidl::Error> {
2638        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
2639            (),
2640            self.tx_id,
2641            0x7adb1c265a378e77,
2642            fidl::encoding::DynamicFlags::empty(),
2643        )
2644    }
2645}
2646
2647#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
2648pub struct ClosedTargetEventReporterMarker;
2649
2650impl fidl::endpoints::ProtocolMarker for ClosedTargetEventReporterMarker {
2651    type Proxy = ClosedTargetEventReporterProxy;
2652    type RequestStream = ClosedTargetEventReporterRequestStream;
2653    #[cfg(target_os = "fuchsia")]
2654    type SynchronousProxy = ClosedTargetEventReporterSynchronousProxy;
2655
2656    const DEBUG_NAME: &'static str = "(anonymous) ClosedTargetEventReporter";
2657}
2658
2659pub trait ClosedTargetEventReporterProxyInterface: Send + Sync {
2660    fn r#report_event(&self, payload: &ClosedTargetEventReport) -> Result<(), fidl::Error>;
2661}
2662#[derive(Debug)]
2663#[cfg(target_os = "fuchsia")]
2664pub struct ClosedTargetEventReporterSynchronousProxy {
2665    client: fidl::client::sync::Client,
2666}
2667
2668#[cfg(target_os = "fuchsia")]
2669impl fidl::endpoints::SynchronousProxy for ClosedTargetEventReporterSynchronousProxy {
2670    type Proxy = ClosedTargetEventReporterProxy;
2671    type Protocol = ClosedTargetEventReporterMarker;
2672
2673    fn from_channel(inner: fidl::Channel) -> Self {
2674        Self::new(inner)
2675    }
2676
2677    fn into_channel(self) -> fidl::Channel {
2678        self.client.into_channel()
2679    }
2680
2681    fn as_channel(&self) -> &fidl::Channel {
2682        self.client.as_channel()
2683    }
2684}
2685
2686#[cfg(target_os = "fuchsia")]
2687impl ClosedTargetEventReporterSynchronousProxy {
2688    pub fn new(channel: fidl::Channel) -> Self {
2689        let protocol_name =
2690            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2691        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
2692    }
2693
2694    pub fn into_channel(self) -> fidl::Channel {
2695        self.client.into_channel()
2696    }
2697
2698    /// Waits until an event arrives and returns it. It is safe for other
2699    /// threads to make concurrent requests while waiting for an event.
2700    pub fn wait_for_event(
2701        &self,
2702        deadline: zx::MonotonicInstant,
2703    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2704        ClosedTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
2705    }
2706
2707    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2708        self.client.send::<ClosedTargetEventReport>(
2709            payload,
2710            0x63890e67649a846e,
2711            fidl::encoding::DynamicFlags::empty(),
2712        )
2713    }
2714}
2715
2716#[cfg(target_os = "fuchsia")]
2717impl From<ClosedTargetEventReporterSynchronousProxy> for zx::Handle {
2718    fn from(value: ClosedTargetEventReporterSynchronousProxy) -> Self {
2719        value.into_channel().into()
2720    }
2721}
2722
2723#[cfg(target_os = "fuchsia")]
2724impl From<fidl::Channel> for ClosedTargetEventReporterSynchronousProxy {
2725    fn from(value: fidl::Channel) -> Self {
2726        Self::new(value)
2727    }
2728}
2729
2730#[cfg(target_os = "fuchsia")]
2731impl fidl::endpoints::FromClient for ClosedTargetEventReporterSynchronousProxy {
2732    type Protocol = ClosedTargetEventReporterMarker;
2733
2734    fn from_client(value: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>) -> Self {
2735        Self::new(value.into_channel())
2736    }
2737}
2738
2739#[derive(Debug, Clone)]
2740pub struct ClosedTargetEventReporterProxy {
2741    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
2742}
2743
2744impl fidl::endpoints::Proxy for ClosedTargetEventReporterProxy {
2745    type Protocol = ClosedTargetEventReporterMarker;
2746
2747    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
2748        Self::new(inner)
2749    }
2750
2751    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
2752        self.client.into_channel().map_err(|client| Self { client })
2753    }
2754
2755    fn as_channel(&self) -> &::fidl::AsyncChannel {
2756        self.client.as_channel()
2757    }
2758}
2759
2760impl ClosedTargetEventReporterProxy {
2761    /// Create a new Proxy for fidl.clientsuite/ClosedTargetEventReporter.
2762    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
2763        let protocol_name =
2764            <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
2765        Self { client: fidl::client::Client::new(channel, protocol_name) }
2766    }
2767
2768    /// Get a Stream of events from the remote end of the protocol.
2769    ///
2770    /// # Panics
2771    ///
2772    /// Panics if the event stream was already taken.
2773    pub fn take_event_stream(&self) -> ClosedTargetEventReporterEventStream {
2774        ClosedTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
2775    }
2776
2777    pub fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2778        ClosedTargetEventReporterProxyInterface::r#report_event(self, payload)
2779    }
2780}
2781
2782impl ClosedTargetEventReporterProxyInterface for ClosedTargetEventReporterProxy {
2783    fn r#report_event(&self, mut payload: &ClosedTargetEventReport) -> Result<(), fidl::Error> {
2784        self.client.send::<ClosedTargetEventReport>(
2785            payload,
2786            0x63890e67649a846e,
2787            fidl::encoding::DynamicFlags::empty(),
2788        )
2789    }
2790}
2791
2792pub struct ClosedTargetEventReporterEventStream {
2793    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2794}
2795
2796impl std::marker::Unpin for ClosedTargetEventReporterEventStream {}
2797
2798impl futures::stream::FusedStream for ClosedTargetEventReporterEventStream {
2799    fn is_terminated(&self) -> bool {
2800        self.event_receiver.is_terminated()
2801    }
2802}
2803
2804impl futures::Stream for ClosedTargetEventReporterEventStream {
2805    type Item = Result<ClosedTargetEventReporterEvent, fidl::Error>;
2806
2807    fn poll_next(
2808        mut self: std::pin::Pin<&mut Self>,
2809        cx: &mut std::task::Context<'_>,
2810    ) -> std::task::Poll<Option<Self::Item>> {
2811        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2812            &mut self.event_receiver,
2813            cx
2814        )?) {
2815            Some(buf) => std::task::Poll::Ready(Some(ClosedTargetEventReporterEvent::decode(buf))),
2816            None => std::task::Poll::Ready(None),
2817        }
2818    }
2819}
2820
2821#[derive(Debug)]
2822pub enum ClosedTargetEventReporterEvent {}
2823
2824impl ClosedTargetEventReporterEvent {
2825    /// Decodes a message buffer as a [`ClosedTargetEventReporterEvent`].
2826    fn decode(
2827        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2828    ) -> Result<ClosedTargetEventReporterEvent, fidl::Error> {
2829        let (bytes, _handles) = buf.split_mut();
2830        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2831        debug_assert_eq!(tx_header.tx_id, 0);
2832        match tx_header.ordinal {
2833            _ => Err(fidl::Error::UnknownOrdinal {
2834                ordinal: tx_header.ordinal,
2835                protocol_name:
2836                    <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2837            }),
2838        }
2839    }
2840}
2841
2842/// A Stream of incoming requests for fidl.clientsuite/ClosedTargetEventReporter.
2843pub struct ClosedTargetEventReporterRequestStream {
2844    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2845    is_terminated: bool,
2846}
2847
2848impl std::marker::Unpin for ClosedTargetEventReporterRequestStream {}
2849
2850impl futures::stream::FusedStream for ClosedTargetEventReporterRequestStream {
2851    fn is_terminated(&self) -> bool {
2852        self.is_terminated
2853    }
2854}
2855
2856impl fidl::endpoints::RequestStream for ClosedTargetEventReporterRequestStream {
2857    type Protocol = ClosedTargetEventReporterMarker;
2858    type ControlHandle = ClosedTargetEventReporterControlHandle;
2859
2860    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2861        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2862    }
2863
2864    fn control_handle(&self) -> Self::ControlHandle {
2865        ClosedTargetEventReporterControlHandle { inner: self.inner.clone() }
2866    }
2867
2868    fn into_inner(
2869        self,
2870    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2871    {
2872        (self.inner, self.is_terminated)
2873    }
2874
2875    fn from_inner(
2876        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2877        is_terminated: bool,
2878    ) -> Self {
2879        Self { inner, is_terminated }
2880    }
2881}
2882
2883impl futures::Stream for ClosedTargetEventReporterRequestStream {
2884    type Item = Result<ClosedTargetEventReporterRequest, fidl::Error>;
2885
2886    fn poll_next(
2887        mut self: std::pin::Pin<&mut Self>,
2888        cx: &mut std::task::Context<'_>,
2889    ) -> std::task::Poll<Option<Self::Item>> {
2890        let this = &mut *self;
2891        if this.inner.check_shutdown(cx) {
2892            this.is_terminated = true;
2893            return std::task::Poll::Ready(None);
2894        }
2895        if this.is_terminated {
2896            panic!("polled ClosedTargetEventReporterRequestStream after completion");
2897        }
2898        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2899            |bytes, handles| {
2900                match this.inner.channel().read_etc(cx, bytes, handles) {
2901                    std::task::Poll::Ready(Ok(())) => {}
2902                    std::task::Poll::Pending => return std::task::Poll::Pending,
2903                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2904                        this.is_terminated = true;
2905                        return std::task::Poll::Ready(None);
2906                    }
2907                    std::task::Poll::Ready(Err(e)) => {
2908                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2909                            e.into(),
2910                        ))));
2911                    }
2912                }
2913
2914                // A message has been received from the channel
2915                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2916
2917                std::task::Poll::Ready(Some(match header.ordinal {
2918                0x63890e67649a846e => {
2919                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2920                    let mut req = fidl::new_empty!(ClosedTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
2921                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ClosedTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
2922                    let control_handle = ClosedTargetEventReporterControlHandle {
2923                        inner: this.inner.clone(),
2924                    };
2925                    Ok(ClosedTargetEventReporterRequest::ReportEvent {payload: req,
2926                        control_handle,
2927                    })
2928                }
2929                _ => Err(fidl::Error::UnknownOrdinal {
2930                    ordinal: header.ordinal,
2931                    protocol_name: <ClosedTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2932                }),
2933            }))
2934            },
2935        )
2936    }
2937}
2938
2939#[derive(Debug)]
2940pub enum ClosedTargetEventReporterRequest {
2941    ReportEvent {
2942        payload: ClosedTargetEventReport,
2943        control_handle: ClosedTargetEventReporterControlHandle,
2944    },
2945}
2946
2947impl ClosedTargetEventReporterRequest {
2948    #[allow(irrefutable_let_patterns)]
2949    pub fn into_report_event(
2950        self,
2951    ) -> Option<(ClosedTargetEventReport, ClosedTargetEventReporterControlHandle)> {
2952        if let ClosedTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
2953            Some((payload, control_handle))
2954        } else {
2955            None
2956        }
2957    }
2958
2959    /// Name of the method defined in FIDL
2960    pub fn method_name(&self) -> &'static str {
2961        match *self {
2962            ClosedTargetEventReporterRequest::ReportEvent { .. } => "report_event",
2963        }
2964    }
2965}
2966
2967#[derive(Debug, Clone)]
2968pub struct ClosedTargetEventReporterControlHandle {
2969    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2970}
2971
2972impl fidl::endpoints::ControlHandle for ClosedTargetEventReporterControlHandle {
2973    fn shutdown(&self) {
2974        self.inner.shutdown()
2975    }
2976    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2977        self.inner.shutdown_with_epitaph(status)
2978    }
2979
2980    fn is_closed(&self) -> bool {
2981        self.inner.channel().is_closed()
2982    }
2983    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2984        self.inner.channel().on_closed()
2985    }
2986
2987    #[cfg(target_os = "fuchsia")]
2988    fn signal_peer(
2989        &self,
2990        clear_mask: zx::Signals,
2991        set_mask: zx::Signals,
2992    ) -> Result<(), zx_status::Status> {
2993        use fidl::Peered;
2994        self.inner.channel().signal_peer(clear_mask, set_mask)
2995    }
2996}
2997
2998impl ClosedTargetEventReporterControlHandle {}
2999
3000#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
3001pub struct OpenTargetMarker;
3002
3003impl fidl::endpoints::ProtocolMarker for OpenTargetMarker {
3004    type Proxy = OpenTargetProxy;
3005    type RequestStream = OpenTargetRequestStream;
3006    #[cfg(target_os = "fuchsia")]
3007    type SynchronousProxy = OpenTargetSynchronousProxy;
3008
3009    const DEBUG_NAME: &'static str = "(anonymous) OpenTarget";
3010}
3011pub type OpenTargetStrictTwoWayErrResult = Result<(), i32>;
3012pub type OpenTargetStrictTwoWayFieldsErrResult = Result<i32, i32>;
3013pub type OpenTargetFlexibleTwoWayErrResult = Result<(), i32>;
3014pub type OpenTargetFlexibleTwoWayFieldsErrResult = Result<i32, i32>;
3015
3016pub trait OpenTargetProxyInterface: Send + Sync {
3017    fn r#strict_one_way(&self) -> Result<(), fidl::Error>;
3018    fn r#flexible_one_way(&self) -> Result<(), fidl::Error>;
3019    type StrictTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3020    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut;
3021    type StrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3022        + Send;
3023    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut;
3024    type StrictTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayErrResult, fidl::Error>>
3025        + Send;
3026    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut;
3027    type StrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error>>
3028        + Send;
3029    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut;
3030    type FlexibleTwoWayResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
3031    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut;
3032    type FlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<i32, fidl::Error>>
3033        + Send;
3034    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut;
3035    type FlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error>>
3036        + Send;
3037    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut;
3038    type FlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error>>
3039        + Send;
3040    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut;
3041}
3042#[derive(Debug)]
3043#[cfg(target_os = "fuchsia")]
3044pub struct OpenTargetSynchronousProxy {
3045    client: fidl::client::sync::Client,
3046}
3047
3048#[cfg(target_os = "fuchsia")]
3049impl fidl::endpoints::SynchronousProxy for OpenTargetSynchronousProxy {
3050    type Proxy = OpenTargetProxy;
3051    type Protocol = OpenTargetMarker;
3052
3053    fn from_channel(inner: fidl::Channel) -> Self {
3054        Self::new(inner)
3055    }
3056
3057    fn into_channel(self) -> fidl::Channel {
3058        self.client.into_channel()
3059    }
3060
3061    fn as_channel(&self) -> &fidl::Channel {
3062        self.client.as_channel()
3063    }
3064}
3065
3066#[cfg(target_os = "fuchsia")]
3067impl OpenTargetSynchronousProxy {
3068    pub fn new(channel: fidl::Channel) -> Self {
3069        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3070        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
3071    }
3072
3073    pub fn into_channel(self) -> fidl::Channel {
3074        self.client.into_channel()
3075    }
3076
3077    /// Waits until an event arrives and returns it. It is safe for other
3078    /// threads to make concurrent requests while waiting for an event.
3079    pub fn wait_for_event(
3080        &self,
3081        deadline: zx::MonotonicInstant,
3082    ) -> Result<OpenTargetEvent, fidl::Error> {
3083        OpenTargetEvent::decode(self.client.wait_for_event(deadline)?)
3084    }
3085
3086    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3087        self.client.send::<fidl::encoding::EmptyPayload>(
3088            (),
3089            0x6db0bc21c4aae764,
3090            fidl::encoding::DynamicFlags::empty(),
3091        )
3092    }
3093
3094    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3095        self.client.send::<fidl::encoding::EmptyPayload>(
3096            (),
3097            0xf894a7eb9cc29fc,
3098            fidl::encoding::DynamicFlags::FLEXIBLE,
3099        )
3100    }
3101
3102    pub fn r#strict_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3103        let _response =
3104            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
3105                (),
3106                0xdcf4cef19a1c542,
3107                fidl::encoding::DynamicFlags::empty(),
3108                ___deadline,
3109            )?;
3110        Ok(_response)
3111    }
3112
3113    pub fn r#strict_two_way_fields(
3114        &self,
3115        ___deadline: zx::MonotonicInstant,
3116    ) -> Result<i32, fidl::Error> {
3117        let _response = self.client.send_query::<fidl::encoding::EmptyPayload, NonEmptyPayload>(
3118            (),
3119            0x79c7a7803c45e2e3,
3120            fidl::encoding::DynamicFlags::empty(),
3121            ___deadline,
3122        )?;
3123        Ok(_response.some_field)
3124    }
3125
3126    pub fn r#strict_two_way_err(
3127        &self,
3128        ___deadline: zx::MonotonicInstant,
3129    ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3130        let _response = self.client.send_query::<
3131            fidl::encoding::EmptyPayload,
3132            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3133        >(
3134            (),
3135            0x54259ed6c262fe88,
3136            fidl::encoding::DynamicFlags::empty(),
3137            ___deadline,
3138        )?;
3139        Ok(_response.map(|x| x))
3140    }
3141
3142    pub fn r#strict_two_way_fields_err(
3143        &self,
3144        ___deadline: zx::MonotonicInstant,
3145    ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3146        let _response = self.client.send_query::<
3147            fidl::encoding::EmptyPayload,
3148            fidl::encoding::ResultType<NonEmptyPayload, i32>,
3149        >(
3150            (),
3151            0x7dbaa8538b552711,
3152            fidl::encoding::DynamicFlags::empty(),
3153            ___deadline,
3154        )?;
3155        Ok(_response.map(|x| x.some_field))
3156    }
3157
3158    pub fn r#flexible_two_way(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
3159        let _response = self.client.send_query::<
3160            fidl::encoding::EmptyPayload,
3161            fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3162        >(
3163            (),
3164            0x66552e68b99a0587,
3165            fidl::encoding::DynamicFlags::FLEXIBLE,
3166            ___deadline,
3167        )?
3168        .into_result::<OpenTargetMarker>("flexible_two_way")?;
3169        Ok(_response)
3170    }
3171
3172    pub fn r#flexible_two_way_fields(
3173        &self,
3174        ___deadline: zx::MonotonicInstant,
3175    ) -> Result<i32, fidl::Error> {
3176        let _response = self.client.send_query::<
3177            fidl::encoding::EmptyPayload,
3178            fidl::encoding::FlexibleType<NonEmptyPayload>,
3179        >(
3180            (),
3181            0x38b95648ac4e2ae4,
3182            fidl::encoding::DynamicFlags::FLEXIBLE,
3183            ___deadline,
3184        )?
3185        .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3186        Ok(_response.some_field)
3187    }
3188
3189    pub fn r#flexible_two_way_err(
3190        &self,
3191        ___deadline: zx::MonotonicInstant,
3192    ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3193        let _response = self.client.send_query::<
3194            fidl::encoding::EmptyPayload,
3195            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3196        >(
3197            (),
3198            0x6e144c6e0cf2147a,
3199            fidl::encoding::DynamicFlags::FLEXIBLE,
3200            ___deadline,
3201        )?
3202        .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3203        Ok(_response.map(|x| x))
3204    }
3205
3206    pub fn r#flexible_two_way_fields_err(
3207        &self,
3208        ___deadline: zx::MonotonicInstant,
3209    ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3210        let _response = self.client.send_query::<
3211            fidl::encoding::EmptyPayload,
3212            fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3213        >(
3214            (),
3215            0xe494147cda8024a,
3216            fidl::encoding::DynamicFlags::FLEXIBLE,
3217            ___deadline,
3218        )?
3219        .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3220        Ok(_response.map(|x| x.some_field))
3221    }
3222}
3223
3224#[cfg(target_os = "fuchsia")]
3225impl From<OpenTargetSynchronousProxy> for zx::Handle {
3226    fn from(value: OpenTargetSynchronousProxy) -> Self {
3227        value.into_channel().into()
3228    }
3229}
3230
3231#[cfg(target_os = "fuchsia")]
3232impl From<fidl::Channel> for OpenTargetSynchronousProxy {
3233    fn from(value: fidl::Channel) -> Self {
3234        Self::new(value)
3235    }
3236}
3237
3238#[cfg(target_os = "fuchsia")]
3239impl fidl::endpoints::FromClient for OpenTargetSynchronousProxy {
3240    type Protocol = OpenTargetMarker;
3241
3242    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetMarker>) -> Self {
3243        Self::new(value.into_channel())
3244    }
3245}
3246
3247#[derive(Debug, Clone)]
3248pub struct OpenTargetProxy {
3249    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
3250}
3251
3252impl fidl::endpoints::Proxy for OpenTargetProxy {
3253    type Protocol = OpenTargetMarker;
3254
3255    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
3256        Self::new(inner)
3257    }
3258
3259    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
3260        self.client.into_channel().map_err(|client| Self { client })
3261    }
3262
3263    fn as_channel(&self) -> &::fidl::AsyncChannel {
3264        self.client.as_channel()
3265    }
3266}
3267
3268impl OpenTargetProxy {
3269    /// Create a new Proxy for fidl.clientsuite/OpenTarget.
3270    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
3271        let protocol_name = <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
3272        Self { client: fidl::client::Client::new(channel, protocol_name) }
3273    }
3274
3275    /// Get a Stream of events from the remote end of the protocol.
3276    ///
3277    /// # Panics
3278    ///
3279    /// Panics if the event stream was already taken.
3280    pub fn take_event_stream(&self) -> OpenTargetEventStream {
3281        OpenTargetEventStream { event_receiver: self.client.take_event_receiver() }
3282    }
3283
3284    pub fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3285        OpenTargetProxyInterface::r#strict_one_way(self)
3286    }
3287
3288    pub fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3289        OpenTargetProxyInterface::r#flexible_one_way(self)
3290    }
3291
3292    pub fn r#strict_two_way(
3293        &self,
3294    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3295        OpenTargetProxyInterface::r#strict_two_way(self)
3296    }
3297
3298    pub fn r#strict_two_way_fields(
3299        &self,
3300    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3301        OpenTargetProxyInterface::r#strict_two_way_fields(self)
3302    }
3303
3304    pub fn r#strict_two_way_err(
3305        &self,
3306    ) -> fidl::client::QueryResponseFut<
3307        OpenTargetStrictTwoWayErrResult,
3308        fidl::encoding::DefaultFuchsiaResourceDialect,
3309    > {
3310        OpenTargetProxyInterface::r#strict_two_way_err(self)
3311    }
3312
3313    pub fn r#strict_two_way_fields_err(
3314        &self,
3315    ) -> fidl::client::QueryResponseFut<
3316        OpenTargetStrictTwoWayFieldsErrResult,
3317        fidl::encoding::DefaultFuchsiaResourceDialect,
3318    > {
3319        OpenTargetProxyInterface::r#strict_two_way_fields_err(self)
3320    }
3321
3322    pub fn r#flexible_two_way(
3323        &self,
3324    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
3325        OpenTargetProxyInterface::r#flexible_two_way(self)
3326    }
3327
3328    pub fn r#flexible_two_way_fields(
3329        &self,
3330    ) -> fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect> {
3331        OpenTargetProxyInterface::r#flexible_two_way_fields(self)
3332    }
3333
3334    pub fn r#flexible_two_way_err(
3335        &self,
3336    ) -> fidl::client::QueryResponseFut<
3337        OpenTargetFlexibleTwoWayErrResult,
3338        fidl::encoding::DefaultFuchsiaResourceDialect,
3339    > {
3340        OpenTargetProxyInterface::r#flexible_two_way_err(self)
3341    }
3342
3343    pub fn r#flexible_two_way_fields_err(
3344        &self,
3345    ) -> fidl::client::QueryResponseFut<
3346        OpenTargetFlexibleTwoWayFieldsErrResult,
3347        fidl::encoding::DefaultFuchsiaResourceDialect,
3348    > {
3349        OpenTargetProxyInterface::r#flexible_two_way_fields_err(self)
3350    }
3351}
3352
3353impl OpenTargetProxyInterface for OpenTargetProxy {
3354    fn r#strict_one_way(&self) -> Result<(), fidl::Error> {
3355        self.client.send::<fidl::encoding::EmptyPayload>(
3356            (),
3357            0x6db0bc21c4aae764,
3358            fidl::encoding::DynamicFlags::empty(),
3359        )
3360    }
3361
3362    fn r#flexible_one_way(&self) -> Result<(), fidl::Error> {
3363        self.client.send::<fidl::encoding::EmptyPayload>(
3364            (),
3365            0xf894a7eb9cc29fc,
3366            fidl::encoding::DynamicFlags::FLEXIBLE,
3367        )
3368    }
3369
3370    type StrictTwoWayResponseFut =
3371        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3372    fn r#strict_two_way(&self) -> Self::StrictTwoWayResponseFut {
3373        fn _decode(
3374            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3375        ) -> Result<(), fidl::Error> {
3376            let _response = fidl::client::decode_transaction_body::<
3377                fidl::encoding::EmptyPayload,
3378                fidl::encoding::DefaultFuchsiaResourceDialect,
3379                0xdcf4cef19a1c542,
3380            >(_buf?)?;
3381            Ok(_response)
3382        }
3383        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3384            (),
3385            0xdcf4cef19a1c542,
3386            fidl::encoding::DynamicFlags::empty(),
3387            _decode,
3388        )
3389    }
3390
3391    type StrictTwoWayFieldsResponseFut =
3392        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3393    fn r#strict_two_way_fields(&self) -> Self::StrictTwoWayFieldsResponseFut {
3394        fn _decode(
3395            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3396        ) -> Result<i32, fidl::Error> {
3397            let _response = fidl::client::decode_transaction_body::<
3398                NonEmptyPayload,
3399                fidl::encoding::DefaultFuchsiaResourceDialect,
3400                0x79c7a7803c45e2e3,
3401            >(_buf?)?;
3402            Ok(_response.some_field)
3403        }
3404        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3405            (),
3406            0x79c7a7803c45e2e3,
3407            fidl::encoding::DynamicFlags::empty(),
3408            _decode,
3409        )
3410    }
3411
3412    type StrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3413        OpenTargetStrictTwoWayErrResult,
3414        fidl::encoding::DefaultFuchsiaResourceDialect,
3415    >;
3416    fn r#strict_two_way_err(&self) -> Self::StrictTwoWayErrResponseFut {
3417        fn _decode(
3418            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3419        ) -> Result<OpenTargetStrictTwoWayErrResult, fidl::Error> {
3420            let _response = fidl::client::decode_transaction_body::<
3421                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
3422                fidl::encoding::DefaultFuchsiaResourceDialect,
3423                0x54259ed6c262fe88,
3424            >(_buf?)?;
3425            Ok(_response.map(|x| x))
3426        }
3427        self.client
3428            .send_query_and_decode::<fidl::encoding::EmptyPayload, OpenTargetStrictTwoWayErrResult>(
3429                (),
3430                0x54259ed6c262fe88,
3431                fidl::encoding::DynamicFlags::empty(),
3432                _decode,
3433            )
3434    }
3435
3436    type StrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3437        OpenTargetStrictTwoWayFieldsErrResult,
3438        fidl::encoding::DefaultFuchsiaResourceDialect,
3439    >;
3440    fn r#strict_two_way_fields_err(&self) -> Self::StrictTwoWayFieldsErrResponseFut {
3441        fn _decode(
3442            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3443        ) -> Result<OpenTargetStrictTwoWayFieldsErrResult, fidl::Error> {
3444            let _response = fidl::client::decode_transaction_body::<
3445                fidl::encoding::ResultType<NonEmptyPayload, i32>,
3446                fidl::encoding::DefaultFuchsiaResourceDialect,
3447                0x7dbaa8538b552711,
3448            >(_buf?)?;
3449            Ok(_response.map(|x| x.some_field))
3450        }
3451        self.client.send_query_and_decode::<
3452            fidl::encoding::EmptyPayload,
3453            OpenTargetStrictTwoWayFieldsErrResult,
3454        >(
3455            (),
3456            0x7dbaa8538b552711,
3457            fidl::encoding::DynamicFlags::empty(),
3458            _decode,
3459        )
3460    }
3461
3462    type FlexibleTwoWayResponseFut =
3463        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
3464    fn r#flexible_two_way(&self) -> Self::FlexibleTwoWayResponseFut {
3465        fn _decode(
3466            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3467        ) -> Result<(), fidl::Error> {
3468            let _response = fidl::client::decode_transaction_body::<
3469                fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>,
3470                fidl::encoding::DefaultFuchsiaResourceDialect,
3471                0x66552e68b99a0587,
3472            >(_buf?)?
3473            .into_result::<OpenTargetMarker>("flexible_two_way")?;
3474            Ok(_response)
3475        }
3476        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
3477            (),
3478            0x66552e68b99a0587,
3479            fidl::encoding::DynamicFlags::FLEXIBLE,
3480            _decode,
3481        )
3482    }
3483
3484    type FlexibleTwoWayFieldsResponseFut =
3485        fidl::client::QueryResponseFut<i32, fidl::encoding::DefaultFuchsiaResourceDialect>;
3486    fn r#flexible_two_way_fields(&self) -> Self::FlexibleTwoWayFieldsResponseFut {
3487        fn _decode(
3488            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3489        ) -> Result<i32, fidl::Error> {
3490            let _response = fidl::client::decode_transaction_body::<
3491                fidl::encoding::FlexibleType<NonEmptyPayload>,
3492                fidl::encoding::DefaultFuchsiaResourceDialect,
3493                0x38b95648ac4e2ae4,
3494            >(_buf?)?
3495            .into_result::<OpenTargetMarker>("flexible_two_way_fields")?;
3496            Ok(_response.some_field)
3497        }
3498        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, i32>(
3499            (),
3500            0x38b95648ac4e2ae4,
3501            fidl::encoding::DynamicFlags::FLEXIBLE,
3502            _decode,
3503        )
3504    }
3505
3506    type FlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
3507        OpenTargetFlexibleTwoWayErrResult,
3508        fidl::encoding::DefaultFuchsiaResourceDialect,
3509    >;
3510    fn r#flexible_two_way_err(&self) -> Self::FlexibleTwoWayErrResponseFut {
3511        fn _decode(
3512            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3513        ) -> Result<OpenTargetFlexibleTwoWayErrResult, fidl::Error> {
3514            let _response = fidl::client::decode_transaction_body::<
3515                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
3516                fidl::encoding::DefaultFuchsiaResourceDialect,
3517                0x6e144c6e0cf2147a,
3518            >(_buf?)?
3519            .into_result::<OpenTargetMarker>("flexible_two_way_err")?;
3520            Ok(_response.map(|x| x))
3521        }
3522        self.client.send_query_and_decode::<
3523            fidl::encoding::EmptyPayload,
3524            OpenTargetFlexibleTwoWayErrResult,
3525        >(
3526            (),
3527            0x6e144c6e0cf2147a,
3528            fidl::encoding::DynamicFlags::FLEXIBLE,
3529            _decode,
3530        )
3531    }
3532
3533    type FlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
3534        OpenTargetFlexibleTwoWayFieldsErrResult,
3535        fidl::encoding::DefaultFuchsiaResourceDialect,
3536    >;
3537    fn r#flexible_two_way_fields_err(&self) -> Self::FlexibleTwoWayFieldsErrResponseFut {
3538        fn _decode(
3539            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
3540        ) -> Result<OpenTargetFlexibleTwoWayFieldsErrResult, fidl::Error> {
3541            let _response = fidl::client::decode_transaction_body::<
3542                fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>,
3543                fidl::encoding::DefaultFuchsiaResourceDialect,
3544                0xe494147cda8024a,
3545            >(_buf?)?
3546            .into_result::<OpenTargetMarker>("flexible_two_way_fields_err")?;
3547            Ok(_response.map(|x| x.some_field))
3548        }
3549        self.client.send_query_and_decode::<
3550            fidl::encoding::EmptyPayload,
3551            OpenTargetFlexibleTwoWayFieldsErrResult,
3552        >(
3553            (),
3554            0xe494147cda8024a,
3555            fidl::encoding::DynamicFlags::FLEXIBLE,
3556            _decode,
3557        )
3558    }
3559}
3560
3561pub struct OpenTargetEventStream {
3562    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
3563}
3564
3565impl std::marker::Unpin for OpenTargetEventStream {}
3566
3567impl futures::stream::FusedStream for OpenTargetEventStream {
3568    fn is_terminated(&self) -> bool {
3569        self.event_receiver.is_terminated()
3570    }
3571}
3572
3573impl futures::Stream for OpenTargetEventStream {
3574    type Item = Result<OpenTargetEvent, fidl::Error>;
3575
3576    fn poll_next(
3577        mut self: std::pin::Pin<&mut Self>,
3578        cx: &mut std::task::Context<'_>,
3579    ) -> std::task::Poll<Option<Self::Item>> {
3580        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
3581            &mut self.event_receiver,
3582            cx
3583        )?) {
3584            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEvent::decode(buf))),
3585            None => std::task::Poll::Ready(None),
3586        }
3587    }
3588}
3589
3590#[derive(Debug)]
3591pub enum OpenTargetEvent {
3592    StrictEvent {},
3593    FlexibleEvent {},
3594    #[non_exhaustive]
3595    _UnknownEvent {
3596        /// Ordinal of the event that was sent.
3597        ordinal: u64,
3598    },
3599}
3600
3601impl OpenTargetEvent {
3602    #[allow(irrefutable_let_patterns)]
3603    pub fn into_strict_event(self) -> Option<()> {
3604        if let OpenTargetEvent::StrictEvent {} = self { Some(()) } else { None }
3605    }
3606    #[allow(irrefutable_let_patterns)]
3607    pub fn into_flexible_event(self) -> Option<()> {
3608        if let OpenTargetEvent::FlexibleEvent {} = self { Some(()) } else { None }
3609    }
3610
3611    /// Decodes a message buffer as a [`OpenTargetEvent`].
3612    fn decode(
3613        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
3614    ) -> Result<OpenTargetEvent, fidl::Error> {
3615        let (bytes, _handles) = buf.split_mut();
3616        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3617        debug_assert_eq!(tx_header.tx_id, 0);
3618        match tx_header.ordinal {
3619            0x2b291d74321e77a0 => {
3620                let mut out = fidl::new_empty!(
3621                    fidl::encoding::EmptyPayload,
3622                    fidl::encoding::DefaultFuchsiaResourceDialect
3623                );
3624                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3625                Ok((OpenTargetEvent::StrictEvent {}))
3626            }
3627            0x50d4688058898898 => {
3628                let mut out = fidl::new_empty!(
3629                    fidl::encoding::EmptyPayload,
3630                    fidl::encoding::DefaultFuchsiaResourceDialect
3631                );
3632                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&tx_header, _body_bytes, _handles, &mut out)?;
3633                Ok((OpenTargetEvent::FlexibleEvent {}))
3634            }
3635            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
3636                Ok(OpenTargetEvent::_UnknownEvent { ordinal: tx_header.ordinal })
3637            }
3638            _ => Err(fidl::Error::UnknownOrdinal {
3639                ordinal: tx_header.ordinal,
3640                protocol_name: <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3641            }),
3642        }
3643    }
3644}
3645
3646/// A Stream of incoming requests for fidl.clientsuite/OpenTarget.
3647pub struct OpenTargetRequestStream {
3648    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3649    is_terminated: bool,
3650}
3651
3652impl std::marker::Unpin for OpenTargetRequestStream {}
3653
3654impl futures::stream::FusedStream for OpenTargetRequestStream {
3655    fn is_terminated(&self) -> bool {
3656        self.is_terminated
3657    }
3658}
3659
3660impl fidl::endpoints::RequestStream for OpenTargetRequestStream {
3661    type Protocol = OpenTargetMarker;
3662    type ControlHandle = OpenTargetControlHandle;
3663
3664    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
3665        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
3666    }
3667
3668    fn control_handle(&self) -> Self::ControlHandle {
3669        OpenTargetControlHandle { inner: self.inner.clone() }
3670    }
3671
3672    fn into_inner(
3673        self,
3674    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
3675    {
3676        (self.inner, self.is_terminated)
3677    }
3678
3679    fn from_inner(
3680        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3681        is_terminated: bool,
3682    ) -> Self {
3683        Self { inner, is_terminated }
3684    }
3685}
3686
3687impl futures::Stream for OpenTargetRequestStream {
3688    type Item = Result<OpenTargetRequest, fidl::Error>;
3689
3690    fn poll_next(
3691        mut self: std::pin::Pin<&mut Self>,
3692        cx: &mut std::task::Context<'_>,
3693    ) -> std::task::Poll<Option<Self::Item>> {
3694        let this = &mut *self;
3695        if this.inner.check_shutdown(cx) {
3696            this.is_terminated = true;
3697            return std::task::Poll::Ready(None);
3698        }
3699        if this.is_terminated {
3700            panic!("polled OpenTargetRequestStream after completion");
3701        }
3702        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
3703            |bytes, handles| {
3704                match this.inner.channel().read_etc(cx, bytes, handles) {
3705                    std::task::Poll::Ready(Ok(())) => {}
3706                    std::task::Poll::Pending => return std::task::Poll::Pending,
3707                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
3708                        this.is_terminated = true;
3709                        return std::task::Poll::Ready(None);
3710                    }
3711                    std::task::Poll::Ready(Err(e)) => {
3712                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
3713                            e.into(),
3714                        ))));
3715                    }
3716                }
3717
3718                // A message has been received from the channel
3719                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
3720
3721                std::task::Poll::Ready(Some(match header.ordinal {
3722                    0x6db0bc21c4aae764 => {
3723                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3724                        let mut req = fidl::new_empty!(
3725                            fidl::encoding::EmptyPayload,
3726                            fidl::encoding::DefaultFuchsiaResourceDialect
3727                        );
3728                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3729                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3730                        Ok(OpenTargetRequest::StrictOneWay { control_handle })
3731                    }
3732                    0xf894a7eb9cc29fc => {
3733                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
3734                        let mut req = fidl::new_empty!(
3735                            fidl::encoding::EmptyPayload,
3736                            fidl::encoding::DefaultFuchsiaResourceDialect
3737                        );
3738                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3739                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3740                        Ok(OpenTargetRequest::FlexibleOneWay { control_handle })
3741                    }
3742                    0xdcf4cef19a1c542 => {
3743                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3744                        let mut req = fidl::new_empty!(
3745                            fidl::encoding::EmptyPayload,
3746                            fidl::encoding::DefaultFuchsiaResourceDialect
3747                        );
3748                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3749                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3750                        Ok(OpenTargetRequest::StrictTwoWay {
3751                            responder: OpenTargetStrictTwoWayResponder {
3752                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3753                                tx_id: header.tx_id,
3754                            },
3755                        })
3756                    }
3757                    0x79c7a7803c45e2e3 => {
3758                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3759                        let mut req = fidl::new_empty!(
3760                            fidl::encoding::EmptyPayload,
3761                            fidl::encoding::DefaultFuchsiaResourceDialect
3762                        );
3763                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3764                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3765                        Ok(OpenTargetRequest::StrictTwoWayFields {
3766                            responder: OpenTargetStrictTwoWayFieldsResponder {
3767                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3768                                tx_id: header.tx_id,
3769                            },
3770                        })
3771                    }
3772                    0x54259ed6c262fe88 => {
3773                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3774                        let mut req = fidl::new_empty!(
3775                            fidl::encoding::EmptyPayload,
3776                            fidl::encoding::DefaultFuchsiaResourceDialect
3777                        );
3778                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3779                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3780                        Ok(OpenTargetRequest::StrictTwoWayErr {
3781                            responder: OpenTargetStrictTwoWayErrResponder {
3782                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3783                                tx_id: header.tx_id,
3784                            },
3785                        })
3786                    }
3787                    0x7dbaa8538b552711 => {
3788                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3789                        let mut req = fidl::new_empty!(
3790                            fidl::encoding::EmptyPayload,
3791                            fidl::encoding::DefaultFuchsiaResourceDialect
3792                        );
3793                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3794                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3795                        Ok(OpenTargetRequest::StrictTwoWayFieldsErr {
3796                            responder: OpenTargetStrictTwoWayFieldsErrResponder {
3797                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3798                                tx_id: header.tx_id,
3799                            },
3800                        })
3801                    }
3802                    0x66552e68b99a0587 => {
3803                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3804                        let mut req = fidl::new_empty!(
3805                            fidl::encoding::EmptyPayload,
3806                            fidl::encoding::DefaultFuchsiaResourceDialect
3807                        );
3808                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3809                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3810                        Ok(OpenTargetRequest::FlexibleTwoWay {
3811                            responder: OpenTargetFlexibleTwoWayResponder {
3812                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3813                                tx_id: header.tx_id,
3814                            },
3815                        })
3816                    }
3817                    0x38b95648ac4e2ae4 => {
3818                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3819                        let mut req = fidl::new_empty!(
3820                            fidl::encoding::EmptyPayload,
3821                            fidl::encoding::DefaultFuchsiaResourceDialect
3822                        );
3823                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3824                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3825                        Ok(OpenTargetRequest::FlexibleTwoWayFields {
3826                            responder: OpenTargetFlexibleTwoWayFieldsResponder {
3827                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3828                                tx_id: header.tx_id,
3829                            },
3830                        })
3831                    }
3832                    0x6e144c6e0cf2147a => {
3833                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3834                        let mut req = fidl::new_empty!(
3835                            fidl::encoding::EmptyPayload,
3836                            fidl::encoding::DefaultFuchsiaResourceDialect
3837                        );
3838                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3839                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3840                        Ok(OpenTargetRequest::FlexibleTwoWayErr {
3841                            responder: OpenTargetFlexibleTwoWayErrResponder {
3842                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3843                                tx_id: header.tx_id,
3844                            },
3845                        })
3846                    }
3847                    0xe494147cda8024a => {
3848                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3849                        let mut req = fidl::new_empty!(
3850                            fidl::encoding::EmptyPayload,
3851                            fidl::encoding::DefaultFuchsiaResourceDialect
3852                        );
3853                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3854                        let control_handle = OpenTargetControlHandle { inner: this.inner.clone() };
3855                        Ok(OpenTargetRequest::FlexibleTwoWayFieldsErr {
3856                            responder: OpenTargetFlexibleTwoWayFieldsErrResponder {
3857                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3858                                tx_id: header.tx_id,
3859                            },
3860                        })
3861                    }
3862                    _ if header.tx_id == 0
3863                        && header
3864                            .dynamic_flags()
3865                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3866                    {
3867                        Ok(OpenTargetRequest::_UnknownMethod {
3868                            ordinal: header.ordinal,
3869                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3870                            method_type: fidl::MethodType::OneWay,
3871                        })
3872                    }
3873                    _ if header
3874                        .dynamic_flags()
3875                        .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3876                    {
3877                        this.inner.send_framework_err(
3878                            fidl::encoding::FrameworkErr::UnknownMethod,
3879                            header.tx_id,
3880                            header.ordinal,
3881                            header.dynamic_flags(),
3882                            (bytes, handles),
3883                        )?;
3884                        Ok(OpenTargetRequest::_UnknownMethod {
3885                            ordinal: header.ordinal,
3886                            control_handle: OpenTargetControlHandle { inner: this.inner.clone() },
3887                            method_type: fidl::MethodType::TwoWay,
3888                        })
3889                    }
3890                    _ => Err(fidl::Error::UnknownOrdinal {
3891                        ordinal: header.ordinal,
3892                        protocol_name:
3893                            <OpenTargetMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3894                    }),
3895                }))
3896            },
3897        )
3898    }
3899}
3900
3901#[derive(Debug)]
3902pub enum OpenTargetRequest {
3903    StrictOneWay {
3904        control_handle: OpenTargetControlHandle,
3905    },
3906    FlexibleOneWay {
3907        control_handle: OpenTargetControlHandle,
3908    },
3909    StrictTwoWay {
3910        responder: OpenTargetStrictTwoWayResponder,
3911    },
3912    StrictTwoWayFields {
3913        responder: OpenTargetStrictTwoWayFieldsResponder,
3914    },
3915    StrictTwoWayErr {
3916        responder: OpenTargetStrictTwoWayErrResponder,
3917    },
3918    StrictTwoWayFieldsErr {
3919        responder: OpenTargetStrictTwoWayFieldsErrResponder,
3920    },
3921    FlexibleTwoWay {
3922        responder: OpenTargetFlexibleTwoWayResponder,
3923    },
3924    FlexibleTwoWayFields {
3925        responder: OpenTargetFlexibleTwoWayFieldsResponder,
3926    },
3927    FlexibleTwoWayErr {
3928        responder: OpenTargetFlexibleTwoWayErrResponder,
3929    },
3930    FlexibleTwoWayFieldsErr {
3931        responder: OpenTargetFlexibleTwoWayFieldsErrResponder,
3932    },
3933    /// An interaction was received which does not match any known method.
3934    #[non_exhaustive]
3935    _UnknownMethod {
3936        /// Ordinal of the method that was called.
3937        ordinal: u64,
3938        control_handle: OpenTargetControlHandle,
3939        method_type: fidl::MethodType,
3940    },
3941}
3942
3943impl OpenTargetRequest {
3944    #[allow(irrefutable_let_patterns)]
3945    pub fn into_strict_one_way(self) -> Option<(OpenTargetControlHandle)> {
3946        if let OpenTargetRequest::StrictOneWay { control_handle } = self {
3947            Some((control_handle))
3948        } else {
3949            None
3950        }
3951    }
3952
3953    #[allow(irrefutable_let_patterns)]
3954    pub fn into_flexible_one_way(self) -> Option<(OpenTargetControlHandle)> {
3955        if let OpenTargetRequest::FlexibleOneWay { control_handle } = self {
3956            Some((control_handle))
3957        } else {
3958            None
3959        }
3960    }
3961
3962    #[allow(irrefutable_let_patterns)]
3963    pub fn into_strict_two_way(self) -> Option<(OpenTargetStrictTwoWayResponder)> {
3964        if let OpenTargetRequest::StrictTwoWay { responder } = self {
3965            Some((responder))
3966        } else {
3967            None
3968        }
3969    }
3970
3971    #[allow(irrefutable_let_patterns)]
3972    pub fn into_strict_two_way_fields(self) -> Option<(OpenTargetStrictTwoWayFieldsResponder)> {
3973        if let OpenTargetRequest::StrictTwoWayFields { responder } = self {
3974            Some((responder))
3975        } else {
3976            None
3977        }
3978    }
3979
3980    #[allow(irrefutable_let_patterns)]
3981    pub fn into_strict_two_way_err(self) -> Option<(OpenTargetStrictTwoWayErrResponder)> {
3982        if let OpenTargetRequest::StrictTwoWayErr { responder } = self {
3983            Some((responder))
3984        } else {
3985            None
3986        }
3987    }
3988
3989    #[allow(irrefutable_let_patterns)]
3990    pub fn into_strict_two_way_fields_err(
3991        self,
3992    ) -> Option<(OpenTargetStrictTwoWayFieldsErrResponder)> {
3993        if let OpenTargetRequest::StrictTwoWayFieldsErr { responder } = self {
3994            Some((responder))
3995        } else {
3996            None
3997        }
3998    }
3999
4000    #[allow(irrefutable_let_patterns)]
4001    pub fn into_flexible_two_way(self) -> Option<(OpenTargetFlexibleTwoWayResponder)> {
4002        if let OpenTargetRequest::FlexibleTwoWay { responder } = self {
4003            Some((responder))
4004        } else {
4005            None
4006        }
4007    }
4008
4009    #[allow(irrefutable_let_patterns)]
4010    pub fn into_flexible_two_way_fields(self) -> Option<(OpenTargetFlexibleTwoWayFieldsResponder)> {
4011        if let OpenTargetRequest::FlexibleTwoWayFields { responder } = self {
4012            Some((responder))
4013        } else {
4014            None
4015        }
4016    }
4017
4018    #[allow(irrefutable_let_patterns)]
4019    pub fn into_flexible_two_way_err(self) -> Option<(OpenTargetFlexibleTwoWayErrResponder)> {
4020        if let OpenTargetRequest::FlexibleTwoWayErr { responder } = self {
4021            Some((responder))
4022        } else {
4023            None
4024        }
4025    }
4026
4027    #[allow(irrefutable_let_patterns)]
4028    pub fn into_flexible_two_way_fields_err(
4029        self,
4030    ) -> Option<(OpenTargetFlexibleTwoWayFieldsErrResponder)> {
4031        if let OpenTargetRequest::FlexibleTwoWayFieldsErr { responder } = self {
4032            Some((responder))
4033        } else {
4034            None
4035        }
4036    }
4037
4038    /// Name of the method defined in FIDL
4039    pub fn method_name(&self) -> &'static str {
4040        match *self {
4041            OpenTargetRequest::StrictOneWay { .. } => "strict_one_way",
4042            OpenTargetRequest::FlexibleOneWay { .. } => "flexible_one_way",
4043            OpenTargetRequest::StrictTwoWay { .. } => "strict_two_way",
4044            OpenTargetRequest::StrictTwoWayFields { .. } => "strict_two_way_fields",
4045            OpenTargetRequest::StrictTwoWayErr { .. } => "strict_two_way_err",
4046            OpenTargetRequest::StrictTwoWayFieldsErr { .. } => "strict_two_way_fields_err",
4047            OpenTargetRequest::FlexibleTwoWay { .. } => "flexible_two_way",
4048            OpenTargetRequest::FlexibleTwoWayFields { .. } => "flexible_two_way_fields",
4049            OpenTargetRequest::FlexibleTwoWayErr { .. } => "flexible_two_way_err",
4050            OpenTargetRequest::FlexibleTwoWayFieldsErr { .. } => "flexible_two_way_fields_err",
4051            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::OneWay, .. } => {
4052                "unknown one-way method"
4053            }
4054            OpenTargetRequest::_UnknownMethod { method_type: fidl::MethodType::TwoWay, .. } => {
4055                "unknown two-way method"
4056            }
4057        }
4058    }
4059}
4060
4061#[derive(Debug, Clone)]
4062pub struct OpenTargetControlHandle {
4063    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4064}
4065
4066impl fidl::endpoints::ControlHandle for OpenTargetControlHandle {
4067    fn shutdown(&self) {
4068        self.inner.shutdown()
4069    }
4070    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4071        self.inner.shutdown_with_epitaph(status)
4072    }
4073
4074    fn is_closed(&self) -> bool {
4075        self.inner.channel().is_closed()
4076    }
4077    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4078        self.inner.channel().on_closed()
4079    }
4080
4081    #[cfg(target_os = "fuchsia")]
4082    fn signal_peer(
4083        &self,
4084        clear_mask: zx::Signals,
4085        set_mask: zx::Signals,
4086    ) -> Result<(), zx_status::Status> {
4087        use fidl::Peered;
4088        self.inner.channel().signal_peer(clear_mask, set_mask)
4089    }
4090}
4091
4092impl OpenTargetControlHandle {
4093    pub fn send_strict_event(&self) -> Result<(), fidl::Error> {
4094        self.inner.send::<fidl::encoding::EmptyPayload>(
4095            (),
4096            0,
4097            0x2b291d74321e77a0,
4098            fidl::encoding::DynamicFlags::empty(),
4099        )
4100    }
4101
4102    pub fn send_flexible_event(&self) -> Result<(), fidl::Error> {
4103        self.inner.send::<fidl::encoding::EmptyPayload>(
4104            (),
4105            0,
4106            0x50d4688058898898,
4107            fidl::encoding::DynamicFlags::FLEXIBLE,
4108        )
4109    }
4110}
4111
4112#[must_use = "FIDL methods require a response to be sent"]
4113#[derive(Debug)]
4114pub struct OpenTargetStrictTwoWayResponder {
4115    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4116    tx_id: u32,
4117}
4118
4119/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4120/// if the responder is dropped without sending a response, so that the client
4121/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4122impl std::ops::Drop for OpenTargetStrictTwoWayResponder {
4123    fn drop(&mut self) {
4124        self.control_handle.shutdown();
4125        // Safety: drops once, never accessed again
4126        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4127    }
4128}
4129
4130impl fidl::endpoints::Responder for OpenTargetStrictTwoWayResponder {
4131    type ControlHandle = OpenTargetControlHandle;
4132
4133    fn control_handle(&self) -> &OpenTargetControlHandle {
4134        &self.control_handle
4135    }
4136
4137    fn drop_without_shutdown(mut self) {
4138        // Safety: drops once, never accessed again due to mem::forget
4139        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4140        // Prevent Drop from running (which would shut down the channel)
4141        std::mem::forget(self);
4142    }
4143}
4144
4145impl OpenTargetStrictTwoWayResponder {
4146    /// Sends a response to the FIDL transaction.
4147    ///
4148    /// Sets the channel to shutdown if an error occurs.
4149    pub fn send(self) -> Result<(), fidl::Error> {
4150        let _result = self.send_raw();
4151        if _result.is_err() {
4152            self.control_handle.shutdown();
4153        }
4154        self.drop_without_shutdown();
4155        _result
4156    }
4157
4158    /// Similar to "send" but does not shutdown the channel if an error occurs.
4159    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4160        let _result = self.send_raw();
4161        self.drop_without_shutdown();
4162        _result
4163    }
4164
4165    fn send_raw(&self) -> Result<(), fidl::Error> {
4166        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4167            (),
4168            self.tx_id,
4169            0xdcf4cef19a1c542,
4170            fidl::encoding::DynamicFlags::empty(),
4171        )
4172    }
4173}
4174
4175#[must_use = "FIDL methods require a response to be sent"]
4176#[derive(Debug)]
4177pub struct OpenTargetStrictTwoWayFieldsResponder {
4178    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4179    tx_id: u32,
4180}
4181
4182/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4183/// if the responder is dropped without sending a response, so that the client
4184/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4185impl std::ops::Drop for OpenTargetStrictTwoWayFieldsResponder {
4186    fn drop(&mut self) {
4187        self.control_handle.shutdown();
4188        // Safety: drops once, never accessed again
4189        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4190    }
4191}
4192
4193impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsResponder {
4194    type ControlHandle = OpenTargetControlHandle;
4195
4196    fn control_handle(&self) -> &OpenTargetControlHandle {
4197        &self.control_handle
4198    }
4199
4200    fn drop_without_shutdown(mut self) {
4201        // Safety: drops once, never accessed again due to mem::forget
4202        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4203        // Prevent Drop from running (which would shut down the channel)
4204        std::mem::forget(self);
4205    }
4206}
4207
4208impl OpenTargetStrictTwoWayFieldsResponder {
4209    /// Sends a response to the FIDL transaction.
4210    ///
4211    /// Sets the channel to shutdown if an error occurs.
4212    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4213        let _result = self.send_raw(some_field);
4214        if _result.is_err() {
4215            self.control_handle.shutdown();
4216        }
4217        self.drop_without_shutdown();
4218        _result
4219    }
4220
4221    /// Similar to "send" but does not shutdown the channel if an error occurs.
4222    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4223        let _result = self.send_raw(some_field);
4224        self.drop_without_shutdown();
4225        _result
4226    }
4227
4228    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4229        self.control_handle.inner.send::<NonEmptyPayload>(
4230            (some_field,),
4231            self.tx_id,
4232            0x79c7a7803c45e2e3,
4233            fidl::encoding::DynamicFlags::empty(),
4234        )
4235    }
4236}
4237
4238#[must_use = "FIDL methods require a response to be sent"]
4239#[derive(Debug)]
4240pub struct OpenTargetStrictTwoWayErrResponder {
4241    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4242    tx_id: u32,
4243}
4244
4245/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4246/// if the responder is dropped without sending a response, so that the client
4247/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4248impl std::ops::Drop for OpenTargetStrictTwoWayErrResponder {
4249    fn drop(&mut self) {
4250        self.control_handle.shutdown();
4251        // Safety: drops once, never accessed again
4252        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4253    }
4254}
4255
4256impl fidl::endpoints::Responder for OpenTargetStrictTwoWayErrResponder {
4257    type ControlHandle = OpenTargetControlHandle;
4258
4259    fn control_handle(&self) -> &OpenTargetControlHandle {
4260        &self.control_handle
4261    }
4262
4263    fn drop_without_shutdown(mut self) {
4264        // Safety: drops once, never accessed again due to mem::forget
4265        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4266        // Prevent Drop from running (which would shut down the channel)
4267        std::mem::forget(self);
4268    }
4269}
4270
4271impl OpenTargetStrictTwoWayErrResponder {
4272    /// Sends a response to the FIDL transaction.
4273    ///
4274    /// Sets the channel to shutdown if an error occurs.
4275    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4276        let _result = self.send_raw(result);
4277        if _result.is_err() {
4278            self.control_handle.shutdown();
4279        }
4280        self.drop_without_shutdown();
4281        _result
4282    }
4283
4284    /// Similar to "send" but does not shutdown the channel if an error occurs.
4285    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4286        let _result = self.send_raw(result);
4287        self.drop_without_shutdown();
4288        _result
4289    }
4290
4291    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4292        self.control_handle
4293            .inner
4294            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4295                result,
4296                self.tx_id,
4297                0x54259ed6c262fe88,
4298                fidl::encoding::DynamicFlags::empty(),
4299            )
4300    }
4301}
4302
4303#[must_use = "FIDL methods require a response to be sent"]
4304#[derive(Debug)]
4305pub struct OpenTargetStrictTwoWayFieldsErrResponder {
4306    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4307    tx_id: u32,
4308}
4309
4310/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4311/// if the responder is dropped without sending a response, so that the client
4312/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4313impl std::ops::Drop for OpenTargetStrictTwoWayFieldsErrResponder {
4314    fn drop(&mut self) {
4315        self.control_handle.shutdown();
4316        // Safety: drops once, never accessed again
4317        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4318    }
4319}
4320
4321impl fidl::endpoints::Responder for OpenTargetStrictTwoWayFieldsErrResponder {
4322    type ControlHandle = OpenTargetControlHandle;
4323
4324    fn control_handle(&self) -> &OpenTargetControlHandle {
4325        &self.control_handle
4326    }
4327
4328    fn drop_without_shutdown(mut self) {
4329        // Safety: drops once, never accessed again due to mem::forget
4330        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4331        // Prevent Drop from running (which would shut down the channel)
4332        std::mem::forget(self);
4333    }
4334}
4335
4336impl OpenTargetStrictTwoWayFieldsErrResponder {
4337    /// Sends a response to the FIDL transaction.
4338    ///
4339    /// Sets the channel to shutdown if an error occurs.
4340    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4341        let _result = self.send_raw(result);
4342        if _result.is_err() {
4343            self.control_handle.shutdown();
4344        }
4345        self.drop_without_shutdown();
4346        _result
4347    }
4348
4349    /// Similar to "send" but does not shutdown the channel if an error occurs.
4350    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4351        let _result = self.send_raw(result);
4352        self.drop_without_shutdown();
4353        _result
4354    }
4355
4356    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4357        self.control_handle.inner.send::<fidl::encoding::ResultType<NonEmptyPayload, i32>>(
4358            result.map(|some_field| (some_field,)),
4359            self.tx_id,
4360            0x7dbaa8538b552711,
4361            fidl::encoding::DynamicFlags::empty(),
4362        )
4363    }
4364}
4365
4366#[must_use = "FIDL methods require a response to be sent"]
4367#[derive(Debug)]
4368pub struct OpenTargetFlexibleTwoWayResponder {
4369    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4370    tx_id: u32,
4371}
4372
4373/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4374/// if the responder is dropped without sending a response, so that the client
4375/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4376impl std::ops::Drop for OpenTargetFlexibleTwoWayResponder {
4377    fn drop(&mut self) {
4378        self.control_handle.shutdown();
4379        // Safety: drops once, never accessed again
4380        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4381    }
4382}
4383
4384impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayResponder {
4385    type ControlHandle = OpenTargetControlHandle;
4386
4387    fn control_handle(&self) -> &OpenTargetControlHandle {
4388        &self.control_handle
4389    }
4390
4391    fn drop_without_shutdown(mut self) {
4392        // Safety: drops once, never accessed again due to mem::forget
4393        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4394        // Prevent Drop from running (which would shut down the channel)
4395        std::mem::forget(self);
4396    }
4397}
4398
4399impl OpenTargetFlexibleTwoWayResponder {
4400    /// Sends a response to the FIDL transaction.
4401    ///
4402    /// Sets the channel to shutdown if an error occurs.
4403    pub fn send(self) -> Result<(), fidl::Error> {
4404        let _result = self.send_raw();
4405        if _result.is_err() {
4406            self.control_handle.shutdown();
4407        }
4408        self.drop_without_shutdown();
4409        _result
4410    }
4411
4412    /// Similar to "send" but does not shutdown the channel if an error occurs.
4413    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4414        let _result = self.send_raw();
4415        self.drop_without_shutdown();
4416        _result
4417    }
4418
4419    fn send_raw(&self) -> Result<(), fidl::Error> {
4420        self.control_handle.inner.send::<fidl::encoding::FlexibleType<fidl::encoding::EmptyStruct>>(
4421            fidl::encoding::Flexible::new(()),
4422            self.tx_id,
4423            0x66552e68b99a0587,
4424            fidl::encoding::DynamicFlags::FLEXIBLE,
4425        )
4426    }
4427}
4428
4429#[must_use = "FIDL methods require a response to be sent"]
4430#[derive(Debug)]
4431pub struct OpenTargetFlexibleTwoWayFieldsResponder {
4432    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4433    tx_id: u32,
4434}
4435
4436/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4437/// if the responder is dropped without sending a response, so that the client
4438/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4439impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsResponder {
4440    fn drop(&mut self) {
4441        self.control_handle.shutdown();
4442        // Safety: drops once, never accessed again
4443        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4444    }
4445}
4446
4447impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsResponder {
4448    type ControlHandle = OpenTargetControlHandle;
4449
4450    fn control_handle(&self) -> &OpenTargetControlHandle {
4451        &self.control_handle
4452    }
4453
4454    fn drop_without_shutdown(mut self) {
4455        // Safety: drops once, never accessed again due to mem::forget
4456        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4457        // Prevent Drop from running (which would shut down the channel)
4458        std::mem::forget(self);
4459    }
4460}
4461
4462impl OpenTargetFlexibleTwoWayFieldsResponder {
4463    /// Sends a response to the FIDL transaction.
4464    ///
4465    /// Sets the channel to shutdown if an error occurs.
4466    pub fn send(self, mut some_field: i32) -> Result<(), fidl::Error> {
4467        let _result = self.send_raw(some_field);
4468        if _result.is_err() {
4469            self.control_handle.shutdown();
4470        }
4471        self.drop_without_shutdown();
4472        _result
4473    }
4474
4475    /// Similar to "send" but does not shutdown the channel if an error occurs.
4476    pub fn send_no_shutdown_on_err(self, mut some_field: i32) -> Result<(), fidl::Error> {
4477        let _result = self.send_raw(some_field);
4478        self.drop_without_shutdown();
4479        _result
4480    }
4481
4482    fn send_raw(&self, mut some_field: i32) -> Result<(), fidl::Error> {
4483        self.control_handle.inner.send::<fidl::encoding::FlexibleType<NonEmptyPayload>>(
4484            fidl::encoding::Flexible::new((some_field,)),
4485            self.tx_id,
4486            0x38b95648ac4e2ae4,
4487            fidl::encoding::DynamicFlags::FLEXIBLE,
4488        )
4489    }
4490}
4491
4492#[must_use = "FIDL methods require a response to be sent"]
4493#[derive(Debug)]
4494pub struct OpenTargetFlexibleTwoWayErrResponder {
4495    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4496    tx_id: u32,
4497}
4498
4499/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4500/// if the responder is dropped without sending a response, so that the client
4501/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4502impl std::ops::Drop for OpenTargetFlexibleTwoWayErrResponder {
4503    fn drop(&mut self) {
4504        self.control_handle.shutdown();
4505        // Safety: drops once, never accessed again
4506        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4507    }
4508}
4509
4510impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayErrResponder {
4511    type ControlHandle = OpenTargetControlHandle;
4512
4513    fn control_handle(&self) -> &OpenTargetControlHandle {
4514        &self.control_handle
4515    }
4516
4517    fn drop_without_shutdown(mut self) {
4518        // Safety: drops once, never accessed again due to mem::forget
4519        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4520        // Prevent Drop from running (which would shut down the channel)
4521        std::mem::forget(self);
4522    }
4523}
4524
4525impl OpenTargetFlexibleTwoWayErrResponder {
4526    /// Sends a response to the FIDL transaction.
4527    ///
4528    /// Sets the channel to shutdown if an error occurs.
4529    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4530        let _result = self.send_raw(result);
4531        if _result.is_err() {
4532            self.control_handle.shutdown();
4533        }
4534        self.drop_without_shutdown();
4535        _result
4536    }
4537
4538    /// Similar to "send" but does not shutdown the channel if an error occurs.
4539    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4540        let _result = self.send_raw(result);
4541        self.drop_without_shutdown();
4542        _result
4543    }
4544
4545    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4546        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4547            fidl::encoding::EmptyStruct,
4548            i32,
4549        >>(
4550            fidl::encoding::FlexibleResult::new(result),
4551            self.tx_id,
4552            0x6e144c6e0cf2147a,
4553            fidl::encoding::DynamicFlags::FLEXIBLE,
4554        )
4555    }
4556}
4557
4558#[must_use = "FIDL methods require a response to be sent"]
4559#[derive(Debug)]
4560pub struct OpenTargetFlexibleTwoWayFieldsErrResponder {
4561    control_handle: std::mem::ManuallyDrop<OpenTargetControlHandle>,
4562    tx_id: u32,
4563}
4564
4565/// Set the the channel to be shutdown (see [`OpenTargetControlHandle::shutdown`])
4566/// if the responder is dropped without sending a response, so that the client
4567/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4568impl std::ops::Drop for OpenTargetFlexibleTwoWayFieldsErrResponder {
4569    fn drop(&mut self) {
4570        self.control_handle.shutdown();
4571        // Safety: drops once, never accessed again
4572        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4573    }
4574}
4575
4576impl fidl::endpoints::Responder for OpenTargetFlexibleTwoWayFieldsErrResponder {
4577    type ControlHandle = OpenTargetControlHandle;
4578
4579    fn control_handle(&self) -> &OpenTargetControlHandle {
4580        &self.control_handle
4581    }
4582
4583    fn drop_without_shutdown(mut self) {
4584        // Safety: drops once, never accessed again due to mem::forget
4585        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4586        // Prevent Drop from running (which would shut down the channel)
4587        std::mem::forget(self);
4588    }
4589}
4590
4591impl OpenTargetFlexibleTwoWayFieldsErrResponder {
4592    /// Sends a response to the FIDL transaction.
4593    ///
4594    /// Sets the channel to shutdown if an error occurs.
4595    pub fn send(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4596        let _result = self.send_raw(result);
4597        if _result.is_err() {
4598            self.control_handle.shutdown();
4599        }
4600        self.drop_without_shutdown();
4601        _result
4602    }
4603
4604    /// Similar to "send" but does not shutdown the channel if an error occurs.
4605    pub fn send_no_shutdown_on_err(self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4606        let _result = self.send_raw(result);
4607        self.drop_without_shutdown();
4608        _result
4609    }
4610
4611    fn send_raw(&self, mut result: Result<i32, i32>) -> Result<(), fidl::Error> {
4612        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<NonEmptyPayload, i32>>(
4613            fidl::encoding::FlexibleResult::new(result.map(|some_field| (some_field,))),
4614            self.tx_id,
4615            0xe494147cda8024a,
4616            fidl::encoding::DynamicFlags::FLEXIBLE,
4617        )
4618    }
4619}
4620
4621#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4622pub struct OpenTargetEventReporterMarker;
4623
4624impl fidl::endpoints::ProtocolMarker for OpenTargetEventReporterMarker {
4625    type Proxy = OpenTargetEventReporterProxy;
4626    type RequestStream = OpenTargetEventReporterRequestStream;
4627    #[cfg(target_os = "fuchsia")]
4628    type SynchronousProxy = OpenTargetEventReporterSynchronousProxy;
4629
4630    const DEBUG_NAME: &'static str = "(anonymous) OpenTargetEventReporter";
4631}
4632
4633pub trait OpenTargetEventReporterProxyInterface: Send + Sync {
4634    fn r#report_event(&self, payload: &OpenTargetEventReport) -> Result<(), fidl::Error>;
4635}
4636#[derive(Debug)]
4637#[cfg(target_os = "fuchsia")]
4638pub struct OpenTargetEventReporterSynchronousProxy {
4639    client: fidl::client::sync::Client,
4640}
4641
4642#[cfg(target_os = "fuchsia")]
4643impl fidl::endpoints::SynchronousProxy for OpenTargetEventReporterSynchronousProxy {
4644    type Proxy = OpenTargetEventReporterProxy;
4645    type Protocol = OpenTargetEventReporterMarker;
4646
4647    fn from_channel(inner: fidl::Channel) -> Self {
4648        Self::new(inner)
4649    }
4650
4651    fn into_channel(self) -> fidl::Channel {
4652        self.client.into_channel()
4653    }
4654
4655    fn as_channel(&self) -> &fidl::Channel {
4656        self.client.as_channel()
4657    }
4658}
4659
4660#[cfg(target_os = "fuchsia")]
4661impl OpenTargetEventReporterSynchronousProxy {
4662    pub fn new(channel: fidl::Channel) -> Self {
4663        let protocol_name =
4664            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4665        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
4666    }
4667
4668    pub fn into_channel(self) -> fidl::Channel {
4669        self.client.into_channel()
4670    }
4671
4672    /// Waits until an event arrives and returns it. It is safe for other
4673    /// threads to make concurrent requests while waiting for an event.
4674    pub fn wait_for_event(
4675        &self,
4676        deadline: zx::MonotonicInstant,
4677    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4678        OpenTargetEventReporterEvent::decode(self.client.wait_for_event(deadline)?)
4679    }
4680
4681    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4682        self.client.send::<OpenTargetEventReport>(
4683            payload,
4684            0x70ab38ec0248964a,
4685            fidl::encoding::DynamicFlags::empty(),
4686        )
4687    }
4688}
4689
4690#[cfg(target_os = "fuchsia")]
4691impl From<OpenTargetEventReporterSynchronousProxy> for zx::Handle {
4692    fn from(value: OpenTargetEventReporterSynchronousProxy) -> Self {
4693        value.into_channel().into()
4694    }
4695}
4696
4697#[cfg(target_os = "fuchsia")]
4698impl From<fidl::Channel> for OpenTargetEventReporterSynchronousProxy {
4699    fn from(value: fidl::Channel) -> Self {
4700        Self::new(value)
4701    }
4702}
4703
4704#[cfg(target_os = "fuchsia")]
4705impl fidl::endpoints::FromClient for OpenTargetEventReporterSynchronousProxy {
4706    type Protocol = OpenTargetEventReporterMarker;
4707
4708    fn from_client(value: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>) -> Self {
4709        Self::new(value.into_channel())
4710    }
4711}
4712
4713#[derive(Debug, Clone)]
4714pub struct OpenTargetEventReporterProxy {
4715    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
4716}
4717
4718impl fidl::endpoints::Proxy for OpenTargetEventReporterProxy {
4719    type Protocol = OpenTargetEventReporterMarker;
4720
4721    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
4722        Self::new(inner)
4723    }
4724
4725    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
4726        self.client.into_channel().map_err(|client| Self { client })
4727    }
4728
4729    fn as_channel(&self) -> &::fidl::AsyncChannel {
4730        self.client.as_channel()
4731    }
4732}
4733
4734impl OpenTargetEventReporterProxy {
4735    /// Create a new Proxy for fidl.clientsuite/OpenTargetEventReporter.
4736    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
4737        let protocol_name =
4738            <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
4739        Self { client: fidl::client::Client::new(channel, protocol_name) }
4740    }
4741
4742    /// Get a Stream of events from the remote end of the protocol.
4743    ///
4744    /// # Panics
4745    ///
4746    /// Panics if the event stream was already taken.
4747    pub fn take_event_stream(&self) -> OpenTargetEventReporterEventStream {
4748        OpenTargetEventReporterEventStream { event_receiver: self.client.take_event_receiver() }
4749    }
4750
4751    pub fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4752        OpenTargetEventReporterProxyInterface::r#report_event(self, payload)
4753    }
4754}
4755
4756impl OpenTargetEventReporterProxyInterface for OpenTargetEventReporterProxy {
4757    fn r#report_event(&self, mut payload: &OpenTargetEventReport) -> Result<(), fidl::Error> {
4758        self.client.send::<OpenTargetEventReport>(
4759            payload,
4760            0x70ab38ec0248964a,
4761            fidl::encoding::DynamicFlags::empty(),
4762        )
4763    }
4764}
4765
4766pub struct OpenTargetEventReporterEventStream {
4767    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
4768}
4769
4770impl std::marker::Unpin for OpenTargetEventReporterEventStream {}
4771
4772impl futures::stream::FusedStream for OpenTargetEventReporterEventStream {
4773    fn is_terminated(&self) -> bool {
4774        self.event_receiver.is_terminated()
4775    }
4776}
4777
4778impl futures::Stream for OpenTargetEventReporterEventStream {
4779    type Item = Result<OpenTargetEventReporterEvent, fidl::Error>;
4780
4781    fn poll_next(
4782        mut self: std::pin::Pin<&mut Self>,
4783        cx: &mut std::task::Context<'_>,
4784    ) -> std::task::Poll<Option<Self::Item>> {
4785        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
4786            &mut self.event_receiver,
4787            cx
4788        )?) {
4789            Some(buf) => std::task::Poll::Ready(Some(OpenTargetEventReporterEvent::decode(buf))),
4790            None => std::task::Poll::Ready(None),
4791        }
4792    }
4793}
4794
4795#[derive(Debug)]
4796pub enum OpenTargetEventReporterEvent {}
4797
4798impl OpenTargetEventReporterEvent {
4799    /// Decodes a message buffer as a [`OpenTargetEventReporterEvent`].
4800    fn decode(
4801        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
4802    ) -> Result<OpenTargetEventReporterEvent, fidl::Error> {
4803        let (bytes, _handles) = buf.split_mut();
4804        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4805        debug_assert_eq!(tx_header.tx_id, 0);
4806        match tx_header.ordinal {
4807            _ => Err(fidl::Error::UnknownOrdinal {
4808                ordinal: tx_header.ordinal,
4809                protocol_name:
4810                    <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4811            }),
4812        }
4813    }
4814}
4815
4816/// A Stream of incoming requests for fidl.clientsuite/OpenTargetEventReporter.
4817pub struct OpenTargetEventReporterRequestStream {
4818    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4819    is_terminated: bool,
4820}
4821
4822impl std::marker::Unpin for OpenTargetEventReporterRequestStream {}
4823
4824impl futures::stream::FusedStream for OpenTargetEventReporterRequestStream {
4825    fn is_terminated(&self) -> bool {
4826        self.is_terminated
4827    }
4828}
4829
4830impl fidl::endpoints::RequestStream for OpenTargetEventReporterRequestStream {
4831    type Protocol = OpenTargetEventReporterMarker;
4832    type ControlHandle = OpenTargetEventReporterControlHandle;
4833
4834    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
4835        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
4836    }
4837
4838    fn control_handle(&self) -> Self::ControlHandle {
4839        OpenTargetEventReporterControlHandle { inner: self.inner.clone() }
4840    }
4841
4842    fn into_inner(
4843        self,
4844    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
4845    {
4846        (self.inner, self.is_terminated)
4847    }
4848
4849    fn from_inner(
4850        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4851        is_terminated: bool,
4852    ) -> Self {
4853        Self { inner, is_terminated }
4854    }
4855}
4856
4857impl futures::Stream for OpenTargetEventReporterRequestStream {
4858    type Item = Result<OpenTargetEventReporterRequest, fidl::Error>;
4859
4860    fn poll_next(
4861        mut self: std::pin::Pin<&mut Self>,
4862        cx: &mut std::task::Context<'_>,
4863    ) -> std::task::Poll<Option<Self::Item>> {
4864        let this = &mut *self;
4865        if this.inner.check_shutdown(cx) {
4866            this.is_terminated = true;
4867            return std::task::Poll::Ready(None);
4868        }
4869        if this.is_terminated {
4870            panic!("polled OpenTargetEventReporterRequestStream after completion");
4871        }
4872        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
4873            |bytes, handles| {
4874                match this.inner.channel().read_etc(cx, bytes, handles) {
4875                    std::task::Poll::Ready(Ok(())) => {}
4876                    std::task::Poll::Pending => return std::task::Poll::Pending,
4877                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
4878                        this.is_terminated = true;
4879                        return std::task::Poll::Ready(None);
4880                    }
4881                    std::task::Poll::Ready(Err(e)) => {
4882                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
4883                            e.into(),
4884                        ))));
4885                    }
4886                }
4887
4888                // A message has been received from the channel
4889                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
4890
4891                std::task::Poll::Ready(Some(match header.ordinal {
4892                0x70ab38ec0248964a => {
4893                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
4894                    let mut req = fidl::new_empty!(OpenTargetEventReport, fidl::encoding::DefaultFuchsiaResourceDialect);
4895                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<OpenTargetEventReport>(&header, _body_bytes, handles, &mut req)?;
4896                    let control_handle = OpenTargetEventReporterControlHandle {
4897                        inner: this.inner.clone(),
4898                    };
4899                    Ok(OpenTargetEventReporterRequest::ReportEvent {payload: req,
4900                        control_handle,
4901                    })
4902                }
4903                _ => Err(fidl::Error::UnknownOrdinal {
4904                    ordinal: header.ordinal,
4905                    protocol_name: <OpenTargetEventReporterMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
4906                }),
4907            }))
4908            },
4909        )
4910    }
4911}
4912
4913#[derive(Debug)]
4914pub enum OpenTargetEventReporterRequest {
4915    ReportEvent {
4916        payload: OpenTargetEventReport,
4917        control_handle: OpenTargetEventReporterControlHandle,
4918    },
4919}
4920
4921impl OpenTargetEventReporterRequest {
4922    #[allow(irrefutable_let_patterns)]
4923    pub fn into_report_event(
4924        self,
4925    ) -> Option<(OpenTargetEventReport, OpenTargetEventReporterControlHandle)> {
4926        if let OpenTargetEventReporterRequest::ReportEvent { payload, control_handle } = self {
4927            Some((payload, control_handle))
4928        } else {
4929            None
4930        }
4931    }
4932
4933    /// Name of the method defined in FIDL
4934    pub fn method_name(&self) -> &'static str {
4935        match *self {
4936            OpenTargetEventReporterRequest::ReportEvent { .. } => "report_event",
4937        }
4938    }
4939}
4940
4941#[derive(Debug, Clone)]
4942pub struct OpenTargetEventReporterControlHandle {
4943    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
4944}
4945
4946impl fidl::endpoints::ControlHandle for OpenTargetEventReporterControlHandle {
4947    fn shutdown(&self) {
4948        self.inner.shutdown()
4949    }
4950    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
4951        self.inner.shutdown_with_epitaph(status)
4952    }
4953
4954    fn is_closed(&self) -> bool {
4955        self.inner.channel().is_closed()
4956    }
4957    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
4958        self.inner.channel().on_closed()
4959    }
4960
4961    #[cfg(target_os = "fuchsia")]
4962    fn signal_peer(
4963        &self,
4964        clear_mask: zx::Signals,
4965        set_mask: zx::Signals,
4966    ) -> Result<(), zx_status::Status> {
4967        use fidl::Peered;
4968        self.inner.channel().signal_peer(clear_mask, set_mask)
4969    }
4970}
4971
4972impl OpenTargetEventReporterControlHandle {}
4973
4974#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
4975pub struct RunnerMarker;
4976
4977impl fidl::endpoints::ProtocolMarker for RunnerMarker {
4978    type Proxy = RunnerProxy;
4979    type RequestStream = RunnerRequestStream;
4980    #[cfg(target_os = "fuchsia")]
4981    type SynchronousProxy = RunnerSynchronousProxy;
4982
4983    const DEBUG_NAME: &'static str = "fidl.clientsuite.Runner";
4984}
4985impl fidl::endpoints::DiscoverableProtocolMarker for RunnerMarker {}
4986
4987pub trait RunnerProxyInterface: Send + Sync {
4988    type GetVersionResponseFut: std::future::Future<Output = Result<u64, fidl::Error>> + Send;
4989    fn r#get_version(&self) -> Self::GetVersionResponseFut;
4990    type IsTestEnabledResponseFut: std::future::Future<Output = Result<bool, fidl::Error>> + Send;
4991    fn r#is_test_enabled(&self, test: Test) -> Self::IsTestEnabledResponseFut;
4992    type CheckAliveResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
4993    fn r#check_alive(&self) -> Self::CheckAliveResponseFut;
4994    type GetBindingsPropertiesResponseFut: std::future::Future<Output = Result<BindingsProperties, fidl::Error>>
4995        + Send;
4996    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut;
4997    type CallTwoWayNoPayloadResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
4998        + Send;
4999    fn r#call_two_way_no_payload(
5000        &self,
5001        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5002    ) -> Self::CallTwoWayNoPayloadResponseFut;
5003    type CallTwoWayStructPayloadResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5004        + Send;
5005    fn r#call_two_way_struct_payload(
5006        &self,
5007        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5008    ) -> Self::CallTwoWayStructPayloadResponseFut;
5009    type CallTwoWayTablePayloadResponseFut: std::future::Future<Output = Result<TableResultClassification, fidl::Error>>
5010        + Send;
5011    fn r#call_two_way_table_payload(
5012        &self,
5013        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5014    ) -> Self::CallTwoWayTablePayloadResponseFut;
5015    type CallTwoWayUnionPayloadResponseFut: std::future::Future<Output = Result<UnionResultClassification, fidl::Error>>
5016        + Send;
5017    fn r#call_two_way_union_payload(
5018        &self,
5019        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5020    ) -> Self::CallTwoWayUnionPayloadResponseFut;
5021    type CallTwoWayStructPayloadErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5022        + Send;
5023    fn r#call_two_way_struct_payload_err(
5024        &self,
5025        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5026    ) -> Self::CallTwoWayStructPayloadErrResponseFut;
5027    type CallTwoWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5028        + Send;
5029    fn r#call_two_way_struct_request(
5030        &self,
5031        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5032        request: &NonEmptyPayload,
5033    ) -> Self::CallTwoWayStructRequestResponseFut;
5034    type CallTwoWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5035        + Send;
5036    fn r#call_two_way_table_request(
5037        &self,
5038        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5039        request: &TablePayload,
5040    ) -> Self::CallTwoWayTableRequestResponseFut;
5041    type CallTwoWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5042        + Send;
5043    fn r#call_two_way_union_request(
5044        &self,
5045        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5046        request: &UnionPayload,
5047    ) -> Self::CallTwoWayUnionRequestResponseFut;
5048    type CallOneWayNoRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5049        + Send;
5050    fn r#call_one_way_no_request(
5051        &self,
5052        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5053    ) -> Self::CallOneWayNoRequestResponseFut;
5054    type CallOneWayStructRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5055        + Send;
5056    fn r#call_one_way_struct_request(
5057        &self,
5058        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5059        request: &NonEmptyPayload,
5060    ) -> Self::CallOneWayStructRequestResponseFut;
5061    type CallOneWayTableRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5062        + Send;
5063    fn r#call_one_way_table_request(
5064        &self,
5065        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5066        request: &TablePayload,
5067    ) -> Self::CallOneWayTableRequestResponseFut;
5068    type CallOneWayUnionRequestResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5069        + Send;
5070    fn r#call_one_way_union_request(
5071        &self,
5072        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5073        request: &UnionPayload,
5074    ) -> Self::CallOneWayUnionRequestResponseFut;
5075    type CallStrictOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5076        + Send;
5077    fn r#call_strict_one_way(
5078        &self,
5079        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5080    ) -> Self::CallStrictOneWayResponseFut;
5081    type CallFlexibleOneWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5082        + Send;
5083    fn r#call_flexible_one_way(
5084        &self,
5085        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5086    ) -> Self::CallFlexibleOneWayResponseFut;
5087    type CallStrictTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5088        + Send;
5089    fn r#call_strict_two_way(
5090        &self,
5091        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5092    ) -> Self::CallStrictTwoWayResponseFut;
5093    type CallStrictTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5094        + Send;
5095    fn r#call_strict_two_way_fields(
5096        &self,
5097        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5098    ) -> Self::CallStrictTwoWayFieldsResponseFut;
5099    type CallStrictTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5100        + Send;
5101    fn r#call_strict_two_way_err(
5102        &self,
5103        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5104    ) -> Self::CallStrictTwoWayErrResponseFut;
5105    type CallStrictTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5106        + Send;
5107    fn r#call_strict_two_way_fields_err(
5108        &self,
5109        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5110    ) -> Self::CallStrictTwoWayFieldsErrResponseFut;
5111    type CallFlexibleTwoWayResponseFut: std::future::Future<Output = Result<EmptyResultClassification, fidl::Error>>
5112        + Send;
5113    fn r#call_flexible_two_way(
5114        &self,
5115        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5116    ) -> Self::CallFlexibleTwoWayResponseFut;
5117    type CallFlexibleTwoWayFieldsResponseFut: std::future::Future<Output = Result<NonEmptyResultClassification, fidl::Error>>
5118        + Send;
5119    fn r#call_flexible_two_way_fields(
5120        &self,
5121        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5122    ) -> Self::CallFlexibleTwoWayFieldsResponseFut;
5123    type CallFlexibleTwoWayErrResponseFut: std::future::Future<Output = Result<EmptyResultWithErrorClassification, fidl::Error>>
5124        + Send;
5125    fn r#call_flexible_two_way_err(
5126        &self,
5127        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5128    ) -> Self::CallFlexibleTwoWayErrResponseFut;
5129    type CallFlexibleTwoWayFieldsErrResponseFut: std::future::Future<Output = Result<NonEmptyResultWithErrorClassification, fidl::Error>>
5130        + Send;
5131    fn r#call_flexible_two_way_fields_err(
5132        &self,
5133        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5134    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut;
5135    type ReceiveClosedEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>>
5136        + Send;
5137    fn r#receive_closed_events(
5138        &self,
5139        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5140        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5141    ) -> Self::ReceiveClosedEventsResponseFut;
5142    type ReceiveAjarEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5143    fn r#receive_ajar_events(
5144        &self,
5145        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5146        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5147    ) -> Self::ReceiveAjarEventsResponseFut;
5148    type ReceiveOpenEventsResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
5149    fn r#receive_open_events(
5150        &self,
5151        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5152        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5153    ) -> Self::ReceiveOpenEventsResponseFut;
5154}
5155#[derive(Debug)]
5156#[cfg(target_os = "fuchsia")]
5157pub struct RunnerSynchronousProxy {
5158    client: fidl::client::sync::Client,
5159}
5160
5161#[cfg(target_os = "fuchsia")]
5162impl fidl::endpoints::SynchronousProxy for RunnerSynchronousProxy {
5163    type Proxy = RunnerProxy;
5164    type Protocol = RunnerMarker;
5165
5166    fn from_channel(inner: fidl::Channel) -> Self {
5167        Self::new(inner)
5168    }
5169
5170    fn into_channel(self) -> fidl::Channel {
5171        self.client.into_channel()
5172    }
5173
5174    fn as_channel(&self) -> &fidl::Channel {
5175        self.client.as_channel()
5176    }
5177}
5178
5179#[cfg(target_os = "fuchsia")]
5180impl RunnerSynchronousProxy {
5181    pub fn new(channel: fidl::Channel) -> Self {
5182        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5183        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
5184    }
5185
5186    pub fn into_channel(self) -> fidl::Channel {
5187        self.client.into_channel()
5188    }
5189
5190    /// Waits until an event arrives and returns it. It is safe for other
5191    /// threads to make concurrent requests while waiting for an event.
5192    pub fn wait_for_event(
5193        &self,
5194        deadline: zx::MonotonicInstant,
5195    ) -> Result<RunnerEvent, fidl::Error> {
5196        RunnerEvent::decode(self.client.wait_for_event(deadline)?)
5197    }
5198
5199    pub fn r#get_version(&self, ___deadline: zx::MonotonicInstant) -> Result<u64, fidl::Error> {
5200        let _response =
5201            self.client.send_query::<fidl::encoding::EmptyPayload, RunnerGetVersionResponse>(
5202                (),
5203                0x555d1430b913cdd4,
5204                fidl::encoding::DynamicFlags::empty(),
5205                ___deadline,
5206            )?;
5207        Ok(_response.version)
5208    }
5209
5210    pub fn r#is_test_enabled(
5211        &self,
5212        mut test: Test,
5213        ___deadline: zx::MonotonicInstant,
5214    ) -> Result<bool, fidl::Error> {
5215        let _response =
5216            self.client.send_query::<RunnerIsTestEnabledRequest, RunnerIsTestEnabledResponse>(
5217                (test,),
5218                0x755bc493368d7c50,
5219                fidl::encoding::DynamicFlags::empty(),
5220                ___deadline,
5221            )?;
5222        Ok(_response.is_enabled)
5223    }
5224
5225    pub fn r#check_alive(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
5226        let _response =
5227            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::EmptyPayload>(
5228                (),
5229                0x5a77b04abdfde130,
5230                fidl::encoding::DynamicFlags::empty(),
5231                ___deadline,
5232            )?;
5233        Ok(_response)
5234    }
5235
5236    pub fn r#get_bindings_properties(
5237        &self,
5238        ___deadline: zx::MonotonicInstant,
5239    ) -> Result<BindingsProperties, fidl::Error> {
5240        let _response =
5241            self.client.send_query::<fidl::encoding::EmptyPayload, BindingsProperties>(
5242                (),
5243                0x76b5610bfd4fa636,
5244                fidl::encoding::DynamicFlags::empty(),
5245                ___deadline,
5246            )?;
5247        Ok(_response)
5248    }
5249
5250    pub fn r#call_two_way_no_payload(
5251        &self,
5252        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5253        ___deadline: zx::MonotonicInstant,
5254    ) -> Result<EmptyResultClassification, fidl::Error> {
5255        let _response =
5256            self.client.send_query::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
5257                (target,),
5258                0x53ac710c20b320a1,
5259                fidl::encoding::DynamicFlags::empty(),
5260                ___deadline,
5261            )?;
5262        Ok(_response)
5263    }
5264
5265    pub fn r#call_two_way_struct_payload(
5266        &self,
5267        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5268        ___deadline: zx::MonotonicInstant,
5269    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5270        let _response = self
5271            .client
5272            .send_query::<RunnerCallTwoWayStructPayloadRequest, NonEmptyResultClassification>(
5273                (target,),
5274                0x24e98c668499b946,
5275                fidl::encoding::DynamicFlags::empty(),
5276                ___deadline,
5277            )?;
5278        Ok(_response)
5279    }
5280
5281    pub fn r#call_two_way_table_payload(
5282        &self,
5283        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5284        ___deadline: zx::MonotonicInstant,
5285    ) -> Result<TableResultClassification, fidl::Error> {
5286        let _response = self
5287            .client
5288            .send_query::<RunnerCallTwoWayTablePayloadRequest, TableResultClassification>(
5289                (target,),
5290                0x72e428e1605b76a,
5291                fidl::encoding::DynamicFlags::empty(),
5292                ___deadline,
5293            )?;
5294        Ok(_response)
5295    }
5296
5297    pub fn r#call_two_way_union_payload(
5298        &self,
5299        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5300        ___deadline: zx::MonotonicInstant,
5301    ) -> Result<UnionResultClassification, fidl::Error> {
5302        let _response = self
5303            .client
5304            .send_query::<RunnerCallTwoWayUnionPayloadRequest, UnionResultClassification>(
5305                (target,),
5306                0x7dc9d67218343860,
5307                fidl::encoding::DynamicFlags::empty(),
5308                ___deadline,
5309            )?;
5310        Ok(_response)
5311    }
5312
5313    pub fn r#call_two_way_struct_payload_err(
5314        &self,
5315        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5316        ___deadline: zx::MonotonicInstant,
5317    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5318        let _response = self.client.send_query::<
5319            RunnerCallTwoWayStructPayloadErrRequest,
5320            NonEmptyResultWithErrorClassification,
5321        >(
5322            (target,),
5323            0x2b07a57942c5f6e5,
5324            fidl::encoding::DynamicFlags::empty(),
5325            ___deadline,
5326        )?;
5327        Ok(_response)
5328    }
5329
5330    pub fn r#call_two_way_struct_request(
5331        &self,
5332        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5333        mut request: &NonEmptyPayload,
5334        ___deadline: zx::MonotonicInstant,
5335    ) -> Result<EmptyResultClassification, fidl::Error> {
5336        let _response = self
5337            .client
5338            .send_query::<RunnerCallTwoWayStructRequestRequest, EmptyResultClassification>(
5339                (target, request),
5340                0x7c00a6ba2e6c9b45,
5341                fidl::encoding::DynamicFlags::empty(),
5342                ___deadline,
5343            )?;
5344        Ok(_response)
5345    }
5346
5347    pub fn r#call_two_way_table_request(
5348        &self,
5349        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5350        mut request: &TablePayload,
5351        ___deadline: zx::MonotonicInstant,
5352    ) -> Result<EmptyResultClassification, fidl::Error> {
5353        let _response = self
5354            .client
5355            .send_query::<RunnerCallTwoWayTableRequestRequest, EmptyResultClassification>(
5356                (target, request),
5357                0x641763237d3885be,
5358                fidl::encoding::DynamicFlags::empty(),
5359                ___deadline,
5360            )?;
5361        Ok(_response)
5362    }
5363
5364    pub fn r#call_two_way_union_request(
5365        &self,
5366        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5367        mut request: &UnionPayload,
5368        ___deadline: zx::MonotonicInstant,
5369    ) -> Result<EmptyResultClassification, fidl::Error> {
5370        let _response = self
5371            .client
5372            .send_query::<RunnerCallTwoWayUnionRequestRequest, EmptyResultClassification>(
5373                (target, request),
5374                0x4be5f061df42619e,
5375                fidl::encoding::DynamicFlags::empty(),
5376                ___deadline,
5377            )?;
5378        Ok(_response)
5379    }
5380
5381    pub fn r#call_one_way_no_request(
5382        &self,
5383        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5384        ___deadline: zx::MonotonicInstant,
5385    ) -> Result<EmptyResultClassification, fidl::Error> {
5386        let _response =
5387            self.client.send_query::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
5388                (target,),
5389                0x24b6eea8cbdccc09,
5390                fidl::encoding::DynamicFlags::empty(),
5391                ___deadline,
5392            )?;
5393        Ok(_response)
5394    }
5395
5396    pub fn r#call_one_way_struct_request(
5397        &self,
5398        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5399        mut request: &NonEmptyPayload,
5400        ___deadline: zx::MonotonicInstant,
5401    ) -> Result<EmptyResultClassification, fidl::Error> {
5402        let _response = self
5403            .client
5404            .send_query::<RunnerCallOneWayStructRequestRequest, EmptyResultClassification>(
5405                (target, request),
5406                0x352a2907a0fcb420,
5407                fidl::encoding::DynamicFlags::empty(),
5408                ___deadline,
5409            )?;
5410        Ok(_response)
5411    }
5412
5413    pub fn r#call_one_way_table_request(
5414        &self,
5415        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5416        mut request: &TablePayload,
5417        ___deadline: zx::MonotonicInstant,
5418    ) -> Result<EmptyResultClassification, fidl::Error> {
5419        let _response = self
5420            .client
5421            .send_query::<RunnerCallOneWayTableRequestRequest, EmptyResultClassification>(
5422                (target, request),
5423                0x734121bf8bf336ef,
5424                fidl::encoding::DynamicFlags::empty(),
5425                ___deadline,
5426            )?;
5427        Ok(_response)
5428    }
5429
5430    pub fn r#call_one_way_union_request(
5431        &self,
5432        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5433        mut request: &UnionPayload,
5434        ___deadline: zx::MonotonicInstant,
5435    ) -> Result<EmptyResultClassification, fidl::Error> {
5436        let _response = self
5437            .client
5438            .send_query::<RunnerCallOneWayUnionRequestRequest, EmptyResultClassification>(
5439                (target, request),
5440                0x9be8e5eb7d50eb6,
5441                fidl::encoding::DynamicFlags::empty(),
5442                ___deadline,
5443            )?;
5444        Ok(_response)
5445    }
5446
5447    pub fn r#call_strict_one_way(
5448        &self,
5449        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5450        ___deadline: zx::MonotonicInstant,
5451    ) -> Result<EmptyResultClassification, fidl::Error> {
5452        let _response =
5453            self.client.send_query::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
5454                (target,),
5455                0x4edd0b6f52c0446b,
5456                fidl::encoding::DynamicFlags::empty(),
5457                ___deadline,
5458            )?;
5459        Ok(_response)
5460    }
5461
5462    pub fn r#call_flexible_one_way(
5463        &self,
5464        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5465        ___deadline: zx::MonotonicInstant,
5466    ) -> Result<EmptyResultClassification, fidl::Error> {
5467        let _response =
5468            self.client.send_query::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
5469                (target,),
5470                0x7253f10a77dfe817,
5471                fidl::encoding::DynamicFlags::empty(),
5472                ___deadline,
5473            )?;
5474        Ok(_response)
5475    }
5476
5477    pub fn r#call_strict_two_way(
5478        &self,
5479        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5480        ___deadline: zx::MonotonicInstant,
5481    ) -> Result<EmptyResultClassification, fidl::Error> {
5482        let _response =
5483            self.client.send_query::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
5484                (target,),
5485                0x1fa9fb7414aedd27,
5486                fidl::encoding::DynamicFlags::empty(),
5487                ___deadline,
5488            )?;
5489        Ok(_response)
5490    }
5491
5492    pub fn r#call_strict_two_way_fields(
5493        &self,
5494        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5495        ___deadline: zx::MonotonicInstant,
5496    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5497        let _response = self
5498            .client
5499            .send_query::<RunnerCallStrictTwoWayFieldsRequest, NonEmptyResultClassification>(
5500                (target,),
5501                0x6f690e00ebf6f123,
5502                fidl::encoding::DynamicFlags::empty(),
5503                ___deadline,
5504            )?;
5505        Ok(_response)
5506    }
5507
5508    pub fn r#call_strict_two_way_err(
5509        &self,
5510        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5511        ___deadline: zx::MonotonicInstant,
5512    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5513        let _response = self
5514            .client
5515            .send_query::<RunnerCallStrictTwoWayErrRequest, EmptyResultWithErrorClassification>(
5516                (target,),
5517                0x51d6bc7cf6cbaf1a,
5518                fidl::encoding::DynamicFlags::empty(),
5519                ___deadline,
5520            )?;
5521        Ok(_response)
5522    }
5523
5524    pub fn r#call_strict_two_way_fields_err(
5525        &self,
5526        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5527        ___deadline: zx::MonotonicInstant,
5528    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5529        let _response = self.client.send_query::<
5530            RunnerCallStrictTwoWayFieldsErrRequest,
5531            NonEmptyResultWithErrorClassification,
5532        >(
5533            (target,),
5534            0x6fa31ced05074c05,
5535            fidl::encoding::DynamicFlags::empty(),
5536            ___deadline,
5537        )?;
5538        Ok(_response)
5539    }
5540
5541    pub fn r#call_flexible_two_way(
5542        &self,
5543        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5544        ___deadline: zx::MonotonicInstant,
5545    ) -> Result<EmptyResultClassification, fidl::Error> {
5546        let _response =
5547            self.client.send_query::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
5548                (target,),
5549                0x411f70724876d49,
5550                fidl::encoding::DynamicFlags::empty(),
5551                ___deadline,
5552            )?;
5553        Ok(_response)
5554    }
5555
5556    pub fn r#call_flexible_two_way_fields(
5557        &self,
5558        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5559        ___deadline: zx::MonotonicInstant,
5560    ) -> Result<NonEmptyResultClassification, fidl::Error> {
5561        let _response = self
5562            .client
5563            .send_query::<RunnerCallFlexibleTwoWayFieldsRequest, NonEmptyResultClassification>(
5564                (target,),
5565                0x330996b623598eed,
5566                fidl::encoding::DynamicFlags::empty(),
5567                ___deadline,
5568            )?;
5569        Ok(_response)
5570    }
5571
5572    pub fn r#call_flexible_two_way_err(
5573        &self,
5574        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5575        ___deadline: zx::MonotonicInstant,
5576    ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
5577        let _response = self
5578            .client
5579            .send_query::<RunnerCallFlexibleTwoWayErrRequest, EmptyResultWithErrorClassification>(
5580                (target,),
5581                0x5ddbf88a353a2a57,
5582                fidl::encoding::DynamicFlags::empty(),
5583                ___deadline,
5584            )?;
5585        Ok(_response)
5586    }
5587
5588    pub fn r#call_flexible_two_way_fields_err(
5589        &self,
5590        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5591        ___deadline: zx::MonotonicInstant,
5592    ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
5593        let _response = self.client.send_query::<
5594            RunnerCallFlexibleTwoWayFieldsErrRequest,
5595            NonEmptyResultWithErrorClassification,
5596        >(
5597            (target,),
5598            0x7ae309383b07048e,
5599            fidl::encoding::DynamicFlags::empty(),
5600            ___deadline,
5601        )?;
5602        Ok(_response)
5603    }
5604
5605    pub fn r#receive_closed_events(
5606        &self,
5607        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5608        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5609        ___deadline: zx::MonotonicInstant,
5610    ) -> Result<(), fidl::Error> {
5611        let _response = self
5612            .client
5613            .send_query::<RunnerReceiveClosedEventsRequest, fidl::encoding::EmptyPayload>(
5614                (target, reporter),
5615                0x48da834910571aeb,
5616                fidl::encoding::DynamicFlags::empty(),
5617                ___deadline,
5618            )?;
5619        Ok(_response)
5620    }
5621
5622    pub fn r#receive_ajar_events(
5623        &self,
5624        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5625        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5626        ___deadline: zx::MonotonicInstant,
5627    ) -> Result<(), fidl::Error> {
5628        let _response = self
5629            .client
5630            .send_query::<RunnerReceiveAjarEventsRequest, fidl::encoding::EmptyPayload>(
5631                (target, reporter),
5632                0xc5662b9a9c007a3,
5633                fidl::encoding::DynamicFlags::empty(),
5634                ___deadline,
5635            )?;
5636        Ok(_response)
5637    }
5638
5639    pub fn r#receive_open_events(
5640        &self,
5641        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5642        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5643        ___deadline: zx::MonotonicInstant,
5644    ) -> Result<(), fidl::Error> {
5645        let _response = self
5646            .client
5647            .send_query::<RunnerReceiveOpenEventsRequest, fidl::encoding::EmptyPayload>(
5648                (target, reporter),
5649                0x79a7073fd18edbdf,
5650                fidl::encoding::DynamicFlags::empty(),
5651                ___deadline,
5652            )?;
5653        Ok(_response)
5654    }
5655}
5656
5657#[cfg(target_os = "fuchsia")]
5658impl From<RunnerSynchronousProxy> for zx::Handle {
5659    fn from(value: RunnerSynchronousProxy) -> Self {
5660        value.into_channel().into()
5661    }
5662}
5663
5664#[cfg(target_os = "fuchsia")]
5665impl From<fidl::Channel> for RunnerSynchronousProxy {
5666    fn from(value: fidl::Channel) -> Self {
5667        Self::new(value)
5668    }
5669}
5670
5671#[cfg(target_os = "fuchsia")]
5672impl fidl::endpoints::FromClient for RunnerSynchronousProxy {
5673    type Protocol = RunnerMarker;
5674
5675    fn from_client(value: fidl::endpoints::ClientEnd<RunnerMarker>) -> Self {
5676        Self::new(value.into_channel())
5677    }
5678}
5679
5680#[derive(Debug, Clone)]
5681pub struct RunnerProxy {
5682    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
5683}
5684
5685impl fidl::endpoints::Proxy for RunnerProxy {
5686    type Protocol = RunnerMarker;
5687
5688    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
5689        Self::new(inner)
5690    }
5691
5692    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
5693        self.client.into_channel().map_err(|client| Self { client })
5694    }
5695
5696    fn as_channel(&self) -> &::fidl::AsyncChannel {
5697        self.client.as_channel()
5698    }
5699}
5700
5701impl RunnerProxy {
5702    /// Create a new Proxy for fidl.clientsuite/Runner.
5703    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
5704        let protocol_name = <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
5705        Self { client: fidl::client::Client::new(channel, protocol_name) }
5706    }
5707
5708    /// Get a Stream of events from the remote end of the protocol.
5709    ///
5710    /// # Panics
5711    ///
5712    /// Panics if the event stream was already taken.
5713    pub fn take_event_stream(&self) -> RunnerEventStream {
5714        RunnerEventStream { event_receiver: self.client.take_event_receiver() }
5715    }
5716
5717    pub fn r#get_version(
5718        &self,
5719    ) -> fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect> {
5720        RunnerProxyInterface::r#get_version(self)
5721    }
5722
5723    pub fn r#is_test_enabled(
5724        &self,
5725        mut test: Test,
5726    ) -> fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect> {
5727        RunnerProxyInterface::r#is_test_enabled(self, test)
5728    }
5729
5730    pub fn r#check_alive(
5731        &self,
5732    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5733        RunnerProxyInterface::r#check_alive(self)
5734    }
5735
5736    pub fn r#get_bindings_properties(
5737        &self,
5738    ) -> fidl::client::QueryResponseFut<
5739        BindingsProperties,
5740        fidl::encoding::DefaultFuchsiaResourceDialect,
5741    > {
5742        RunnerProxyInterface::r#get_bindings_properties(self)
5743    }
5744
5745    pub fn r#call_two_way_no_payload(
5746        &self,
5747        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5748    ) -> fidl::client::QueryResponseFut<
5749        EmptyResultClassification,
5750        fidl::encoding::DefaultFuchsiaResourceDialect,
5751    > {
5752        RunnerProxyInterface::r#call_two_way_no_payload(self, target)
5753    }
5754
5755    pub fn r#call_two_way_struct_payload(
5756        &self,
5757        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5758    ) -> fidl::client::QueryResponseFut<
5759        NonEmptyResultClassification,
5760        fidl::encoding::DefaultFuchsiaResourceDialect,
5761    > {
5762        RunnerProxyInterface::r#call_two_way_struct_payload(self, target)
5763    }
5764
5765    pub fn r#call_two_way_table_payload(
5766        &self,
5767        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5768    ) -> fidl::client::QueryResponseFut<
5769        TableResultClassification,
5770        fidl::encoding::DefaultFuchsiaResourceDialect,
5771    > {
5772        RunnerProxyInterface::r#call_two_way_table_payload(self, target)
5773    }
5774
5775    pub fn r#call_two_way_union_payload(
5776        &self,
5777        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5778    ) -> fidl::client::QueryResponseFut<
5779        UnionResultClassification,
5780        fidl::encoding::DefaultFuchsiaResourceDialect,
5781    > {
5782        RunnerProxyInterface::r#call_two_way_union_payload(self, target)
5783    }
5784
5785    pub fn r#call_two_way_struct_payload_err(
5786        &self,
5787        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5788    ) -> fidl::client::QueryResponseFut<
5789        NonEmptyResultWithErrorClassification,
5790        fidl::encoding::DefaultFuchsiaResourceDialect,
5791    > {
5792        RunnerProxyInterface::r#call_two_way_struct_payload_err(self, target)
5793    }
5794
5795    pub fn r#call_two_way_struct_request(
5796        &self,
5797        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5798        mut request: &NonEmptyPayload,
5799    ) -> fidl::client::QueryResponseFut<
5800        EmptyResultClassification,
5801        fidl::encoding::DefaultFuchsiaResourceDialect,
5802    > {
5803        RunnerProxyInterface::r#call_two_way_struct_request(self, target, request)
5804    }
5805
5806    pub fn r#call_two_way_table_request(
5807        &self,
5808        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5809        mut request: &TablePayload,
5810    ) -> fidl::client::QueryResponseFut<
5811        EmptyResultClassification,
5812        fidl::encoding::DefaultFuchsiaResourceDialect,
5813    > {
5814        RunnerProxyInterface::r#call_two_way_table_request(self, target, request)
5815    }
5816
5817    pub fn r#call_two_way_union_request(
5818        &self,
5819        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5820        mut request: &UnionPayload,
5821    ) -> fidl::client::QueryResponseFut<
5822        EmptyResultClassification,
5823        fidl::encoding::DefaultFuchsiaResourceDialect,
5824    > {
5825        RunnerProxyInterface::r#call_two_way_union_request(self, target, request)
5826    }
5827
5828    pub fn r#call_one_way_no_request(
5829        &self,
5830        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5831    ) -> fidl::client::QueryResponseFut<
5832        EmptyResultClassification,
5833        fidl::encoding::DefaultFuchsiaResourceDialect,
5834    > {
5835        RunnerProxyInterface::r#call_one_way_no_request(self, target)
5836    }
5837
5838    pub fn r#call_one_way_struct_request(
5839        &self,
5840        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5841        mut request: &NonEmptyPayload,
5842    ) -> fidl::client::QueryResponseFut<
5843        EmptyResultClassification,
5844        fidl::encoding::DefaultFuchsiaResourceDialect,
5845    > {
5846        RunnerProxyInterface::r#call_one_way_struct_request(self, target, request)
5847    }
5848
5849    pub fn r#call_one_way_table_request(
5850        &self,
5851        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5852        mut request: &TablePayload,
5853    ) -> fidl::client::QueryResponseFut<
5854        EmptyResultClassification,
5855        fidl::encoding::DefaultFuchsiaResourceDialect,
5856    > {
5857        RunnerProxyInterface::r#call_one_way_table_request(self, target, request)
5858    }
5859
5860    pub fn r#call_one_way_union_request(
5861        &self,
5862        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5863        mut request: &UnionPayload,
5864    ) -> fidl::client::QueryResponseFut<
5865        EmptyResultClassification,
5866        fidl::encoding::DefaultFuchsiaResourceDialect,
5867    > {
5868        RunnerProxyInterface::r#call_one_way_union_request(self, target, request)
5869    }
5870
5871    pub fn r#call_strict_one_way(
5872        &self,
5873        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5874    ) -> fidl::client::QueryResponseFut<
5875        EmptyResultClassification,
5876        fidl::encoding::DefaultFuchsiaResourceDialect,
5877    > {
5878        RunnerProxyInterface::r#call_strict_one_way(self, target)
5879    }
5880
5881    pub fn r#call_flexible_one_way(
5882        &self,
5883        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5884    ) -> fidl::client::QueryResponseFut<
5885        EmptyResultClassification,
5886        fidl::encoding::DefaultFuchsiaResourceDialect,
5887    > {
5888        RunnerProxyInterface::r#call_flexible_one_way(self, target)
5889    }
5890
5891    pub fn r#call_strict_two_way(
5892        &self,
5893        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5894    ) -> fidl::client::QueryResponseFut<
5895        EmptyResultClassification,
5896        fidl::encoding::DefaultFuchsiaResourceDialect,
5897    > {
5898        RunnerProxyInterface::r#call_strict_two_way(self, target)
5899    }
5900
5901    pub fn r#call_strict_two_way_fields(
5902        &self,
5903        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5904    ) -> fidl::client::QueryResponseFut<
5905        NonEmptyResultClassification,
5906        fidl::encoding::DefaultFuchsiaResourceDialect,
5907    > {
5908        RunnerProxyInterface::r#call_strict_two_way_fields(self, target)
5909    }
5910
5911    pub fn r#call_strict_two_way_err(
5912        &self,
5913        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5914    ) -> fidl::client::QueryResponseFut<
5915        EmptyResultWithErrorClassification,
5916        fidl::encoding::DefaultFuchsiaResourceDialect,
5917    > {
5918        RunnerProxyInterface::r#call_strict_two_way_err(self, target)
5919    }
5920
5921    pub fn r#call_strict_two_way_fields_err(
5922        &self,
5923        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5924    ) -> fidl::client::QueryResponseFut<
5925        NonEmptyResultWithErrorClassification,
5926        fidl::encoding::DefaultFuchsiaResourceDialect,
5927    > {
5928        RunnerProxyInterface::r#call_strict_two_way_fields_err(self, target)
5929    }
5930
5931    pub fn r#call_flexible_two_way(
5932        &self,
5933        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5934    ) -> fidl::client::QueryResponseFut<
5935        EmptyResultClassification,
5936        fidl::encoding::DefaultFuchsiaResourceDialect,
5937    > {
5938        RunnerProxyInterface::r#call_flexible_two_way(self, target)
5939    }
5940
5941    pub fn r#call_flexible_two_way_fields(
5942        &self,
5943        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5944    ) -> fidl::client::QueryResponseFut<
5945        NonEmptyResultClassification,
5946        fidl::encoding::DefaultFuchsiaResourceDialect,
5947    > {
5948        RunnerProxyInterface::r#call_flexible_two_way_fields(self, target)
5949    }
5950
5951    pub fn r#call_flexible_two_way_err(
5952        &self,
5953        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5954    ) -> fidl::client::QueryResponseFut<
5955        EmptyResultWithErrorClassification,
5956        fidl::encoding::DefaultFuchsiaResourceDialect,
5957    > {
5958        RunnerProxyInterface::r#call_flexible_two_way_err(self, target)
5959    }
5960
5961    pub fn r#call_flexible_two_way_fields_err(
5962        &self,
5963        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5964    ) -> fidl::client::QueryResponseFut<
5965        NonEmptyResultWithErrorClassification,
5966        fidl::encoding::DefaultFuchsiaResourceDialect,
5967    > {
5968        RunnerProxyInterface::r#call_flexible_two_way_fields_err(self, target)
5969    }
5970
5971    pub fn r#receive_closed_events(
5972        &self,
5973        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
5974        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
5975    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5976        RunnerProxyInterface::r#receive_closed_events(self, target, reporter)
5977    }
5978
5979    pub fn r#receive_ajar_events(
5980        &self,
5981        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
5982        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
5983    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5984        RunnerProxyInterface::r#receive_ajar_events(self, target, reporter)
5985    }
5986
5987    pub fn r#receive_open_events(
5988        &self,
5989        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
5990        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
5991    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
5992        RunnerProxyInterface::r#receive_open_events(self, target, reporter)
5993    }
5994}
5995
5996impl RunnerProxyInterface for RunnerProxy {
5997    type GetVersionResponseFut =
5998        fidl::client::QueryResponseFut<u64, fidl::encoding::DefaultFuchsiaResourceDialect>;
5999    fn r#get_version(&self) -> Self::GetVersionResponseFut {
6000        fn _decode(
6001            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6002        ) -> Result<u64, fidl::Error> {
6003            let _response = fidl::client::decode_transaction_body::<
6004                RunnerGetVersionResponse,
6005                fidl::encoding::DefaultFuchsiaResourceDialect,
6006                0x555d1430b913cdd4,
6007            >(_buf?)?;
6008            Ok(_response.version)
6009        }
6010        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, u64>(
6011            (),
6012            0x555d1430b913cdd4,
6013            fidl::encoding::DynamicFlags::empty(),
6014            _decode,
6015        )
6016    }
6017
6018    type IsTestEnabledResponseFut =
6019        fidl::client::QueryResponseFut<bool, fidl::encoding::DefaultFuchsiaResourceDialect>;
6020    fn r#is_test_enabled(&self, mut test: Test) -> Self::IsTestEnabledResponseFut {
6021        fn _decode(
6022            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6023        ) -> Result<bool, fidl::Error> {
6024            let _response = fidl::client::decode_transaction_body::<
6025                RunnerIsTestEnabledResponse,
6026                fidl::encoding::DefaultFuchsiaResourceDialect,
6027                0x755bc493368d7c50,
6028            >(_buf?)?;
6029            Ok(_response.is_enabled)
6030        }
6031        self.client.send_query_and_decode::<RunnerIsTestEnabledRequest, bool>(
6032            (test,),
6033            0x755bc493368d7c50,
6034            fidl::encoding::DynamicFlags::empty(),
6035            _decode,
6036        )
6037    }
6038
6039    type CheckAliveResponseFut =
6040        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6041    fn r#check_alive(&self) -> Self::CheckAliveResponseFut {
6042        fn _decode(
6043            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6044        ) -> Result<(), fidl::Error> {
6045            let _response = fidl::client::decode_transaction_body::<
6046                fidl::encoding::EmptyPayload,
6047                fidl::encoding::DefaultFuchsiaResourceDialect,
6048                0x5a77b04abdfde130,
6049            >(_buf?)?;
6050            Ok(_response)
6051        }
6052        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
6053            (),
6054            0x5a77b04abdfde130,
6055            fidl::encoding::DynamicFlags::empty(),
6056            _decode,
6057        )
6058    }
6059
6060    type GetBindingsPropertiesResponseFut = fidl::client::QueryResponseFut<
6061        BindingsProperties,
6062        fidl::encoding::DefaultFuchsiaResourceDialect,
6063    >;
6064    fn r#get_bindings_properties(&self) -> Self::GetBindingsPropertiesResponseFut {
6065        fn _decode(
6066            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6067        ) -> Result<BindingsProperties, fidl::Error> {
6068            let _response = fidl::client::decode_transaction_body::<
6069                BindingsProperties,
6070                fidl::encoding::DefaultFuchsiaResourceDialect,
6071                0x76b5610bfd4fa636,
6072            >(_buf?)?;
6073            Ok(_response)
6074        }
6075        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, BindingsProperties>(
6076            (),
6077            0x76b5610bfd4fa636,
6078            fidl::encoding::DynamicFlags::empty(),
6079            _decode,
6080        )
6081    }
6082
6083    type CallTwoWayNoPayloadResponseFut = fidl::client::QueryResponseFut<
6084        EmptyResultClassification,
6085        fidl::encoding::DefaultFuchsiaResourceDialect,
6086    >;
6087    fn r#call_two_way_no_payload(
6088        &self,
6089        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6090    ) -> Self::CallTwoWayNoPayloadResponseFut {
6091        fn _decode(
6092            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6093        ) -> Result<EmptyResultClassification, fidl::Error> {
6094            let _response = fidl::client::decode_transaction_body::<
6095                EmptyResultClassification,
6096                fidl::encoding::DefaultFuchsiaResourceDialect,
6097                0x53ac710c20b320a1,
6098            >(_buf?)?;
6099            Ok(_response)
6100        }
6101        self.client
6102            .send_query_and_decode::<RunnerCallTwoWayNoPayloadRequest, EmptyResultClassification>(
6103                (target,),
6104                0x53ac710c20b320a1,
6105                fidl::encoding::DynamicFlags::empty(),
6106                _decode,
6107            )
6108    }
6109
6110    type CallTwoWayStructPayloadResponseFut = fidl::client::QueryResponseFut<
6111        NonEmptyResultClassification,
6112        fidl::encoding::DefaultFuchsiaResourceDialect,
6113    >;
6114    fn r#call_two_way_struct_payload(
6115        &self,
6116        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6117    ) -> Self::CallTwoWayStructPayloadResponseFut {
6118        fn _decode(
6119            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6120        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6121            let _response = fidl::client::decode_transaction_body::<
6122                NonEmptyResultClassification,
6123                fidl::encoding::DefaultFuchsiaResourceDialect,
6124                0x24e98c668499b946,
6125            >(_buf?)?;
6126            Ok(_response)
6127        }
6128        self.client.send_query_and_decode::<
6129            RunnerCallTwoWayStructPayloadRequest,
6130            NonEmptyResultClassification,
6131        >(
6132            (target,),
6133            0x24e98c668499b946,
6134            fidl::encoding::DynamicFlags::empty(),
6135            _decode,
6136        )
6137    }
6138
6139    type CallTwoWayTablePayloadResponseFut = fidl::client::QueryResponseFut<
6140        TableResultClassification,
6141        fidl::encoding::DefaultFuchsiaResourceDialect,
6142    >;
6143    fn r#call_two_way_table_payload(
6144        &self,
6145        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6146    ) -> Self::CallTwoWayTablePayloadResponseFut {
6147        fn _decode(
6148            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6149        ) -> Result<TableResultClassification, fidl::Error> {
6150            let _response = fidl::client::decode_transaction_body::<
6151                TableResultClassification,
6152                fidl::encoding::DefaultFuchsiaResourceDialect,
6153                0x72e428e1605b76a,
6154            >(_buf?)?;
6155            Ok(_response)
6156        }
6157        self.client.send_query_and_decode::<
6158            RunnerCallTwoWayTablePayloadRequest,
6159            TableResultClassification,
6160        >(
6161            (target,),
6162            0x72e428e1605b76a,
6163            fidl::encoding::DynamicFlags::empty(),
6164            _decode,
6165        )
6166    }
6167
6168    type CallTwoWayUnionPayloadResponseFut = fidl::client::QueryResponseFut<
6169        UnionResultClassification,
6170        fidl::encoding::DefaultFuchsiaResourceDialect,
6171    >;
6172    fn r#call_two_way_union_payload(
6173        &self,
6174        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6175    ) -> Self::CallTwoWayUnionPayloadResponseFut {
6176        fn _decode(
6177            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6178        ) -> Result<UnionResultClassification, fidl::Error> {
6179            let _response = fidl::client::decode_transaction_body::<
6180                UnionResultClassification,
6181                fidl::encoding::DefaultFuchsiaResourceDialect,
6182                0x7dc9d67218343860,
6183            >(_buf?)?;
6184            Ok(_response)
6185        }
6186        self.client.send_query_and_decode::<
6187            RunnerCallTwoWayUnionPayloadRequest,
6188            UnionResultClassification,
6189        >(
6190            (target,),
6191            0x7dc9d67218343860,
6192            fidl::encoding::DynamicFlags::empty(),
6193            _decode,
6194        )
6195    }
6196
6197    type CallTwoWayStructPayloadErrResponseFut = fidl::client::QueryResponseFut<
6198        NonEmptyResultWithErrorClassification,
6199        fidl::encoding::DefaultFuchsiaResourceDialect,
6200    >;
6201    fn r#call_two_way_struct_payload_err(
6202        &self,
6203        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6204    ) -> Self::CallTwoWayStructPayloadErrResponseFut {
6205        fn _decode(
6206            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6207        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6208            let _response = fidl::client::decode_transaction_body::<
6209                NonEmptyResultWithErrorClassification,
6210                fidl::encoding::DefaultFuchsiaResourceDialect,
6211                0x2b07a57942c5f6e5,
6212            >(_buf?)?;
6213            Ok(_response)
6214        }
6215        self.client.send_query_and_decode::<
6216            RunnerCallTwoWayStructPayloadErrRequest,
6217            NonEmptyResultWithErrorClassification,
6218        >(
6219            (target,),
6220            0x2b07a57942c5f6e5,
6221            fidl::encoding::DynamicFlags::empty(),
6222            _decode,
6223        )
6224    }
6225
6226    type CallTwoWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6227        EmptyResultClassification,
6228        fidl::encoding::DefaultFuchsiaResourceDialect,
6229    >;
6230    fn r#call_two_way_struct_request(
6231        &self,
6232        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6233        mut request: &NonEmptyPayload,
6234    ) -> Self::CallTwoWayStructRequestResponseFut {
6235        fn _decode(
6236            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6237        ) -> Result<EmptyResultClassification, fidl::Error> {
6238            let _response = fidl::client::decode_transaction_body::<
6239                EmptyResultClassification,
6240                fidl::encoding::DefaultFuchsiaResourceDialect,
6241                0x7c00a6ba2e6c9b45,
6242            >(_buf?)?;
6243            Ok(_response)
6244        }
6245        self.client.send_query_and_decode::<
6246            RunnerCallTwoWayStructRequestRequest,
6247            EmptyResultClassification,
6248        >(
6249            (target, request,),
6250            0x7c00a6ba2e6c9b45,
6251            fidl::encoding::DynamicFlags::empty(),
6252            _decode,
6253        )
6254    }
6255
6256    type CallTwoWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6257        EmptyResultClassification,
6258        fidl::encoding::DefaultFuchsiaResourceDialect,
6259    >;
6260    fn r#call_two_way_table_request(
6261        &self,
6262        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6263        mut request: &TablePayload,
6264    ) -> Self::CallTwoWayTableRequestResponseFut {
6265        fn _decode(
6266            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6267        ) -> Result<EmptyResultClassification, fidl::Error> {
6268            let _response = fidl::client::decode_transaction_body::<
6269                EmptyResultClassification,
6270                fidl::encoding::DefaultFuchsiaResourceDialect,
6271                0x641763237d3885be,
6272            >(_buf?)?;
6273            Ok(_response)
6274        }
6275        self.client.send_query_and_decode::<
6276            RunnerCallTwoWayTableRequestRequest,
6277            EmptyResultClassification,
6278        >(
6279            (target, request,),
6280            0x641763237d3885be,
6281            fidl::encoding::DynamicFlags::empty(),
6282            _decode,
6283        )
6284    }
6285
6286    type CallTwoWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6287        EmptyResultClassification,
6288        fidl::encoding::DefaultFuchsiaResourceDialect,
6289    >;
6290    fn r#call_two_way_union_request(
6291        &self,
6292        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6293        mut request: &UnionPayload,
6294    ) -> Self::CallTwoWayUnionRequestResponseFut {
6295        fn _decode(
6296            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6297        ) -> Result<EmptyResultClassification, fidl::Error> {
6298            let _response = fidl::client::decode_transaction_body::<
6299                EmptyResultClassification,
6300                fidl::encoding::DefaultFuchsiaResourceDialect,
6301                0x4be5f061df42619e,
6302            >(_buf?)?;
6303            Ok(_response)
6304        }
6305        self.client.send_query_and_decode::<
6306            RunnerCallTwoWayUnionRequestRequest,
6307            EmptyResultClassification,
6308        >(
6309            (target, request,),
6310            0x4be5f061df42619e,
6311            fidl::encoding::DynamicFlags::empty(),
6312            _decode,
6313        )
6314    }
6315
6316    type CallOneWayNoRequestResponseFut = fidl::client::QueryResponseFut<
6317        EmptyResultClassification,
6318        fidl::encoding::DefaultFuchsiaResourceDialect,
6319    >;
6320    fn r#call_one_way_no_request(
6321        &self,
6322        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6323    ) -> Self::CallOneWayNoRequestResponseFut {
6324        fn _decode(
6325            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6326        ) -> Result<EmptyResultClassification, fidl::Error> {
6327            let _response = fidl::client::decode_transaction_body::<
6328                EmptyResultClassification,
6329                fidl::encoding::DefaultFuchsiaResourceDialect,
6330                0x24b6eea8cbdccc09,
6331            >(_buf?)?;
6332            Ok(_response)
6333        }
6334        self.client
6335            .send_query_and_decode::<RunnerCallOneWayNoRequestRequest, EmptyResultClassification>(
6336                (target,),
6337                0x24b6eea8cbdccc09,
6338                fidl::encoding::DynamicFlags::empty(),
6339                _decode,
6340            )
6341    }
6342
6343    type CallOneWayStructRequestResponseFut = fidl::client::QueryResponseFut<
6344        EmptyResultClassification,
6345        fidl::encoding::DefaultFuchsiaResourceDialect,
6346    >;
6347    fn r#call_one_way_struct_request(
6348        &self,
6349        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6350        mut request: &NonEmptyPayload,
6351    ) -> Self::CallOneWayStructRequestResponseFut {
6352        fn _decode(
6353            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6354        ) -> Result<EmptyResultClassification, fidl::Error> {
6355            let _response = fidl::client::decode_transaction_body::<
6356                EmptyResultClassification,
6357                fidl::encoding::DefaultFuchsiaResourceDialect,
6358                0x352a2907a0fcb420,
6359            >(_buf?)?;
6360            Ok(_response)
6361        }
6362        self.client.send_query_and_decode::<
6363            RunnerCallOneWayStructRequestRequest,
6364            EmptyResultClassification,
6365        >(
6366            (target, request,),
6367            0x352a2907a0fcb420,
6368            fidl::encoding::DynamicFlags::empty(),
6369            _decode,
6370        )
6371    }
6372
6373    type CallOneWayTableRequestResponseFut = fidl::client::QueryResponseFut<
6374        EmptyResultClassification,
6375        fidl::encoding::DefaultFuchsiaResourceDialect,
6376    >;
6377    fn r#call_one_way_table_request(
6378        &self,
6379        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6380        mut request: &TablePayload,
6381    ) -> Self::CallOneWayTableRequestResponseFut {
6382        fn _decode(
6383            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6384        ) -> Result<EmptyResultClassification, fidl::Error> {
6385            let _response = fidl::client::decode_transaction_body::<
6386                EmptyResultClassification,
6387                fidl::encoding::DefaultFuchsiaResourceDialect,
6388                0x734121bf8bf336ef,
6389            >(_buf?)?;
6390            Ok(_response)
6391        }
6392        self.client.send_query_and_decode::<
6393            RunnerCallOneWayTableRequestRequest,
6394            EmptyResultClassification,
6395        >(
6396            (target, request,),
6397            0x734121bf8bf336ef,
6398            fidl::encoding::DynamicFlags::empty(),
6399            _decode,
6400        )
6401    }
6402
6403    type CallOneWayUnionRequestResponseFut = fidl::client::QueryResponseFut<
6404        EmptyResultClassification,
6405        fidl::encoding::DefaultFuchsiaResourceDialect,
6406    >;
6407    fn r#call_one_way_union_request(
6408        &self,
6409        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6410        mut request: &UnionPayload,
6411    ) -> Self::CallOneWayUnionRequestResponseFut {
6412        fn _decode(
6413            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6414        ) -> Result<EmptyResultClassification, fidl::Error> {
6415            let _response = fidl::client::decode_transaction_body::<
6416                EmptyResultClassification,
6417                fidl::encoding::DefaultFuchsiaResourceDialect,
6418                0x9be8e5eb7d50eb6,
6419            >(_buf?)?;
6420            Ok(_response)
6421        }
6422        self.client.send_query_and_decode::<
6423            RunnerCallOneWayUnionRequestRequest,
6424            EmptyResultClassification,
6425        >(
6426            (target, request,),
6427            0x9be8e5eb7d50eb6,
6428            fidl::encoding::DynamicFlags::empty(),
6429            _decode,
6430        )
6431    }
6432
6433    type CallStrictOneWayResponseFut = fidl::client::QueryResponseFut<
6434        EmptyResultClassification,
6435        fidl::encoding::DefaultFuchsiaResourceDialect,
6436    >;
6437    fn r#call_strict_one_way(
6438        &self,
6439        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6440    ) -> Self::CallStrictOneWayResponseFut {
6441        fn _decode(
6442            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6443        ) -> Result<EmptyResultClassification, fidl::Error> {
6444            let _response = fidl::client::decode_transaction_body::<
6445                EmptyResultClassification,
6446                fidl::encoding::DefaultFuchsiaResourceDialect,
6447                0x4edd0b6f52c0446b,
6448            >(_buf?)?;
6449            Ok(_response)
6450        }
6451        self.client
6452            .send_query_and_decode::<RunnerCallStrictOneWayRequest, EmptyResultClassification>(
6453                (target,),
6454                0x4edd0b6f52c0446b,
6455                fidl::encoding::DynamicFlags::empty(),
6456                _decode,
6457            )
6458    }
6459
6460    type CallFlexibleOneWayResponseFut = fidl::client::QueryResponseFut<
6461        EmptyResultClassification,
6462        fidl::encoding::DefaultFuchsiaResourceDialect,
6463    >;
6464    fn r#call_flexible_one_way(
6465        &self,
6466        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6467    ) -> Self::CallFlexibleOneWayResponseFut {
6468        fn _decode(
6469            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6470        ) -> Result<EmptyResultClassification, fidl::Error> {
6471            let _response = fidl::client::decode_transaction_body::<
6472                EmptyResultClassification,
6473                fidl::encoding::DefaultFuchsiaResourceDialect,
6474                0x7253f10a77dfe817,
6475            >(_buf?)?;
6476            Ok(_response)
6477        }
6478        self.client
6479            .send_query_and_decode::<RunnerCallFlexibleOneWayRequest, EmptyResultClassification>(
6480                (target,),
6481                0x7253f10a77dfe817,
6482                fidl::encoding::DynamicFlags::empty(),
6483                _decode,
6484            )
6485    }
6486
6487    type CallStrictTwoWayResponseFut = fidl::client::QueryResponseFut<
6488        EmptyResultClassification,
6489        fidl::encoding::DefaultFuchsiaResourceDialect,
6490    >;
6491    fn r#call_strict_two_way(
6492        &self,
6493        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6494    ) -> Self::CallStrictTwoWayResponseFut {
6495        fn _decode(
6496            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6497        ) -> Result<EmptyResultClassification, fidl::Error> {
6498            let _response = fidl::client::decode_transaction_body::<
6499                EmptyResultClassification,
6500                fidl::encoding::DefaultFuchsiaResourceDialect,
6501                0x1fa9fb7414aedd27,
6502            >(_buf?)?;
6503            Ok(_response)
6504        }
6505        self.client
6506            .send_query_and_decode::<RunnerCallStrictTwoWayRequest, EmptyResultClassification>(
6507                (target,),
6508                0x1fa9fb7414aedd27,
6509                fidl::encoding::DynamicFlags::empty(),
6510                _decode,
6511            )
6512    }
6513
6514    type CallStrictTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6515        NonEmptyResultClassification,
6516        fidl::encoding::DefaultFuchsiaResourceDialect,
6517    >;
6518    fn r#call_strict_two_way_fields(
6519        &self,
6520        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6521    ) -> Self::CallStrictTwoWayFieldsResponseFut {
6522        fn _decode(
6523            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6524        ) -> Result<NonEmptyResultClassification, fidl::Error> {
6525            let _response = fidl::client::decode_transaction_body::<
6526                NonEmptyResultClassification,
6527                fidl::encoding::DefaultFuchsiaResourceDialect,
6528                0x6f690e00ebf6f123,
6529            >(_buf?)?;
6530            Ok(_response)
6531        }
6532        self.client.send_query_and_decode::<
6533            RunnerCallStrictTwoWayFieldsRequest,
6534            NonEmptyResultClassification,
6535        >(
6536            (target,),
6537            0x6f690e00ebf6f123,
6538            fidl::encoding::DynamicFlags::empty(),
6539            _decode,
6540        )
6541    }
6542
6543    type CallStrictTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6544        EmptyResultWithErrorClassification,
6545        fidl::encoding::DefaultFuchsiaResourceDialect,
6546    >;
6547    fn r#call_strict_two_way_err(
6548        &self,
6549        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6550    ) -> Self::CallStrictTwoWayErrResponseFut {
6551        fn _decode(
6552            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6553        ) -> Result<EmptyResultWithErrorClassification, fidl::Error> {
6554            let _response = fidl::client::decode_transaction_body::<
6555                EmptyResultWithErrorClassification,
6556                fidl::encoding::DefaultFuchsiaResourceDialect,
6557                0x51d6bc7cf6cbaf1a,
6558            >(_buf?)?;
6559            Ok(_response)
6560        }
6561        self.client.send_query_and_decode::<
6562            RunnerCallStrictTwoWayErrRequest,
6563            EmptyResultWithErrorClassification,
6564        >(
6565            (target,),
6566            0x51d6bc7cf6cbaf1a,
6567            fidl::encoding::DynamicFlags::empty(),
6568            _decode,
6569        )
6570    }
6571
6572    type CallStrictTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6573        NonEmptyResultWithErrorClassification,
6574        fidl::encoding::DefaultFuchsiaResourceDialect,
6575    >;
6576    fn r#call_strict_two_way_fields_err(
6577        &self,
6578        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6579    ) -> Self::CallStrictTwoWayFieldsErrResponseFut {
6580        fn _decode(
6581            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6582        ) -> Result<NonEmptyResultWithErrorClassification, fidl::Error> {
6583            let _response = fidl::client::decode_transaction_body::<
6584                NonEmptyResultWithErrorClassification,
6585                fidl::encoding::DefaultFuchsiaResourceDialect,
6586                0x6fa31ced05074c05,
6587            >(_buf?)?;
6588            Ok(_response)
6589        }
6590        self.client.send_query_and_decode::<
6591            RunnerCallStrictTwoWayFieldsErrRequest,
6592            NonEmptyResultWithErrorClassification,
6593        >(
6594            (target,),
6595            0x6fa31ced05074c05,
6596            fidl::encoding::DynamicFlags::empty(),
6597            _decode,
6598        )
6599    }
6600
6601    type CallFlexibleTwoWayResponseFut = fidl::client::QueryResponseFut<
6602        EmptyResultClassification,
6603        fidl::encoding::DefaultFuchsiaResourceDialect,
6604    >;
6605    fn r#call_flexible_two_way(
6606        &self,
6607        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6608    ) -> Self::CallFlexibleTwoWayResponseFut {
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                0x411f70724876d49,
6616            >(_buf?)?;
6617            Ok(_response)
6618        }
6619        self.client
6620            .send_query_and_decode::<RunnerCallFlexibleTwoWayRequest, EmptyResultClassification>(
6621                (target,),
6622                0x411f70724876d49,
6623                fidl::encoding::DynamicFlags::empty(),
6624                _decode,
6625            )
6626    }
6627
6628    type CallFlexibleTwoWayFieldsResponseFut = fidl::client::QueryResponseFut<
6629        NonEmptyResultClassification,
6630        fidl::encoding::DefaultFuchsiaResourceDialect,
6631    >;
6632    fn r#call_flexible_two_way_fields(
6633        &self,
6634        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6635    ) -> Self::CallFlexibleTwoWayFieldsResponseFut {
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                0x330996b623598eed,
6643            >(_buf?)?;
6644            Ok(_response)
6645        }
6646        self.client.send_query_and_decode::<
6647            RunnerCallFlexibleTwoWayFieldsRequest,
6648            NonEmptyResultClassification,
6649        >(
6650            (target,),
6651            0x330996b623598eed,
6652            fidl::encoding::DynamicFlags::empty(),
6653            _decode,
6654        )
6655    }
6656
6657    type CallFlexibleTwoWayErrResponseFut = fidl::client::QueryResponseFut<
6658        EmptyResultWithErrorClassification,
6659        fidl::encoding::DefaultFuchsiaResourceDialect,
6660    >;
6661    fn r#call_flexible_two_way_err(
6662        &self,
6663        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6664    ) -> Self::CallFlexibleTwoWayErrResponseFut {
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                0x5ddbf88a353a2a57,
6672            >(_buf?)?;
6673            Ok(_response)
6674        }
6675        self.client.send_query_and_decode::<
6676            RunnerCallFlexibleTwoWayErrRequest,
6677            EmptyResultWithErrorClassification,
6678        >(
6679            (target,),
6680            0x5ddbf88a353a2a57,
6681            fidl::encoding::DynamicFlags::empty(),
6682            _decode,
6683        )
6684    }
6685
6686    type CallFlexibleTwoWayFieldsErrResponseFut = fidl::client::QueryResponseFut<
6687        NonEmptyResultWithErrorClassification,
6688        fidl::encoding::DefaultFuchsiaResourceDialect,
6689    >;
6690    fn r#call_flexible_two_way_fields_err(
6691        &self,
6692        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6693    ) -> Self::CallFlexibleTwoWayFieldsErrResponseFut {
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                0x7ae309383b07048e,
6701            >(_buf?)?;
6702            Ok(_response)
6703        }
6704        self.client.send_query_and_decode::<
6705            RunnerCallFlexibleTwoWayFieldsErrRequest,
6706            NonEmptyResultWithErrorClassification,
6707        >(
6708            (target,),
6709            0x7ae309383b07048e,
6710            fidl::encoding::DynamicFlags::empty(),
6711            _decode,
6712        )
6713    }
6714
6715    type ReceiveClosedEventsResponseFut =
6716        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6717    fn r#receive_closed_events(
6718        &self,
6719        mut target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
6720        mut reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
6721    ) -> Self::ReceiveClosedEventsResponseFut {
6722        fn _decode(
6723            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6724        ) -> Result<(), fidl::Error> {
6725            let _response = fidl::client::decode_transaction_body::<
6726                fidl::encoding::EmptyPayload,
6727                fidl::encoding::DefaultFuchsiaResourceDialect,
6728                0x48da834910571aeb,
6729            >(_buf?)?;
6730            Ok(_response)
6731        }
6732        self.client.send_query_and_decode::<RunnerReceiveClosedEventsRequest, ()>(
6733            (target, reporter),
6734            0x48da834910571aeb,
6735            fidl::encoding::DynamicFlags::empty(),
6736            _decode,
6737        )
6738    }
6739
6740    type ReceiveAjarEventsResponseFut =
6741        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6742    fn r#receive_ajar_events(
6743        &self,
6744        mut target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
6745        mut reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
6746    ) -> Self::ReceiveAjarEventsResponseFut {
6747        fn _decode(
6748            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6749        ) -> Result<(), fidl::Error> {
6750            let _response = fidl::client::decode_transaction_body::<
6751                fidl::encoding::EmptyPayload,
6752                fidl::encoding::DefaultFuchsiaResourceDialect,
6753                0xc5662b9a9c007a3,
6754            >(_buf?)?;
6755            Ok(_response)
6756        }
6757        self.client.send_query_and_decode::<RunnerReceiveAjarEventsRequest, ()>(
6758            (target, reporter),
6759            0xc5662b9a9c007a3,
6760            fidl::encoding::DynamicFlags::empty(),
6761            _decode,
6762        )
6763    }
6764
6765    type ReceiveOpenEventsResponseFut =
6766        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
6767    fn r#receive_open_events(
6768        &self,
6769        mut target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
6770        mut reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
6771    ) -> Self::ReceiveOpenEventsResponseFut {
6772        fn _decode(
6773            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
6774        ) -> Result<(), fidl::Error> {
6775            let _response = fidl::client::decode_transaction_body::<
6776                fidl::encoding::EmptyPayload,
6777                fidl::encoding::DefaultFuchsiaResourceDialect,
6778                0x79a7073fd18edbdf,
6779            >(_buf?)?;
6780            Ok(_response)
6781        }
6782        self.client.send_query_and_decode::<RunnerReceiveOpenEventsRequest, ()>(
6783            (target, reporter),
6784            0x79a7073fd18edbdf,
6785            fidl::encoding::DynamicFlags::empty(),
6786            _decode,
6787        )
6788    }
6789}
6790
6791pub struct RunnerEventStream {
6792    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
6793}
6794
6795impl std::marker::Unpin for RunnerEventStream {}
6796
6797impl futures::stream::FusedStream for RunnerEventStream {
6798    fn is_terminated(&self) -> bool {
6799        self.event_receiver.is_terminated()
6800    }
6801}
6802
6803impl futures::Stream for RunnerEventStream {
6804    type Item = Result<RunnerEvent, fidl::Error>;
6805
6806    fn poll_next(
6807        mut self: std::pin::Pin<&mut Self>,
6808        cx: &mut std::task::Context<'_>,
6809    ) -> std::task::Poll<Option<Self::Item>> {
6810        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
6811            &mut self.event_receiver,
6812            cx
6813        )?) {
6814            Some(buf) => std::task::Poll::Ready(Some(RunnerEvent::decode(buf))),
6815            None => std::task::Poll::Ready(None),
6816        }
6817    }
6818}
6819
6820#[derive(Debug)]
6821pub enum RunnerEvent {}
6822
6823impl RunnerEvent {
6824    /// Decodes a message buffer as a [`RunnerEvent`].
6825    fn decode(
6826        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
6827    ) -> Result<RunnerEvent, fidl::Error> {
6828        let (bytes, _handles) = buf.split_mut();
6829        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6830        debug_assert_eq!(tx_header.tx_id, 0);
6831        match tx_header.ordinal {
6832            _ => Err(fidl::Error::UnknownOrdinal {
6833                ordinal: tx_header.ordinal,
6834                protocol_name: <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
6835            }),
6836        }
6837    }
6838}
6839
6840/// A Stream of incoming requests for fidl.clientsuite/Runner.
6841pub struct RunnerRequestStream {
6842    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6843    is_terminated: bool,
6844}
6845
6846impl std::marker::Unpin for RunnerRequestStream {}
6847
6848impl futures::stream::FusedStream for RunnerRequestStream {
6849    fn is_terminated(&self) -> bool {
6850        self.is_terminated
6851    }
6852}
6853
6854impl fidl::endpoints::RequestStream for RunnerRequestStream {
6855    type Protocol = RunnerMarker;
6856    type ControlHandle = RunnerControlHandle;
6857
6858    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
6859        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
6860    }
6861
6862    fn control_handle(&self) -> Self::ControlHandle {
6863        RunnerControlHandle { inner: self.inner.clone() }
6864    }
6865
6866    fn into_inner(
6867        self,
6868    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
6869    {
6870        (self.inner, self.is_terminated)
6871    }
6872
6873    fn from_inner(
6874        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
6875        is_terminated: bool,
6876    ) -> Self {
6877        Self { inner, is_terminated }
6878    }
6879}
6880
6881impl futures::Stream for RunnerRequestStream {
6882    type Item = Result<RunnerRequest, fidl::Error>;
6883
6884    fn poll_next(
6885        mut self: std::pin::Pin<&mut Self>,
6886        cx: &mut std::task::Context<'_>,
6887    ) -> std::task::Poll<Option<Self::Item>> {
6888        let this = &mut *self;
6889        if this.inner.check_shutdown(cx) {
6890            this.is_terminated = true;
6891            return std::task::Poll::Ready(None);
6892        }
6893        if this.is_terminated {
6894            panic!("polled RunnerRequestStream after completion");
6895        }
6896        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
6897            |bytes, handles| {
6898                match this.inner.channel().read_etc(cx, bytes, handles) {
6899                    std::task::Poll::Ready(Ok(())) => {}
6900                    std::task::Poll::Pending => return std::task::Poll::Pending,
6901                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
6902                        this.is_terminated = true;
6903                        return std::task::Poll::Ready(None);
6904                    }
6905                    std::task::Poll::Ready(Err(e)) => {
6906                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
6907                            e.into(),
6908                        ))));
6909                    }
6910                }
6911
6912                // A message has been received from the channel
6913                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
6914
6915                std::task::Poll::Ready(Some(match header.ordinal {
6916                    0x555d1430b913cdd4 => {
6917                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6918                        let mut req = fidl::new_empty!(
6919                            fidl::encoding::EmptyPayload,
6920                            fidl::encoding::DefaultFuchsiaResourceDialect
6921                        );
6922                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6923                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6924                        Ok(RunnerRequest::GetVersion {
6925                            responder: RunnerGetVersionResponder {
6926                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6927                                tx_id: header.tx_id,
6928                            },
6929                        })
6930                    }
6931                    0x755bc493368d7c50 => {
6932                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6933                        let mut req = fidl::new_empty!(
6934                            RunnerIsTestEnabledRequest,
6935                            fidl::encoding::DefaultFuchsiaResourceDialect
6936                        );
6937                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerIsTestEnabledRequest>(&header, _body_bytes, handles, &mut req)?;
6938                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6939                        Ok(RunnerRequest::IsTestEnabled {
6940                            test: req.test,
6941
6942                            responder: RunnerIsTestEnabledResponder {
6943                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6944                                tx_id: header.tx_id,
6945                            },
6946                        })
6947                    }
6948                    0x5a77b04abdfde130 => {
6949                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6950                        let mut req = fidl::new_empty!(
6951                            fidl::encoding::EmptyPayload,
6952                            fidl::encoding::DefaultFuchsiaResourceDialect
6953                        );
6954                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6955                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6956                        Ok(RunnerRequest::CheckAlive {
6957                            responder: RunnerCheckAliveResponder {
6958                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6959                                tx_id: header.tx_id,
6960                            },
6961                        })
6962                    }
6963                    0x76b5610bfd4fa636 => {
6964                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6965                        let mut req = fidl::new_empty!(
6966                            fidl::encoding::EmptyPayload,
6967                            fidl::encoding::DefaultFuchsiaResourceDialect
6968                        );
6969                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
6970                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6971                        Ok(RunnerRequest::GetBindingsProperties {
6972                            responder: RunnerGetBindingsPropertiesResponder {
6973                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6974                                tx_id: header.tx_id,
6975                            },
6976                        })
6977                    }
6978                    0x53ac710c20b320a1 => {
6979                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6980                        let mut req = fidl::new_empty!(
6981                            RunnerCallTwoWayNoPayloadRequest,
6982                            fidl::encoding::DefaultFuchsiaResourceDialect
6983                        );
6984                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayNoPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
6985                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
6986                        Ok(RunnerRequest::CallTwoWayNoPayload {
6987                            target: req.target,
6988
6989                            responder: RunnerCallTwoWayNoPayloadResponder {
6990                                control_handle: std::mem::ManuallyDrop::new(control_handle),
6991                                tx_id: header.tx_id,
6992                            },
6993                        })
6994                    }
6995                    0x24e98c668499b946 => {
6996                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
6997                        let mut req = fidl::new_empty!(
6998                            RunnerCallTwoWayStructPayloadRequest,
6999                            fidl::encoding::DefaultFuchsiaResourceDialect
7000                        );
7001                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7002                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7003                        Ok(RunnerRequest::CallTwoWayStructPayload {
7004                            target: req.target,
7005
7006                            responder: RunnerCallTwoWayStructPayloadResponder {
7007                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7008                                tx_id: header.tx_id,
7009                            },
7010                        })
7011                    }
7012                    0x72e428e1605b76a => {
7013                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7014                        let mut req = fidl::new_empty!(
7015                            RunnerCallTwoWayTablePayloadRequest,
7016                            fidl::encoding::DefaultFuchsiaResourceDialect
7017                        );
7018                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTablePayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7019                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7020                        Ok(RunnerRequest::CallTwoWayTablePayload {
7021                            target: req.target,
7022
7023                            responder: RunnerCallTwoWayTablePayloadResponder {
7024                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7025                                tx_id: header.tx_id,
7026                            },
7027                        })
7028                    }
7029                    0x7dc9d67218343860 => {
7030                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7031                        let mut req = fidl::new_empty!(
7032                            RunnerCallTwoWayUnionPayloadRequest,
7033                            fidl::encoding::DefaultFuchsiaResourceDialect
7034                        );
7035                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionPayloadRequest>(&header, _body_bytes, handles, &mut req)?;
7036                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7037                        Ok(RunnerRequest::CallTwoWayUnionPayload {
7038                            target: req.target,
7039
7040                            responder: RunnerCallTwoWayUnionPayloadResponder {
7041                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7042                                tx_id: header.tx_id,
7043                            },
7044                        })
7045                    }
7046                    0x2b07a57942c5f6e5 => {
7047                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7048                        let mut req = fidl::new_empty!(
7049                            RunnerCallTwoWayStructPayloadErrRequest,
7050                            fidl::encoding::DefaultFuchsiaResourceDialect
7051                        );
7052                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructPayloadErrRequest>(&header, _body_bytes, handles, &mut req)?;
7053                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7054                        Ok(RunnerRequest::CallTwoWayStructPayloadErr {
7055                            target: req.target,
7056
7057                            responder: RunnerCallTwoWayStructPayloadErrResponder {
7058                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7059                                tx_id: header.tx_id,
7060                            },
7061                        })
7062                    }
7063                    0x7c00a6ba2e6c9b45 => {
7064                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7065                        let mut req = fidl::new_empty!(
7066                            RunnerCallTwoWayStructRequestRequest,
7067                            fidl::encoding::DefaultFuchsiaResourceDialect
7068                        );
7069                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7070                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7071                        Ok(RunnerRequest::CallTwoWayStructRequest {
7072                            target: req.target,
7073                            request: req.request,
7074
7075                            responder: RunnerCallTwoWayStructRequestResponder {
7076                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7077                                tx_id: header.tx_id,
7078                            },
7079                        })
7080                    }
7081                    0x641763237d3885be => {
7082                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7083                        let mut req = fidl::new_empty!(
7084                            RunnerCallTwoWayTableRequestRequest,
7085                            fidl::encoding::DefaultFuchsiaResourceDialect
7086                        );
7087                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7088                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7089                        Ok(RunnerRequest::CallTwoWayTableRequest {
7090                            target: req.target,
7091                            request: req.request,
7092
7093                            responder: RunnerCallTwoWayTableRequestResponder {
7094                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7095                                tx_id: header.tx_id,
7096                            },
7097                        })
7098                    }
7099                    0x4be5f061df42619e => {
7100                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7101                        let mut req = fidl::new_empty!(
7102                            RunnerCallTwoWayUnionRequestRequest,
7103                            fidl::encoding::DefaultFuchsiaResourceDialect
7104                        );
7105                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallTwoWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7106                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7107                        Ok(RunnerRequest::CallTwoWayUnionRequest {
7108                            target: req.target,
7109                            request: req.request,
7110
7111                            responder: RunnerCallTwoWayUnionRequestResponder {
7112                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7113                                tx_id: header.tx_id,
7114                            },
7115                        })
7116                    }
7117                    0x24b6eea8cbdccc09 => {
7118                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7119                        let mut req = fidl::new_empty!(
7120                            RunnerCallOneWayNoRequestRequest,
7121                            fidl::encoding::DefaultFuchsiaResourceDialect
7122                        );
7123                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayNoRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7124                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7125                        Ok(RunnerRequest::CallOneWayNoRequest {
7126                            target: req.target,
7127
7128                            responder: RunnerCallOneWayNoRequestResponder {
7129                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7130                                tx_id: header.tx_id,
7131                            },
7132                        })
7133                    }
7134                    0x352a2907a0fcb420 => {
7135                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7136                        let mut req = fidl::new_empty!(
7137                            RunnerCallOneWayStructRequestRequest,
7138                            fidl::encoding::DefaultFuchsiaResourceDialect
7139                        );
7140                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayStructRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7141                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7142                        Ok(RunnerRequest::CallOneWayStructRequest {
7143                            target: req.target,
7144                            request: req.request,
7145
7146                            responder: RunnerCallOneWayStructRequestResponder {
7147                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7148                                tx_id: header.tx_id,
7149                            },
7150                        })
7151                    }
7152                    0x734121bf8bf336ef => {
7153                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7154                        let mut req = fidl::new_empty!(
7155                            RunnerCallOneWayTableRequestRequest,
7156                            fidl::encoding::DefaultFuchsiaResourceDialect
7157                        );
7158                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayTableRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7159                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7160                        Ok(RunnerRequest::CallOneWayTableRequest {
7161                            target: req.target,
7162                            request: req.request,
7163
7164                            responder: RunnerCallOneWayTableRequestResponder {
7165                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7166                                tx_id: header.tx_id,
7167                            },
7168                        })
7169                    }
7170                    0x9be8e5eb7d50eb6 => {
7171                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7172                        let mut req = fidl::new_empty!(
7173                            RunnerCallOneWayUnionRequestRequest,
7174                            fidl::encoding::DefaultFuchsiaResourceDialect
7175                        );
7176                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallOneWayUnionRequestRequest>(&header, _body_bytes, handles, &mut req)?;
7177                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7178                        Ok(RunnerRequest::CallOneWayUnionRequest {
7179                            target: req.target,
7180                            request: req.request,
7181
7182                            responder: RunnerCallOneWayUnionRequestResponder {
7183                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7184                                tx_id: header.tx_id,
7185                            },
7186                        })
7187                    }
7188                    0x4edd0b6f52c0446b => {
7189                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7190                        let mut req = fidl::new_empty!(
7191                            RunnerCallStrictOneWayRequest,
7192                            fidl::encoding::DefaultFuchsiaResourceDialect
7193                        );
7194                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7195                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7196                        Ok(RunnerRequest::CallStrictOneWay {
7197                            target: req.target,
7198
7199                            responder: RunnerCallStrictOneWayResponder {
7200                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7201                                tx_id: header.tx_id,
7202                            },
7203                        })
7204                    }
7205                    0x7253f10a77dfe817 => {
7206                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7207                        let mut req = fidl::new_empty!(
7208                            RunnerCallFlexibleOneWayRequest,
7209                            fidl::encoding::DefaultFuchsiaResourceDialect
7210                        );
7211                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleOneWayRequest>(&header, _body_bytes, handles, &mut req)?;
7212                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7213                        Ok(RunnerRequest::CallFlexibleOneWay {
7214                            target: req.target,
7215
7216                            responder: RunnerCallFlexibleOneWayResponder {
7217                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7218                                tx_id: header.tx_id,
7219                            },
7220                        })
7221                    }
7222                    0x1fa9fb7414aedd27 => {
7223                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7224                        let mut req = fidl::new_empty!(
7225                            RunnerCallStrictTwoWayRequest,
7226                            fidl::encoding::DefaultFuchsiaResourceDialect
7227                        );
7228                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7229                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7230                        Ok(RunnerRequest::CallStrictTwoWay {
7231                            target: req.target,
7232
7233                            responder: RunnerCallStrictTwoWayResponder {
7234                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7235                                tx_id: header.tx_id,
7236                            },
7237                        })
7238                    }
7239                    0x6f690e00ebf6f123 => {
7240                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7241                        let mut req = fidl::new_empty!(
7242                            RunnerCallStrictTwoWayFieldsRequest,
7243                            fidl::encoding::DefaultFuchsiaResourceDialect
7244                        );
7245                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7246                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7247                        Ok(RunnerRequest::CallStrictTwoWayFields {
7248                            target: req.target,
7249
7250                            responder: RunnerCallStrictTwoWayFieldsResponder {
7251                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7252                                tx_id: header.tx_id,
7253                            },
7254                        })
7255                    }
7256                    0x51d6bc7cf6cbaf1a => {
7257                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7258                        let mut req = fidl::new_empty!(
7259                            RunnerCallStrictTwoWayErrRequest,
7260                            fidl::encoding::DefaultFuchsiaResourceDialect
7261                        );
7262                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7263                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7264                        Ok(RunnerRequest::CallStrictTwoWayErr {
7265                            target: req.target,
7266
7267                            responder: RunnerCallStrictTwoWayErrResponder {
7268                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7269                                tx_id: header.tx_id,
7270                            },
7271                        })
7272                    }
7273                    0x6fa31ced05074c05 => {
7274                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7275                        let mut req = fidl::new_empty!(
7276                            RunnerCallStrictTwoWayFieldsErrRequest,
7277                            fidl::encoding::DefaultFuchsiaResourceDialect
7278                        );
7279                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallStrictTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7280                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7281                        Ok(RunnerRequest::CallStrictTwoWayFieldsErr {
7282                            target: req.target,
7283
7284                            responder: RunnerCallStrictTwoWayFieldsErrResponder {
7285                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7286                                tx_id: header.tx_id,
7287                            },
7288                        })
7289                    }
7290                    0x411f70724876d49 => {
7291                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7292                        let mut req = fidl::new_empty!(
7293                            RunnerCallFlexibleTwoWayRequest,
7294                            fidl::encoding::DefaultFuchsiaResourceDialect
7295                        );
7296                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayRequest>(&header, _body_bytes, handles, &mut req)?;
7297                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7298                        Ok(RunnerRequest::CallFlexibleTwoWay {
7299                            target: req.target,
7300
7301                            responder: RunnerCallFlexibleTwoWayResponder {
7302                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7303                                tx_id: header.tx_id,
7304                            },
7305                        })
7306                    }
7307                    0x330996b623598eed => {
7308                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7309                        let mut req = fidl::new_empty!(
7310                            RunnerCallFlexibleTwoWayFieldsRequest,
7311                            fidl::encoding::DefaultFuchsiaResourceDialect
7312                        );
7313                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsRequest>(&header, _body_bytes, handles, &mut req)?;
7314                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7315                        Ok(RunnerRequest::CallFlexibleTwoWayFields {
7316                            target: req.target,
7317
7318                            responder: RunnerCallFlexibleTwoWayFieldsResponder {
7319                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7320                                tx_id: header.tx_id,
7321                            },
7322                        })
7323                    }
7324                    0x5ddbf88a353a2a57 => {
7325                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7326                        let mut req = fidl::new_empty!(
7327                            RunnerCallFlexibleTwoWayErrRequest,
7328                            fidl::encoding::DefaultFuchsiaResourceDialect
7329                        );
7330                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayErrRequest>(&header, _body_bytes, handles, &mut req)?;
7331                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7332                        Ok(RunnerRequest::CallFlexibleTwoWayErr {
7333                            target: req.target,
7334
7335                            responder: RunnerCallFlexibleTwoWayErrResponder {
7336                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7337                                tx_id: header.tx_id,
7338                            },
7339                        })
7340                    }
7341                    0x7ae309383b07048e => {
7342                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7343                        let mut req = fidl::new_empty!(
7344                            RunnerCallFlexibleTwoWayFieldsErrRequest,
7345                            fidl::encoding::DefaultFuchsiaResourceDialect
7346                        );
7347                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerCallFlexibleTwoWayFieldsErrRequest>(&header, _body_bytes, handles, &mut req)?;
7348                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7349                        Ok(RunnerRequest::CallFlexibleTwoWayFieldsErr {
7350                            target: req.target,
7351
7352                            responder: RunnerCallFlexibleTwoWayFieldsErrResponder {
7353                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7354                                tx_id: header.tx_id,
7355                            },
7356                        })
7357                    }
7358                    0x48da834910571aeb => {
7359                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7360                        let mut req = fidl::new_empty!(
7361                            RunnerReceiveClosedEventsRequest,
7362                            fidl::encoding::DefaultFuchsiaResourceDialect
7363                        );
7364                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveClosedEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7365                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7366                        Ok(RunnerRequest::ReceiveClosedEvents {
7367                            target: req.target,
7368                            reporter: req.reporter,
7369
7370                            responder: RunnerReceiveClosedEventsResponder {
7371                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7372                                tx_id: header.tx_id,
7373                            },
7374                        })
7375                    }
7376                    0xc5662b9a9c007a3 => {
7377                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7378                        let mut req = fidl::new_empty!(
7379                            RunnerReceiveAjarEventsRequest,
7380                            fidl::encoding::DefaultFuchsiaResourceDialect
7381                        );
7382                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveAjarEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7383                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7384                        Ok(RunnerRequest::ReceiveAjarEvents {
7385                            target: req.target,
7386                            reporter: req.reporter,
7387
7388                            responder: RunnerReceiveAjarEventsResponder {
7389                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7390                                tx_id: header.tx_id,
7391                            },
7392                        })
7393                    }
7394                    0x79a7073fd18edbdf => {
7395                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7396                        let mut req = fidl::new_empty!(
7397                            RunnerReceiveOpenEventsRequest,
7398                            fidl::encoding::DefaultFuchsiaResourceDialect
7399                        );
7400                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<RunnerReceiveOpenEventsRequest>(&header, _body_bytes, handles, &mut req)?;
7401                        let control_handle = RunnerControlHandle { inner: this.inner.clone() };
7402                        Ok(RunnerRequest::ReceiveOpenEvents {
7403                            target: req.target,
7404                            reporter: req.reporter,
7405
7406                            responder: RunnerReceiveOpenEventsResponder {
7407                                control_handle: std::mem::ManuallyDrop::new(control_handle),
7408                                tx_id: header.tx_id,
7409                            },
7410                        })
7411                    }
7412                    _ => Err(fidl::Error::UnknownOrdinal {
7413                        ordinal: header.ordinal,
7414                        protocol_name:
7415                            <RunnerMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
7416                    }),
7417                }))
7418            },
7419        )
7420    }
7421}
7422
7423#[derive(Debug)]
7424pub enum RunnerRequest {
7425    GetVersion {
7426        responder: RunnerGetVersionResponder,
7427    },
7428    IsTestEnabled {
7429        test: Test,
7430        responder: RunnerIsTestEnabledResponder,
7431    },
7432    CheckAlive {
7433        responder: RunnerCheckAliveResponder,
7434    },
7435    GetBindingsProperties {
7436        responder: RunnerGetBindingsPropertiesResponder,
7437    },
7438    CallTwoWayNoPayload {
7439        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7440        responder: RunnerCallTwoWayNoPayloadResponder,
7441    },
7442    CallTwoWayStructPayload {
7443        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7444        responder: RunnerCallTwoWayStructPayloadResponder,
7445    },
7446    CallTwoWayTablePayload {
7447        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7448        responder: RunnerCallTwoWayTablePayloadResponder,
7449    },
7450    CallTwoWayUnionPayload {
7451        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7452        responder: RunnerCallTwoWayUnionPayloadResponder,
7453    },
7454    CallTwoWayStructPayloadErr {
7455        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7456        responder: RunnerCallTwoWayStructPayloadErrResponder,
7457    },
7458    CallTwoWayStructRequest {
7459        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7460        request: NonEmptyPayload,
7461        responder: RunnerCallTwoWayStructRequestResponder,
7462    },
7463    CallTwoWayTableRequest {
7464        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7465        request: TablePayload,
7466        responder: RunnerCallTwoWayTableRequestResponder,
7467    },
7468    CallTwoWayUnionRequest {
7469        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7470        request: UnionPayload,
7471        responder: RunnerCallTwoWayUnionRequestResponder,
7472    },
7473    CallOneWayNoRequest {
7474        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7475        responder: RunnerCallOneWayNoRequestResponder,
7476    },
7477    CallOneWayStructRequest {
7478        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7479        request: NonEmptyPayload,
7480        responder: RunnerCallOneWayStructRequestResponder,
7481    },
7482    CallOneWayTableRequest {
7483        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7484        request: TablePayload,
7485        responder: RunnerCallOneWayTableRequestResponder,
7486    },
7487    CallOneWayUnionRequest {
7488        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7489        request: UnionPayload,
7490        responder: RunnerCallOneWayUnionRequestResponder,
7491    },
7492    CallStrictOneWay {
7493        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7494        responder: RunnerCallStrictOneWayResponder,
7495    },
7496    CallFlexibleOneWay {
7497        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7498        responder: RunnerCallFlexibleOneWayResponder,
7499    },
7500    CallStrictTwoWay {
7501        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7502        responder: RunnerCallStrictTwoWayResponder,
7503    },
7504    CallStrictTwoWayFields {
7505        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7506        responder: RunnerCallStrictTwoWayFieldsResponder,
7507    },
7508    CallStrictTwoWayErr {
7509        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7510        responder: RunnerCallStrictTwoWayErrResponder,
7511    },
7512    CallStrictTwoWayFieldsErr {
7513        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7514        responder: RunnerCallStrictTwoWayFieldsErrResponder,
7515    },
7516    CallFlexibleTwoWay {
7517        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7518        responder: RunnerCallFlexibleTwoWayResponder,
7519    },
7520    CallFlexibleTwoWayFields {
7521        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7522        responder: RunnerCallFlexibleTwoWayFieldsResponder,
7523    },
7524    CallFlexibleTwoWayErr {
7525        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7526        responder: RunnerCallFlexibleTwoWayErrResponder,
7527    },
7528    CallFlexibleTwoWayFieldsErr {
7529        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7530        responder: RunnerCallFlexibleTwoWayFieldsErrResponder,
7531    },
7532    ReceiveClosedEvents {
7533        target: fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7534        reporter: fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7535        responder: RunnerReceiveClosedEventsResponder,
7536    },
7537    ReceiveAjarEvents {
7538        target: fidl::endpoints::ClientEnd<AjarTargetMarker>,
7539        reporter: fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7540        responder: RunnerReceiveAjarEventsResponder,
7541    },
7542    ReceiveOpenEvents {
7543        target: fidl::endpoints::ClientEnd<OpenTargetMarker>,
7544        reporter: fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7545        responder: RunnerReceiveOpenEventsResponder,
7546    },
7547}
7548
7549impl RunnerRequest {
7550    #[allow(irrefutable_let_patterns)]
7551    pub fn into_get_version(self) -> Option<(RunnerGetVersionResponder)> {
7552        if let RunnerRequest::GetVersion { responder } = self { Some((responder)) } else { None }
7553    }
7554
7555    #[allow(irrefutable_let_patterns)]
7556    pub fn into_is_test_enabled(self) -> Option<(Test, RunnerIsTestEnabledResponder)> {
7557        if let RunnerRequest::IsTestEnabled { test, responder } = self {
7558            Some((test, responder))
7559        } else {
7560            None
7561        }
7562    }
7563
7564    #[allow(irrefutable_let_patterns)]
7565    pub fn into_check_alive(self) -> Option<(RunnerCheckAliveResponder)> {
7566        if let RunnerRequest::CheckAlive { responder } = self { Some((responder)) } else { None }
7567    }
7568
7569    #[allow(irrefutable_let_patterns)]
7570    pub fn into_get_bindings_properties(self) -> Option<(RunnerGetBindingsPropertiesResponder)> {
7571        if let RunnerRequest::GetBindingsProperties { responder } = self {
7572            Some((responder))
7573        } else {
7574            None
7575        }
7576    }
7577
7578    #[allow(irrefutable_let_patterns)]
7579    pub fn into_call_two_way_no_payload(
7580        self,
7581    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallTwoWayNoPayloadResponder)>
7582    {
7583        if let RunnerRequest::CallTwoWayNoPayload { target, responder } = self {
7584            Some((target, responder))
7585        } else {
7586            None
7587        }
7588    }
7589
7590    #[allow(irrefutable_let_patterns)]
7591    pub fn into_call_two_way_struct_payload(
7592        self,
7593    ) -> Option<(
7594        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7595        RunnerCallTwoWayStructPayloadResponder,
7596    )> {
7597        if let RunnerRequest::CallTwoWayStructPayload { target, responder } = self {
7598            Some((target, responder))
7599        } else {
7600            None
7601        }
7602    }
7603
7604    #[allow(irrefutable_let_patterns)]
7605    pub fn into_call_two_way_table_payload(
7606        self,
7607    ) -> Option<(
7608        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7609        RunnerCallTwoWayTablePayloadResponder,
7610    )> {
7611        if let RunnerRequest::CallTwoWayTablePayload { target, responder } = self {
7612            Some((target, responder))
7613        } else {
7614            None
7615        }
7616    }
7617
7618    #[allow(irrefutable_let_patterns)]
7619    pub fn into_call_two_way_union_payload(
7620        self,
7621    ) -> Option<(
7622        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7623        RunnerCallTwoWayUnionPayloadResponder,
7624    )> {
7625        if let RunnerRequest::CallTwoWayUnionPayload { target, responder } = self {
7626            Some((target, responder))
7627        } else {
7628            None
7629        }
7630    }
7631
7632    #[allow(irrefutable_let_patterns)]
7633    pub fn into_call_two_way_struct_payload_err(
7634        self,
7635    ) -> Option<(
7636        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7637        RunnerCallTwoWayStructPayloadErrResponder,
7638    )> {
7639        if let RunnerRequest::CallTwoWayStructPayloadErr { target, responder } = self {
7640            Some((target, responder))
7641        } else {
7642            None
7643        }
7644    }
7645
7646    #[allow(irrefutable_let_patterns)]
7647    pub fn into_call_two_way_struct_request(
7648        self,
7649    ) -> Option<(
7650        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7651        NonEmptyPayload,
7652        RunnerCallTwoWayStructRequestResponder,
7653    )> {
7654        if let RunnerRequest::CallTwoWayStructRequest { target, request, responder } = self {
7655            Some((target, request, responder))
7656        } else {
7657            None
7658        }
7659    }
7660
7661    #[allow(irrefutable_let_patterns)]
7662    pub fn into_call_two_way_table_request(
7663        self,
7664    ) -> Option<(
7665        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7666        TablePayload,
7667        RunnerCallTwoWayTableRequestResponder,
7668    )> {
7669        if let RunnerRequest::CallTwoWayTableRequest { target, request, responder } = self {
7670            Some((target, request, responder))
7671        } else {
7672            None
7673        }
7674    }
7675
7676    #[allow(irrefutable_let_patterns)]
7677    pub fn into_call_two_way_union_request(
7678        self,
7679    ) -> Option<(
7680        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7681        UnionPayload,
7682        RunnerCallTwoWayUnionRequestResponder,
7683    )> {
7684        if let RunnerRequest::CallTwoWayUnionRequest { target, request, responder } = self {
7685            Some((target, request, responder))
7686        } else {
7687            None
7688        }
7689    }
7690
7691    #[allow(irrefutable_let_patterns)]
7692    pub fn into_call_one_way_no_request(
7693        self,
7694    ) -> Option<(fidl::endpoints::ClientEnd<ClosedTargetMarker>, RunnerCallOneWayNoRequestResponder)>
7695    {
7696        if let RunnerRequest::CallOneWayNoRequest { target, responder } = self {
7697            Some((target, responder))
7698        } else {
7699            None
7700        }
7701    }
7702
7703    #[allow(irrefutable_let_patterns)]
7704    pub fn into_call_one_way_struct_request(
7705        self,
7706    ) -> Option<(
7707        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7708        NonEmptyPayload,
7709        RunnerCallOneWayStructRequestResponder,
7710    )> {
7711        if let RunnerRequest::CallOneWayStructRequest { target, request, responder } = self {
7712            Some((target, request, responder))
7713        } else {
7714            None
7715        }
7716    }
7717
7718    #[allow(irrefutable_let_patterns)]
7719    pub fn into_call_one_way_table_request(
7720        self,
7721    ) -> Option<(
7722        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7723        TablePayload,
7724        RunnerCallOneWayTableRequestResponder,
7725    )> {
7726        if let RunnerRequest::CallOneWayTableRequest { target, request, responder } = self {
7727            Some((target, request, responder))
7728        } else {
7729            None
7730        }
7731    }
7732
7733    #[allow(irrefutable_let_patterns)]
7734    pub fn into_call_one_way_union_request(
7735        self,
7736    ) -> Option<(
7737        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7738        UnionPayload,
7739        RunnerCallOneWayUnionRequestResponder,
7740    )> {
7741        if let RunnerRequest::CallOneWayUnionRequest { target, request, responder } = self {
7742            Some((target, request, responder))
7743        } else {
7744            None
7745        }
7746    }
7747
7748    #[allow(irrefutable_let_patterns)]
7749    pub fn into_call_strict_one_way(
7750        self,
7751    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictOneWayResponder)>
7752    {
7753        if let RunnerRequest::CallStrictOneWay { target, responder } = self {
7754            Some((target, responder))
7755        } else {
7756            None
7757        }
7758    }
7759
7760    #[allow(irrefutable_let_patterns)]
7761    pub fn into_call_flexible_one_way(
7762        self,
7763    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleOneWayResponder)>
7764    {
7765        if let RunnerRequest::CallFlexibleOneWay { target, responder } = self {
7766            Some((target, responder))
7767        } else {
7768            None
7769        }
7770    }
7771
7772    #[allow(irrefutable_let_patterns)]
7773    pub fn into_call_strict_two_way(
7774        self,
7775    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayResponder)>
7776    {
7777        if let RunnerRequest::CallStrictTwoWay { target, responder } = self {
7778            Some((target, responder))
7779        } else {
7780            None
7781        }
7782    }
7783
7784    #[allow(irrefutable_let_patterns)]
7785    pub fn into_call_strict_two_way_fields(
7786        self,
7787    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayFieldsResponder)>
7788    {
7789        if let RunnerRequest::CallStrictTwoWayFields { target, responder } = self {
7790            Some((target, responder))
7791        } else {
7792            None
7793        }
7794    }
7795
7796    #[allow(irrefutable_let_patterns)]
7797    pub fn into_call_strict_two_way_err(
7798        self,
7799    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallStrictTwoWayErrResponder)>
7800    {
7801        if let RunnerRequest::CallStrictTwoWayErr { target, responder } = self {
7802            Some((target, responder))
7803        } else {
7804            None
7805        }
7806    }
7807
7808    #[allow(irrefutable_let_patterns)]
7809    pub fn into_call_strict_two_way_fields_err(
7810        self,
7811    ) -> Option<(
7812        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7813        RunnerCallStrictTwoWayFieldsErrResponder,
7814    )> {
7815        if let RunnerRequest::CallStrictTwoWayFieldsErr { target, responder } = self {
7816            Some((target, responder))
7817        } else {
7818            None
7819        }
7820    }
7821
7822    #[allow(irrefutable_let_patterns)]
7823    pub fn into_call_flexible_two_way(
7824        self,
7825    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayResponder)>
7826    {
7827        if let RunnerRequest::CallFlexibleTwoWay { target, responder } = self {
7828            Some((target, responder))
7829        } else {
7830            None
7831        }
7832    }
7833
7834    #[allow(irrefutable_let_patterns)]
7835    pub fn into_call_flexible_two_way_fields(
7836        self,
7837    ) -> Option<(
7838        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7839        RunnerCallFlexibleTwoWayFieldsResponder,
7840    )> {
7841        if let RunnerRequest::CallFlexibleTwoWayFields { target, responder } = self {
7842            Some((target, responder))
7843        } else {
7844            None
7845        }
7846    }
7847
7848    #[allow(irrefutable_let_patterns)]
7849    pub fn into_call_flexible_two_way_err(
7850        self,
7851    ) -> Option<(fidl::endpoints::ClientEnd<OpenTargetMarker>, RunnerCallFlexibleTwoWayErrResponder)>
7852    {
7853        if let RunnerRequest::CallFlexibleTwoWayErr { target, responder } = self {
7854            Some((target, responder))
7855        } else {
7856            None
7857        }
7858    }
7859
7860    #[allow(irrefutable_let_patterns)]
7861    pub fn into_call_flexible_two_way_fields_err(
7862        self,
7863    ) -> Option<(
7864        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7865        RunnerCallFlexibleTwoWayFieldsErrResponder,
7866    )> {
7867        if let RunnerRequest::CallFlexibleTwoWayFieldsErr { target, responder } = self {
7868            Some((target, responder))
7869        } else {
7870            None
7871        }
7872    }
7873
7874    #[allow(irrefutable_let_patterns)]
7875    pub fn into_receive_closed_events(
7876        self,
7877    ) -> Option<(
7878        fidl::endpoints::ClientEnd<ClosedTargetMarker>,
7879        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
7880        RunnerReceiveClosedEventsResponder,
7881    )> {
7882        if let RunnerRequest::ReceiveClosedEvents { target, reporter, responder } = self {
7883            Some((target, reporter, responder))
7884        } else {
7885            None
7886        }
7887    }
7888
7889    #[allow(irrefutable_let_patterns)]
7890    pub fn into_receive_ajar_events(
7891        self,
7892    ) -> Option<(
7893        fidl::endpoints::ClientEnd<AjarTargetMarker>,
7894        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
7895        RunnerReceiveAjarEventsResponder,
7896    )> {
7897        if let RunnerRequest::ReceiveAjarEvents { target, reporter, responder } = self {
7898            Some((target, reporter, responder))
7899        } else {
7900            None
7901        }
7902    }
7903
7904    #[allow(irrefutable_let_patterns)]
7905    pub fn into_receive_open_events(
7906        self,
7907    ) -> Option<(
7908        fidl::endpoints::ClientEnd<OpenTargetMarker>,
7909        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
7910        RunnerReceiveOpenEventsResponder,
7911    )> {
7912        if let RunnerRequest::ReceiveOpenEvents { target, reporter, responder } = self {
7913            Some((target, reporter, responder))
7914        } else {
7915            None
7916        }
7917    }
7918
7919    /// Name of the method defined in FIDL
7920    pub fn method_name(&self) -> &'static str {
7921        match *self {
7922            RunnerRequest::GetVersion { .. } => "get_version",
7923            RunnerRequest::IsTestEnabled { .. } => "is_test_enabled",
7924            RunnerRequest::CheckAlive { .. } => "check_alive",
7925            RunnerRequest::GetBindingsProperties { .. } => "get_bindings_properties",
7926            RunnerRequest::CallTwoWayNoPayload { .. } => "call_two_way_no_payload",
7927            RunnerRequest::CallTwoWayStructPayload { .. } => "call_two_way_struct_payload",
7928            RunnerRequest::CallTwoWayTablePayload { .. } => "call_two_way_table_payload",
7929            RunnerRequest::CallTwoWayUnionPayload { .. } => "call_two_way_union_payload",
7930            RunnerRequest::CallTwoWayStructPayloadErr { .. } => "call_two_way_struct_payload_err",
7931            RunnerRequest::CallTwoWayStructRequest { .. } => "call_two_way_struct_request",
7932            RunnerRequest::CallTwoWayTableRequest { .. } => "call_two_way_table_request",
7933            RunnerRequest::CallTwoWayUnionRequest { .. } => "call_two_way_union_request",
7934            RunnerRequest::CallOneWayNoRequest { .. } => "call_one_way_no_request",
7935            RunnerRequest::CallOneWayStructRequest { .. } => "call_one_way_struct_request",
7936            RunnerRequest::CallOneWayTableRequest { .. } => "call_one_way_table_request",
7937            RunnerRequest::CallOneWayUnionRequest { .. } => "call_one_way_union_request",
7938            RunnerRequest::CallStrictOneWay { .. } => "call_strict_one_way",
7939            RunnerRequest::CallFlexibleOneWay { .. } => "call_flexible_one_way",
7940            RunnerRequest::CallStrictTwoWay { .. } => "call_strict_two_way",
7941            RunnerRequest::CallStrictTwoWayFields { .. } => "call_strict_two_way_fields",
7942            RunnerRequest::CallStrictTwoWayErr { .. } => "call_strict_two_way_err",
7943            RunnerRequest::CallStrictTwoWayFieldsErr { .. } => "call_strict_two_way_fields_err",
7944            RunnerRequest::CallFlexibleTwoWay { .. } => "call_flexible_two_way",
7945            RunnerRequest::CallFlexibleTwoWayFields { .. } => "call_flexible_two_way_fields",
7946            RunnerRequest::CallFlexibleTwoWayErr { .. } => "call_flexible_two_way_err",
7947            RunnerRequest::CallFlexibleTwoWayFieldsErr { .. } => "call_flexible_two_way_fields_err",
7948            RunnerRequest::ReceiveClosedEvents { .. } => "receive_closed_events",
7949            RunnerRequest::ReceiveAjarEvents { .. } => "receive_ajar_events",
7950            RunnerRequest::ReceiveOpenEvents { .. } => "receive_open_events",
7951        }
7952    }
7953}
7954
7955#[derive(Debug, Clone)]
7956pub struct RunnerControlHandle {
7957    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7958}
7959
7960impl fidl::endpoints::ControlHandle for RunnerControlHandle {
7961    fn shutdown(&self) {
7962        self.inner.shutdown()
7963    }
7964    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
7965        self.inner.shutdown_with_epitaph(status)
7966    }
7967
7968    fn is_closed(&self) -> bool {
7969        self.inner.channel().is_closed()
7970    }
7971    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
7972        self.inner.channel().on_closed()
7973    }
7974
7975    #[cfg(target_os = "fuchsia")]
7976    fn signal_peer(
7977        &self,
7978        clear_mask: zx::Signals,
7979        set_mask: zx::Signals,
7980    ) -> Result<(), zx_status::Status> {
7981        use fidl::Peered;
7982        self.inner.channel().signal_peer(clear_mask, set_mask)
7983    }
7984}
7985
7986impl RunnerControlHandle {}
7987
7988#[must_use = "FIDL methods require a response to be sent"]
7989#[derive(Debug)]
7990pub struct RunnerGetVersionResponder {
7991    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
7992    tx_id: u32,
7993}
7994
7995/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
7996/// if the responder is dropped without sending a response, so that the client
7997/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
7998impl std::ops::Drop for RunnerGetVersionResponder {
7999    fn drop(&mut self) {
8000        self.control_handle.shutdown();
8001        // Safety: drops once, never accessed again
8002        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8003    }
8004}
8005
8006impl fidl::endpoints::Responder for RunnerGetVersionResponder {
8007    type ControlHandle = RunnerControlHandle;
8008
8009    fn control_handle(&self) -> &RunnerControlHandle {
8010        &self.control_handle
8011    }
8012
8013    fn drop_without_shutdown(mut self) {
8014        // Safety: drops once, never accessed again due to mem::forget
8015        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8016        // Prevent Drop from running (which would shut down the channel)
8017        std::mem::forget(self);
8018    }
8019}
8020
8021impl RunnerGetVersionResponder {
8022    /// Sends a response to the FIDL transaction.
8023    ///
8024    /// Sets the channel to shutdown if an error occurs.
8025    pub fn send(self, mut version: u64) -> Result<(), fidl::Error> {
8026        let _result = self.send_raw(version);
8027        if _result.is_err() {
8028            self.control_handle.shutdown();
8029        }
8030        self.drop_without_shutdown();
8031        _result
8032    }
8033
8034    /// Similar to "send" but does not shutdown the channel if an error occurs.
8035    pub fn send_no_shutdown_on_err(self, mut version: u64) -> Result<(), fidl::Error> {
8036        let _result = self.send_raw(version);
8037        self.drop_without_shutdown();
8038        _result
8039    }
8040
8041    fn send_raw(&self, mut version: u64) -> Result<(), fidl::Error> {
8042        self.control_handle.inner.send::<RunnerGetVersionResponse>(
8043            (version,),
8044            self.tx_id,
8045            0x555d1430b913cdd4,
8046            fidl::encoding::DynamicFlags::empty(),
8047        )
8048    }
8049}
8050
8051#[must_use = "FIDL methods require a response to be sent"]
8052#[derive(Debug)]
8053pub struct RunnerIsTestEnabledResponder {
8054    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8055    tx_id: u32,
8056}
8057
8058/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8059/// if the responder is dropped without sending a response, so that the client
8060/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8061impl std::ops::Drop for RunnerIsTestEnabledResponder {
8062    fn drop(&mut self) {
8063        self.control_handle.shutdown();
8064        // Safety: drops once, never accessed again
8065        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8066    }
8067}
8068
8069impl fidl::endpoints::Responder for RunnerIsTestEnabledResponder {
8070    type ControlHandle = RunnerControlHandle;
8071
8072    fn control_handle(&self) -> &RunnerControlHandle {
8073        &self.control_handle
8074    }
8075
8076    fn drop_without_shutdown(mut self) {
8077        // Safety: drops once, never accessed again due to mem::forget
8078        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8079        // Prevent Drop from running (which would shut down the channel)
8080        std::mem::forget(self);
8081    }
8082}
8083
8084impl RunnerIsTestEnabledResponder {
8085    /// Sends a response to the FIDL transaction.
8086    ///
8087    /// Sets the channel to shutdown if an error occurs.
8088    pub fn send(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8089        let _result = self.send_raw(is_enabled);
8090        if _result.is_err() {
8091            self.control_handle.shutdown();
8092        }
8093        self.drop_without_shutdown();
8094        _result
8095    }
8096
8097    /// Similar to "send" but does not shutdown the channel if an error occurs.
8098    pub fn send_no_shutdown_on_err(self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8099        let _result = self.send_raw(is_enabled);
8100        self.drop_without_shutdown();
8101        _result
8102    }
8103
8104    fn send_raw(&self, mut is_enabled: bool) -> Result<(), fidl::Error> {
8105        self.control_handle.inner.send::<RunnerIsTestEnabledResponse>(
8106            (is_enabled,),
8107            self.tx_id,
8108            0x755bc493368d7c50,
8109            fidl::encoding::DynamicFlags::empty(),
8110        )
8111    }
8112}
8113
8114#[must_use = "FIDL methods require a response to be sent"]
8115#[derive(Debug)]
8116pub struct RunnerCheckAliveResponder {
8117    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8118    tx_id: u32,
8119}
8120
8121/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8122/// if the responder is dropped without sending a response, so that the client
8123/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8124impl std::ops::Drop for RunnerCheckAliveResponder {
8125    fn drop(&mut self) {
8126        self.control_handle.shutdown();
8127        // Safety: drops once, never accessed again
8128        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8129    }
8130}
8131
8132impl fidl::endpoints::Responder for RunnerCheckAliveResponder {
8133    type ControlHandle = RunnerControlHandle;
8134
8135    fn control_handle(&self) -> &RunnerControlHandle {
8136        &self.control_handle
8137    }
8138
8139    fn drop_without_shutdown(mut self) {
8140        // Safety: drops once, never accessed again due to mem::forget
8141        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8142        // Prevent Drop from running (which would shut down the channel)
8143        std::mem::forget(self);
8144    }
8145}
8146
8147impl RunnerCheckAliveResponder {
8148    /// Sends a response to the FIDL transaction.
8149    ///
8150    /// Sets the channel to shutdown if an error occurs.
8151    pub fn send(self) -> Result<(), fidl::Error> {
8152        let _result = self.send_raw();
8153        if _result.is_err() {
8154            self.control_handle.shutdown();
8155        }
8156        self.drop_without_shutdown();
8157        _result
8158    }
8159
8160    /// Similar to "send" but does not shutdown the channel if an error occurs.
8161    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8162        let _result = self.send_raw();
8163        self.drop_without_shutdown();
8164        _result
8165    }
8166
8167    fn send_raw(&self) -> Result<(), fidl::Error> {
8168        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8169            (),
8170            self.tx_id,
8171            0x5a77b04abdfde130,
8172            fidl::encoding::DynamicFlags::empty(),
8173        )
8174    }
8175}
8176
8177#[must_use = "FIDL methods require a response to be sent"]
8178#[derive(Debug)]
8179pub struct RunnerGetBindingsPropertiesResponder {
8180    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8181    tx_id: u32,
8182}
8183
8184/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8185/// if the responder is dropped without sending a response, so that the client
8186/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8187impl std::ops::Drop for RunnerGetBindingsPropertiesResponder {
8188    fn drop(&mut self) {
8189        self.control_handle.shutdown();
8190        // Safety: drops once, never accessed again
8191        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8192    }
8193}
8194
8195impl fidl::endpoints::Responder for RunnerGetBindingsPropertiesResponder {
8196    type ControlHandle = RunnerControlHandle;
8197
8198    fn control_handle(&self) -> &RunnerControlHandle {
8199        &self.control_handle
8200    }
8201
8202    fn drop_without_shutdown(mut self) {
8203        // Safety: drops once, never accessed again due to mem::forget
8204        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8205        // Prevent Drop from running (which would shut down the channel)
8206        std::mem::forget(self);
8207    }
8208}
8209
8210impl RunnerGetBindingsPropertiesResponder {
8211    /// Sends a response to the FIDL transaction.
8212    ///
8213    /// Sets the channel to shutdown if an error occurs.
8214    pub fn send(self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8215        let _result = self.send_raw(payload);
8216        if _result.is_err() {
8217            self.control_handle.shutdown();
8218        }
8219        self.drop_without_shutdown();
8220        _result
8221    }
8222
8223    /// Similar to "send" but does not shutdown the channel if an error occurs.
8224    pub fn send_no_shutdown_on_err(
8225        self,
8226        mut payload: &BindingsProperties,
8227    ) -> Result<(), fidl::Error> {
8228        let _result = self.send_raw(payload);
8229        self.drop_without_shutdown();
8230        _result
8231    }
8232
8233    fn send_raw(&self, mut payload: &BindingsProperties) -> Result<(), fidl::Error> {
8234        self.control_handle.inner.send::<BindingsProperties>(
8235            payload,
8236            self.tx_id,
8237            0x76b5610bfd4fa636,
8238            fidl::encoding::DynamicFlags::empty(),
8239        )
8240    }
8241}
8242
8243#[must_use = "FIDL methods require a response to be sent"]
8244#[derive(Debug)]
8245pub struct RunnerCallTwoWayNoPayloadResponder {
8246    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8247    tx_id: u32,
8248}
8249
8250/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8251/// if the responder is dropped without sending a response, so that the client
8252/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8253impl std::ops::Drop for RunnerCallTwoWayNoPayloadResponder {
8254    fn drop(&mut self) {
8255        self.control_handle.shutdown();
8256        // Safety: drops once, never accessed again
8257        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8258    }
8259}
8260
8261impl fidl::endpoints::Responder for RunnerCallTwoWayNoPayloadResponder {
8262    type ControlHandle = RunnerControlHandle;
8263
8264    fn control_handle(&self) -> &RunnerControlHandle {
8265        &self.control_handle
8266    }
8267
8268    fn drop_without_shutdown(mut self) {
8269        // Safety: drops once, never accessed again due to mem::forget
8270        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8271        // Prevent Drop from running (which would shut down the channel)
8272        std::mem::forget(self);
8273    }
8274}
8275
8276impl RunnerCallTwoWayNoPayloadResponder {
8277    /// Sends a response to the FIDL transaction.
8278    ///
8279    /// Sets the channel to shutdown if an error occurs.
8280    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8281        let _result = self.send_raw(payload);
8282        if _result.is_err() {
8283            self.control_handle.shutdown();
8284        }
8285        self.drop_without_shutdown();
8286        _result
8287    }
8288
8289    /// Similar to "send" but does not shutdown the channel if an error occurs.
8290    pub fn send_no_shutdown_on_err(
8291        self,
8292        mut payload: &EmptyResultClassification,
8293    ) -> Result<(), fidl::Error> {
8294        let _result = self.send_raw(payload);
8295        self.drop_without_shutdown();
8296        _result
8297    }
8298
8299    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8300        self.control_handle.inner.send::<EmptyResultClassification>(
8301            payload,
8302            self.tx_id,
8303            0x53ac710c20b320a1,
8304            fidl::encoding::DynamicFlags::empty(),
8305        )
8306    }
8307}
8308
8309#[must_use = "FIDL methods require a response to be sent"]
8310#[derive(Debug)]
8311pub struct RunnerCallTwoWayStructPayloadResponder {
8312    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8313    tx_id: u32,
8314}
8315
8316/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8317/// if the responder is dropped without sending a response, so that the client
8318/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8319impl std::ops::Drop for RunnerCallTwoWayStructPayloadResponder {
8320    fn drop(&mut self) {
8321        self.control_handle.shutdown();
8322        // Safety: drops once, never accessed again
8323        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8324    }
8325}
8326
8327impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadResponder {
8328    type ControlHandle = RunnerControlHandle;
8329
8330    fn control_handle(&self) -> &RunnerControlHandle {
8331        &self.control_handle
8332    }
8333
8334    fn drop_without_shutdown(mut self) {
8335        // Safety: drops once, never accessed again due to mem::forget
8336        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8337        // Prevent Drop from running (which would shut down the channel)
8338        std::mem::forget(self);
8339    }
8340}
8341
8342impl RunnerCallTwoWayStructPayloadResponder {
8343    /// Sends a response to the FIDL transaction.
8344    ///
8345    /// Sets the channel to shutdown if an error occurs.
8346    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8347        let _result = self.send_raw(payload);
8348        if _result.is_err() {
8349            self.control_handle.shutdown();
8350        }
8351        self.drop_without_shutdown();
8352        _result
8353    }
8354
8355    /// Similar to "send" but does not shutdown the channel if an error occurs.
8356    pub fn send_no_shutdown_on_err(
8357        self,
8358        mut payload: &NonEmptyResultClassification,
8359    ) -> Result<(), fidl::Error> {
8360        let _result = self.send_raw(payload);
8361        self.drop_without_shutdown();
8362        _result
8363    }
8364
8365    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
8366        self.control_handle.inner.send::<NonEmptyResultClassification>(
8367            payload,
8368            self.tx_id,
8369            0x24e98c668499b946,
8370            fidl::encoding::DynamicFlags::empty(),
8371        )
8372    }
8373}
8374
8375#[must_use = "FIDL methods require a response to be sent"]
8376#[derive(Debug)]
8377pub struct RunnerCallTwoWayTablePayloadResponder {
8378    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8379    tx_id: u32,
8380}
8381
8382/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8383/// if the responder is dropped without sending a response, so that the client
8384/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8385impl std::ops::Drop for RunnerCallTwoWayTablePayloadResponder {
8386    fn drop(&mut self) {
8387        self.control_handle.shutdown();
8388        // Safety: drops once, never accessed again
8389        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8390    }
8391}
8392
8393impl fidl::endpoints::Responder for RunnerCallTwoWayTablePayloadResponder {
8394    type ControlHandle = RunnerControlHandle;
8395
8396    fn control_handle(&self) -> &RunnerControlHandle {
8397        &self.control_handle
8398    }
8399
8400    fn drop_without_shutdown(mut self) {
8401        // Safety: drops once, never accessed again due to mem::forget
8402        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8403        // Prevent Drop from running (which would shut down the channel)
8404        std::mem::forget(self);
8405    }
8406}
8407
8408impl RunnerCallTwoWayTablePayloadResponder {
8409    /// Sends a response to the FIDL transaction.
8410    ///
8411    /// Sets the channel to shutdown if an error occurs.
8412    pub fn send(self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8413        let _result = self.send_raw(payload);
8414        if _result.is_err() {
8415            self.control_handle.shutdown();
8416        }
8417        self.drop_without_shutdown();
8418        _result
8419    }
8420
8421    /// Similar to "send" but does not shutdown the channel if an error occurs.
8422    pub fn send_no_shutdown_on_err(
8423        self,
8424        mut payload: &TableResultClassification,
8425    ) -> Result<(), fidl::Error> {
8426        let _result = self.send_raw(payload);
8427        self.drop_without_shutdown();
8428        _result
8429    }
8430
8431    fn send_raw(&self, mut payload: &TableResultClassification) -> Result<(), fidl::Error> {
8432        self.control_handle.inner.send::<TableResultClassification>(
8433            payload,
8434            self.tx_id,
8435            0x72e428e1605b76a,
8436            fidl::encoding::DynamicFlags::empty(),
8437        )
8438    }
8439}
8440
8441#[must_use = "FIDL methods require a response to be sent"]
8442#[derive(Debug)]
8443pub struct RunnerCallTwoWayUnionPayloadResponder {
8444    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8445    tx_id: u32,
8446}
8447
8448/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8449/// if the responder is dropped without sending a response, so that the client
8450/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8451impl std::ops::Drop for RunnerCallTwoWayUnionPayloadResponder {
8452    fn drop(&mut self) {
8453        self.control_handle.shutdown();
8454        // Safety: drops once, never accessed again
8455        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8456    }
8457}
8458
8459impl fidl::endpoints::Responder for RunnerCallTwoWayUnionPayloadResponder {
8460    type ControlHandle = RunnerControlHandle;
8461
8462    fn control_handle(&self) -> &RunnerControlHandle {
8463        &self.control_handle
8464    }
8465
8466    fn drop_without_shutdown(mut self) {
8467        // Safety: drops once, never accessed again due to mem::forget
8468        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8469        // Prevent Drop from running (which would shut down the channel)
8470        std::mem::forget(self);
8471    }
8472}
8473
8474impl RunnerCallTwoWayUnionPayloadResponder {
8475    /// Sends a response to the FIDL transaction.
8476    ///
8477    /// Sets the channel to shutdown if an error occurs.
8478    pub fn send(self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8479        let _result = self.send_raw(payload);
8480        if _result.is_err() {
8481            self.control_handle.shutdown();
8482        }
8483        self.drop_without_shutdown();
8484        _result
8485    }
8486
8487    /// Similar to "send" but does not shutdown the channel if an error occurs.
8488    pub fn send_no_shutdown_on_err(
8489        self,
8490        mut payload: &UnionResultClassification,
8491    ) -> Result<(), fidl::Error> {
8492        let _result = self.send_raw(payload);
8493        self.drop_without_shutdown();
8494        _result
8495    }
8496
8497    fn send_raw(&self, mut payload: &UnionResultClassification) -> Result<(), fidl::Error> {
8498        self.control_handle.inner.send::<UnionResultClassification>(
8499            payload,
8500            self.tx_id,
8501            0x7dc9d67218343860,
8502            fidl::encoding::DynamicFlags::empty(),
8503        )
8504    }
8505}
8506
8507#[must_use = "FIDL methods require a response to be sent"]
8508#[derive(Debug)]
8509pub struct RunnerCallTwoWayStructPayloadErrResponder {
8510    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8511    tx_id: u32,
8512}
8513
8514/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8515/// if the responder is dropped without sending a response, so that the client
8516/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8517impl std::ops::Drop for RunnerCallTwoWayStructPayloadErrResponder {
8518    fn drop(&mut self) {
8519        self.control_handle.shutdown();
8520        // Safety: drops once, never accessed again
8521        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8522    }
8523}
8524
8525impl fidl::endpoints::Responder for RunnerCallTwoWayStructPayloadErrResponder {
8526    type ControlHandle = RunnerControlHandle;
8527
8528    fn control_handle(&self) -> &RunnerControlHandle {
8529        &self.control_handle
8530    }
8531
8532    fn drop_without_shutdown(mut self) {
8533        // Safety: drops once, never accessed again due to mem::forget
8534        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8535        // Prevent Drop from running (which would shut down the channel)
8536        std::mem::forget(self);
8537    }
8538}
8539
8540impl RunnerCallTwoWayStructPayloadErrResponder {
8541    /// Sends a response to the FIDL transaction.
8542    ///
8543    /// Sets the channel to shutdown if an error occurs.
8544    pub fn send(
8545        self,
8546        mut payload: &NonEmptyResultWithErrorClassification,
8547    ) -> Result<(), fidl::Error> {
8548        let _result = self.send_raw(payload);
8549        if _result.is_err() {
8550            self.control_handle.shutdown();
8551        }
8552        self.drop_without_shutdown();
8553        _result
8554    }
8555
8556    /// Similar to "send" but does not shutdown the channel if an error occurs.
8557    pub fn send_no_shutdown_on_err(
8558        self,
8559        mut payload: &NonEmptyResultWithErrorClassification,
8560    ) -> Result<(), fidl::Error> {
8561        let _result = self.send_raw(payload);
8562        self.drop_without_shutdown();
8563        _result
8564    }
8565
8566    fn send_raw(
8567        &self,
8568        mut payload: &NonEmptyResultWithErrorClassification,
8569    ) -> Result<(), fidl::Error> {
8570        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
8571            payload,
8572            self.tx_id,
8573            0x2b07a57942c5f6e5,
8574            fidl::encoding::DynamicFlags::empty(),
8575        )
8576    }
8577}
8578
8579#[must_use = "FIDL methods require a response to be sent"]
8580#[derive(Debug)]
8581pub struct RunnerCallTwoWayStructRequestResponder {
8582    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8583    tx_id: u32,
8584}
8585
8586/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8587/// if the responder is dropped without sending a response, so that the client
8588/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8589impl std::ops::Drop for RunnerCallTwoWayStructRequestResponder {
8590    fn drop(&mut self) {
8591        self.control_handle.shutdown();
8592        // Safety: drops once, never accessed again
8593        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8594    }
8595}
8596
8597impl fidl::endpoints::Responder for RunnerCallTwoWayStructRequestResponder {
8598    type ControlHandle = RunnerControlHandle;
8599
8600    fn control_handle(&self) -> &RunnerControlHandle {
8601        &self.control_handle
8602    }
8603
8604    fn drop_without_shutdown(mut self) {
8605        // Safety: drops once, never accessed again due to mem::forget
8606        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8607        // Prevent Drop from running (which would shut down the channel)
8608        std::mem::forget(self);
8609    }
8610}
8611
8612impl RunnerCallTwoWayStructRequestResponder {
8613    /// Sends a response to the FIDL transaction.
8614    ///
8615    /// Sets the channel to shutdown if an error occurs.
8616    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8617        let _result = self.send_raw(payload);
8618        if _result.is_err() {
8619            self.control_handle.shutdown();
8620        }
8621        self.drop_without_shutdown();
8622        _result
8623    }
8624
8625    /// Similar to "send" but does not shutdown the channel if an error occurs.
8626    pub fn send_no_shutdown_on_err(
8627        self,
8628        mut payload: &EmptyResultClassification,
8629    ) -> Result<(), fidl::Error> {
8630        let _result = self.send_raw(payload);
8631        self.drop_without_shutdown();
8632        _result
8633    }
8634
8635    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8636        self.control_handle.inner.send::<EmptyResultClassification>(
8637            payload,
8638            self.tx_id,
8639            0x7c00a6ba2e6c9b45,
8640            fidl::encoding::DynamicFlags::empty(),
8641        )
8642    }
8643}
8644
8645#[must_use = "FIDL methods require a response to be sent"]
8646#[derive(Debug)]
8647pub struct RunnerCallTwoWayTableRequestResponder {
8648    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8649    tx_id: u32,
8650}
8651
8652/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8653/// if the responder is dropped without sending a response, so that the client
8654/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8655impl std::ops::Drop for RunnerCallTwoWayTableRequestResponder {
8656    fn drop(&mut self) {
8657        self.control_handle.shutdown();
8658        // Safety: drops once, never accessed again
8659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8660    }
8661}
8662
8663impl fidl::endpoints::Responder for RunnerCallTwoWayTableRequestResponder {
8664    type ControlHandle = RunnerControlHandle;
8665
8666    fn control_handle(&self) -> &RunnerControlHandle {
8667        &self.control_handle
8668    }
8669
8670    fn drop_without_shutdown(mut self) {
8671        // Safety: drops once, never accessed again due to mem::forget
8672        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8673        // Prevent Drop from running (which would shut down the channel)
8674        std::mem::forget(self);
8675    }
8676}
8677
8678impl RunnerCallTwoWayTableRequestResponder {
8679    /// Sends a response to the FIDL transaction.
8680    ///
8681    /// Sets the channel to shutdown if an error occurs.
8682    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8683        let _result = self.send_raw(payload);
8684        if _result.is_err() {
8685            self.control_handle.shutdown();
8686        }
8687        self.drop_without_shutdown();
8688        _result
8689    }
8690
8691    /// Similar to "send" but does not shutdown the channel if an error occurs.
8692    pub fn send_no_shutdown_on_err(
8693        self,
8694        mut payload: &EmptyResultClassification,
8695    ) -> Result<(), fidl::Error> {
8696        let _result = self.send_raw(payload);
8697        self.drop_without_shutdown();
8698        _result
8699    }
8700
8701    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8702        self.control_handle.inner.send::<EmptyResultClassification>(
8703            payload,
8704            self.tx_id,
8705            0x641763237d3885be,
8706            fidl::encoding::DynamicFlags::empty(),
8707        )
8708    }
8709}
8710
8711#[must_use = "FIDL methods require a response to be sent"]
8712#[derive(Debug)]
8713pub struct RunnerCallTwoWayUnionRequestResponder {
8714    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8715    tx_id: u32,
8716}
8717
8718/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8719/// if the responder is dropped without sending a response, so that the client
8720/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8721impl std::ops::Drop for RunnerCallTwoWayUnionRequestResponder {
8722    fn drop(&mut self) {
8723        self.control_handle.shutdown();
8724        // Safety: drops once, never accessed again
8725        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8726    }
8727}
8728
8729impl fidl::endpoints::Responder for RunnerCallTwoWayUnionRequestResponder {
8730    type ControlHandle = RunnerControlHandle;
8731
8732    fn control_handle(&self) -> &RunnerControlHandle {
8733        &self.control_handle
8734    }
8735
8736    fn drop_without_shutdown(mut self) {
8737        // Safety: drops once, never accessed again due to mem::forget
8738        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8739        // Prevent Drop from running (which would shut down the channel)
8740        std::mem::forget(self);
8741    }
8742}
8743
8744impl RunnerCallTwoWayUnionRequestResponder {
8745    /// Sends a response to the FIDL transaction.
8746    ///
8747    /// Sets the channel to shutdown if an error occurs.
8748    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8749        let _result = self.send_raw(payload);
8750        if _result.is_err() {
8751            self.control_handle.shutdown();
8752        }
8753        self.drop_without_shutdown();
8754        _result
8755    }
8756
8757    /// Similar to "send" but does not shutdown the channel if an error occurs.
8758    pub fn send_no_shutdown_on_err(
8759        self,
8760        mut payload: &EmptyResultClassification,
8761    ) -> Result<(), fidl::Error> {
8762        let _result = self.send_raw(payload);
8763        self.drop_without_shutdown();
8764        _result
8765    }
8766
8767    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8768        self.control_handle.inner.send::<EmptyResultClassification>(
8769            payload,
8770            self.tx_id,
8771            0x4be5f061df42619e,
8772            fidl::encoding::DynamicFlags::empty(),
8773        )
8774    }
8775}
8776
8777#[must_use = "FIDL methods require a response to be sent"]
8778#[derive(Debug)]
8779pub struct RunnerCallOneWayNoRequestResponder {
8780    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8781    tx_id: u32,
8782}
8783
8784/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8785/// if the responder is dropped without sending a response, so that the client
8786/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8787impl std::ops::Drop for RunnerCallOneWayNoRequestResponder {
8788    fn drop(&mut self) {
8789        self.control_handle.shutdown();
8790        // Safety: drops once, never accessed again
8791        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8792    }
8793}
8794
8795impl fidl::endpoints::Responder for RunnerCallOneWayNoRequestResponder {
8796    type ControlHandle = RunnerControlHandle;
8797
8798    fn control_handle(&self) -> &RunnerControlHandle {
8799        &self.control_handle
8800    }
8801
8802    fn drop_without_shutdown(mut self) {
8803        // Safety: drops once, never accessed again due to mem::forget
8804        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8805        // Prevent Drop from running (which would shut down the channel)
8806        std::mem::forget(self);
8807    }
8808}
8809
8810impl RunnerCallOneWayNoRequestResponder {
8811    /// Sends a response to the FIDL transaction.
8812    ///
8813    /// Sets the channel to shutdown if an error occurs.
8814    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8815        let _result = self.send_raw(payload);
8816        if _result.is_err() {
8817            self.control_handle.shutdown();
8818        }
8819        self.drop_without_shutdown();
8820        _result
8821    }
8822
8823    /// Similar to "send" but does not shutdown the channel if an error occurs.
8824    pub fn send_no_shutdown_on_err(
8825        self,
8826        mut payload: &EmptyResultClassification,
8827    ) -> Result<(), fidl::Error> {
8828        let _result = self.send_raw(payload);
8829        self.drop_without_shutdown();
8830        _result
8831    }
8832
8833    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8834        self.control_handle.inner.send::<EmptyResultClassification>(
8835            payload,
8836            self.tx_id,
8837            0x24b6eea8cbdccc09,
8838            fidl::encoding::DynamicFlags::empty(),
8839        )
8840    }
8841}
8842
8843#[must_use = "FIDL methods require a response to be sent"]
8844#[derive(Debug)]
8845pub struct RunnerCallOneWayStructRequestResponder {
8846    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8847    tx_id: u32,
8848}
8849
8850/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8851/// if the responder is dropped without sending a response, so that the client
8852/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8853impl std::ops::Drop for RunnerCallOneWayStructRequestResponder {
8854    fn drop(&mut self) {
8855        self.control_handle.shutdown();
8856        // Safety: drops once, never accessed again
8857        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8858    }
8859}
8860
8861impl fidl::endpoints::Responder for RunnerCallOneWayStructRequestResponder {
8862    type ControlHandle = RunnerControlHandle;
8863
8864    fn control_handle(&self) -> &RunnerControlHandle {
8865        &self.control_handle
8866    }
8867
8868    fn drop_without_shutdown(mut self) {
8869        // Safety: drops once, never accessed again due to mem::forget
8870        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8871        // Prevent Drop from running (which would shut down the channel)
8872        std::mem::forget(self);
8873    }
8874}
8875
8876impl RunnerCallOneWayStructRequestResponder {
8877    /// Sends a response to the FIDL transaction.
8878    ///
8879    /// Sets the channel to shutdown if an error occurs.
8880    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8881        let _result = self.send_raw(payload);
8882        if _result.is_err() {
8883            self.control_handle.shutdown();
8884        }
8885        self.drop_without_shutdown();
8886        _result
8887    }
8888
8889    /// Similar to "send" but does not shutdown the channel if an error occurs.
8890    pub fn send_no_shutdown_on_err(
8891        self,
8892        mut payload: &EmptyResultClassification,
8893    ) -> Result<(), fidl::Error> {
8894        let _result = self.send_raw(payload);
8895        self.drop_without_shutdown();
8896        _result
8897    }
8898
8899    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8900        self.control_handle.inner.send::<EmptyResultClassification>(
8901            payload,
8902            self.tx_id,
8903            0x352a2907a0fcb420,
8904            fidl::encoding::DynamicFlags::empty(),
8905        )
8906    }
8907}
8908
8909#[must_use = "FIDL methods require a response to be sent"]
8910#[derive(Debug)]
8911pub struct RunnerCallOneWayTableRequestResponder {
8912    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8913    tx_id: u32,
8914}
8915
8916/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8917/// if the responder is dropped without sending a response, so that the client
8918/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8919impl std::ops::Drop for RunnerCallOneWayTableRequestResponder {
8920    fn drop(&mut self) {
8921        self.control_handle.shutdown();
8922        // Safety: drops once, never accessed again
8923        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8924    }
8925}
8926
8927impl fidl::endpoints::Responder for RunnerCallOneWayTableRequestResponder {
8928    type ControlHandle = RunnerControlHandle;
8929
8930    fn control_handle(&self) -> &RunnerControlHandle {
8931        &self.control_handle
8932    }
8933
8934    fn drop_without_shutdown(mut self) {
8935        // Safety: drops once, never accessed again due to mem::forget
8936        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8937        // Prevent Drop from running (which would shut down the channel)
8938        std::mem::forget(self);
8939    }
8940}
8941
8942impl RunnerCallOneWayTableRequestResponder {
8943    /// Sends a response to the FIDL transaction.
8944    ///
8945    /// Sets the channel to shutdown if an error occurs.
8946    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8947        let _result = self.send_raw(payload);
8948        if _result.is_err() {
8949            self.control_handle.shutdown();
8950        }
8951        self.drop_without_shutdown();
8952        _result
8953    }
8954
8955    /// Similar to "send" but does not shutdown the channel if an error occurs.
8956    pub fn send_no_shutdown_on_err(
8957        self,
8958        mut payload: &EmptyResultClassification,
8959    ) -> Result<(), fidl::Error> {
8960        let _result = self.send_raw(payload);
8961        self.drop_without_shutdown();
8962        _result
8963    }
8964
8965    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
8966        self.control_handle.inner.send::<EmptyResultClassification>(
8967            payload,
8968            self.tx_id,
8969            0x734121bf8bf336ef,
8970            fidl::encoding::DynamicFlags::empty(),
8971        )
8972    }
8973}
8974
8975#[must_use = "FIDL methods require a response to be sent"]
8976#[derive(Debug)]
8977pub struct RunnerCallOneWayUnionRequestResponder {
8978    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
8979    tx_id: u32,
8980}
8981
8982/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
8983/// if the responder is dropped without sending a response, so that the client
8984/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8985impl std::ops::Drop for RunnerCallOneWayUnionRequestResponder {
8986    fn drop(&mut self) {
8987        self.control_handle.shutdown();
8988        // Safety: drops once, never accessed again
8989        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8990    }
8991}
8992
8993impl fidl::endpoints::Responder for RunnerCallOneWayUnionRequestResponder {
8994    type ControlHandle = RunnerControlHandle;
8995
8996    fn control_handle(&self) -> &RunnerControlHandle {
8997        &self.control_handle
8998    }
8999
9000    fn drop_without_shutdown(mut self) {
9001        // Safety: drops once, never accessed again due to mem::forget
9002        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9003        // Prevent Drop from running (which would shut down the channel)
9004        std::mem::forget(self);
9005    }
9006}
9007
9008impl RunnerCallOneWayUnionRequestResponder {
9009    /// Sends a response to the FIDL transaction.
9010    ///
9011    /// Sets the channel to shutdown if an error occurs.
9012    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9013        let _result = self.send_raw(payload);
9014        if _result.is_err() {
9015            self.control_handle.shutdown();
9016        }
9017        self.drop_without_shutdown();
9018        _result
9019    }
9020
9021    /// Similar to "send" but does not shutdown the channel if an error occurs.
9022    pub fn send_no_shutdown_on_err(
9023        self,
9024        mut payload: &EmptyResultClassification,
9025    ) -> Result<(), fidl::Error> {
9026        let _result = self.send_raw(payload);
9027        self.drop_without_shutdown();
9028        _result
9029    }
9030
9031    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9032        self.control_handle.inner.send::<EmptyResultClassification>(
9033            payload,
9034            self.tx_id,
9035            0x9be8e5eb7d50eb6,
9036            fidl::encoding::DynamicFlags::empty(),
9037        )
9038    }
9039}
9040
9041#[must_use = "FIDL methods require a response to be sent"]
9042#[derive(Debug)]
9043pub struct RunnerCallStrictOneWayResponder {
9044    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9045    tx_id: u32,
9046}
9047
9048/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9049/// if the responder is dropped without sending a response, so that the client
9050/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9051impl std::ops::Drop for RunnerCallStrictOneWayResponder {
9052    fn drop(&mut self) {
9053        self.control_handle.shutdown();
9054        // Safety: drops once, never accessed again
9055        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9056    }
9057}
9058
9059impl fidl::endpoints::Responder for RunnerCallStrictOneWayResponder {
9060    type ControlHandle = RunnerControlHandle;
9061
9062    fn control_handle(&self) -> &RunnerControlHandle {
9063        &self.control_handle
9064    }
9065
9066    fn drop_without_shutdown(mut self) {
9067        // Safety: drops once, never accessed again due to mem::forget
9068        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9069        // Prevent Drop from running (which would shut down the channel)
9070        std::mem::forget(self);
9071    }
9072}
9073
9074impl RunnerCallStrictOneWayResponder {
9075    /// Sends a response to the FIDL transaction.
9076    ///
9077    /// Sets the channel to shutdown if an error occurs.
9078    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9079        let _result = self.send_raw(payload);
9080        if _result.is_err() {
9081            self.control_handle.shutdown();
9082        }
9083        self.drop_without_shutdown();
9084        _result
9085    }
9086
9087    /// Similar to "send" but does not shutdown the channel if an error occurs.
9088    pub fn send_no_shutdown_on_err(
9089        self,
9090        mut payload: &EmptyResultClassification,
9091    ) -> Result<(), fidl::Error> {
9092        let _result = self.send_raw(payload);
9093        self.drop_without_shutdown();
9094        _result
9095    }
9096
9097    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9098        self.control_handle.inner.send::<EmptyResultClassification>(
9099            payload,
9100            self.tx_id,
9101            0x4edd0b6f52c0446b,
9102            fidl::encoding::DynamicFlags::empty(),
9103        )
9104    }
9105}
9106
9107#[must_use = "FIDL methods require a response to be sent"]
9108#[derive(Debug)]
9109pub struct RunnerCallFlexibleOneWayResponder {
9110    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9111    tx_id: u32,
9112}
9113
9114/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9115/// if the responder is dropped without sending a response, so that the client
9116/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9117impl std::ops::Drop for RunnerCallFlexibleOneWayResponder {
9118    fn drop(&mut self) {
9119        self.control_handle.shutdown();
9120        // Safety: drops once, never accessed again
9121        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9122    }
9123}
9124
9125impl fidl::endpoints::Responder for RunnerCallFlexibleOneWayResponder {
9126    type ControlHandle = RunnerControlHandle;
9127
9128    fn control_handle(&self) -> &RunnerControlHandle {
9129        &self.control_handle
9130    }
9131
9132    fn drop_without_shutdown(mut self) {
9133        // Safety: drops once, never accessed again due to mem::forget
9134        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9135        // Prevent Drop from running (which would shut down the channel)
9136        std::mem::forget(self);
9137    }
9138}
9139
9140impl RunnerCallFlexibleOneWayResponder {
9141    /// Sends a response to the FIDL transaction.
9142    ///
9143    /// Sets the channel to shutdown if an error occurs.
9144    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9145        let _result = self.send_raw(payload);
9146        if _result.is_err() {
9147            self.control_handle.shutdown();
9148        }
9149        self.drop_without_shutdown();
9150        _result
9151    }
9152
9153    /// Similar to "send" but does not shutdown the channel if an error occurs.
9154    pub fn send_no_shutdown_on_err(
9155        self,
9156        mut payload: &EmptyResultClassification,
9157    ) -> Result<(), fidl::Error> {
9158        let _result = self.send_raw(payload);
9159        self.drop_without_shutdown();
9160        _result
9161    }
9162
9163    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9164        self.control_handle.inner.send::<EmptyResultClassification>(
9165            payload,
9166            self.tx_id,
9167            0x7253f10a77dfe817,
9168            fidl::encoding::DynamicFlags::empty(),
9169        )
9170    }
9171}
9172
9173#[must_use = "FIDL methods require a response to be sent"]
9174#[derive(Debug)]
9175pub struct RunnerCallStrictTwoWayResponder {
9176    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9177    tx_id: u32,
9178}
9179
9180/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9181/// if the responder is dropped without sending a response, so that the client
9182/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9183impl std::ops::Drop for RunnerCallStrictTwoWayResponder {
9184    fn drop(&mut self) {
9185        self.control_handle.shutdown();
9186        // Safety: drops once, never accessed again
9187        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9188    }
9189}
9190
9191impl fidl::endpoints::Responder for RunnerCallStrictTwoWayResponder {
9192    type ControlHandle = RunnerControlHandle;
9193
9194    fn control_handle(&self) -> &RunnerControlHandle {
9195        &self.control_handle
9196    }
9197
9198    fn drop_without_shutdown(mut self) {
9199        // Safety: drops once, never accessed again due to mem::forget
9200        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9201        // Prevent Drop from running (which would shut down the channel)
9202        std::mem::forget(self);
9203    }
9204}
9205
9206impl RunnerCallStrictTwoWayResponder {
9207    /// Sends a response to the FIDL transaction.
9208    ///
9209    /// Sets the channel to shutdown if an error occurs.
9210    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9211        let _result = self.send_raw(payload);
9212        if _result.is_err() {
9213            self.control_handle.shutdown();
9214        }
9215        self.drop_without_shutdown();
9216        _result
9217    }
9218
9219    /// Similar to "send" but does not shutdown the channel if an error occurs.
9220    pub fn send_no_shutdown_on_err(
9221        self,
9222        mut payload: &EmptyResultClassification,
9223    ) -> Result<(), fidl::Error> {
9224        let _result = self.send_raw(payload);
9225        self.drop_without_shutdown();
9226        _result
9227    }
9228
9229    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9230        self.control_handle.inner.send::<EmptyResultClassification>(
9231            payload,
9232            self.tx_id,
9233            0x1fa9fb7414aedd27,
9234            fidl::encoding::DynamicFlags::empty(),
9235        )
9236    }
9237}
9238
9239#[must_use = "FIDL methods require a response to be sent"]
9240#[derive(Debug)]
9241pub struct RunnerCallStrictTwoWayFieldsResponder {
9242    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9243    tx_id: u32,
9244}
9245
9246/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9247/// if the responder is dropped without sending a response, so that the client
9248/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9249impl std::ops::Drop for RunnerCallStrictTwoWayFieldsResponder {
9250    fn drop(&mut self) {
9251        self.control_handle.shutdown();
9252        // Safety: drops once, never accessed again
9253        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9254    }
9255}
9256
9257impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsResponder {
9258    type ControlHandle = RunnerControlHandle;
9259
9260    fn control_handle(&self) -> &RunnerControlHandle {
9261        &self.control_handle
9262    }
9263
9264    fn drop_without_shutdown(mut self) {
9265        // Safety: drops once, never accessed again due to mem::forget
9266        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9267        // Prevent Drop from running (which would shut down the channel)
9268        std::mem::forget(self);
9269    }
9270}
9271
9272impl RunnerCallStrictTwoWayFieldsResponder {
9273    /// Sends a response to the FIDL transaction.
9274    ///
9275    /// Sets the channel to shutdown if an error occurs.
9276    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9277        let _result = self.send_raw(payload);
9278        if _result.is_err() {
9279            self.control_handle.shutdown();
9280        }
9281        self.drop_without_shutdown();
9282        _result
9283    }
9284
9285    /// Similar to "send" but does not shutdown the channel if an error occurs.
9286    pub fn send_no_shutdown_on_err(
9287        self,
9288        mut payload: &NonEmptyResultClassification,
9289    ) -> Result<(), fidl::Error> {
9290        let _result = self.send_raw(payload);
9291        self.drop_without_shutdown();
9292        _result
9293    }
9294
9295    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9296        self.control_handle.inner.send::<NonEmptyResultClassification>(
9297            payload,
9298            self.tx_id,
9299            0x6f690e00ebf6f123,
9300            fidl::encoding::DynamicFlags::empty(),
9301        )
9302    }
9303}
9304
9305#[must_use = "FIDL methods require a response to be sent"]
9306#[derive(Debug)]
9307pub struct RunnerCallStrictTwoWayErrResponder {
9308    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9309    tx_id: u32,
9310}
9311
9312/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9313/// if the responder is dropped without sending a response, so that the client
9314/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9315impl std::ops::Drop for RunnerCallStrictTwoWayErrResponder {
9316    fn drop(&mut self) {
9317        self.control_handle.shutdown();
9318        // Safety: drops once, never accessed again
9319        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9320    }
9321}
9322
9323impl fidl::endpoints::Responder for RunnerCallStrictTwoWayErrResponder {
9324    type ControlHandle = RunnerControlHandle;
9325
9326    fn control_handle(&self) -> &RunnerControlHandle {
9327        &self.control_handle
9328    }
9329
9330    fn drop_without_shutdown(mut self) {
9331        // Safety: drops once, never accessed again due to mem::forget
9332        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9333        // Prevent Drop from running (which would shut down the channel)
9334        std::mem::forget(self);
9335    }
9336}
9337
9338impl RunnerCallStrictTwoWayErrResponder {
9339    /// Sends a response to the FIDL transaction.
9340    ///
9341    /// Sets the channel to shutdown if an error occurs.
9342    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9343        let _result = self.send_raw(payload);
9344        if _result.is_err() {
9345            self.control_handle.shutdown();
9346        }
9347        self.drop_without_shutdown();
9348        _result
9349    }
9350
9351    /// Similar to "send" but does not shutdown the channel if an error occurs.
9352    pub fn send_no_shutdown_on_err(
9353        self,
9354        mut payload: &EmptyResultWithErrorClassification,
9355    ) -> Result<(), fidl::Error> {
9356        let _result = self.send_raw(payload);
9357        self.drop_without_shutdown();
9358        _result
9359    }
9360
9361    fn send_raw(
9362        &self,
9363        mut payload: &EmptyResultWithErrorClassification,
9364    ) -> Result<(), fidl::Error> {
9365        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9366            payload,
9367            self.tx_id,
9368            0x51d6bc7cf6cbaf1a,
9369            fidl::encoding::DynamicFlags::empty(),
9370        )
9371    }
9372}
9373
9374#[must_use = "FIDL methods require a response to be sent"]
9375#[derive(Debug)]
9376pub struct RunnerCallStrictTwoWayFieldsErrResponder {
9377    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9378    tx_id: u32,
9379}
9380
9381/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9382/// if the responder is dropped without sending a response, so that the client
9383/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9384impl std::ops::Drop for RunnerCallStrictTwoWayFieldsErrResponder {
9385    fn drop(&mut self) {
9386        self.control_handle.shutdown();
9387        // Safety: drops once, never accessed again
9388        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9389    }
9390}
9391
9392impl fidl::endpoints::Responder for RunnerCallStrictTwoWayFieldsErrResponder {
9393    type ControlHandle = RunnerControlHandle;
9394
9395    fn control_handle(&self) -> &RunnerControlHandle {
9396        &self.control_handle
9397    }
9398
9399    fn drop_without_shutdown(mut self) {
9400        // Safety: drops once, never accessed again due to mem::forget
9401        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9402        // Prevent Drop from running (which would shut down the channel)
9403        std::mem::forget(self);
9404    }
9405}
9406
9407impl RunnerCallStrictTwoWayFieldsErrResponder {
9408    /// Sends a response to the FIDL transaction.
9409    ///
9410    /// Sets the channel to shutdown if an error occurs.
9411    pub fn send(
9412        self,
9413        mut payload: &NonEmptyResultWithErrorClassification,
9414    ) -> Result<(), fidl::Error> {
9415        let _result = self.send_raw(payload);
9416        if _result.is_err() {
9417            self.control_handle.shutdown();
9418        }
9419        self.drop_without_shutdown();
9420        _result
9421    }
9422
9423    /// Similar to "send" but does not shutdown the channel if an error occurs.
9424    pub fn send_no_shutdown_on_err(
9425        self,
9426        mut payload: &NonEmptyResultWithErrorClassification,
9427    ) -> Result<(), fidl::Error> {
9428        let _result = self.send_raw(payload);
9429        self.drop_without_shutdown();
9430        _result
9431    }
9432
9433    fn send_raw(
9434        &self,
9435        mut payload: &NonEmptyResultWithErrorClassification,
9436    ) -> Result<(), fidl::Error> {
9437        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9438            payload,
9439            self.tx_id,
9440            0x6fa31ced05074c05,
9441            fidl::encoding::DynamicFlags::empty(),
9442        )
9443    }
9444}
9445
9446#[must_use = "FIDL methods require a response to be sent"]
9447#[derive(Debug)]
9448pub struct RunnerCallFlexibleTwoWayResponder {
9449    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9450    tx_id: u32,
9451}
9452
9453/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9454/// if the responder is dropped without sending a response, so that the client
9455/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9456impl std::ops::Drop for RunnerCallFlexibleTwoWayResponder {
9457    fn drop(&mut self) {
9458        self.control_handle.shutdown();
9459        // Safety: drops once, never accessed again
9460        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9461    }
9462}
9463
9464impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayResponder {
9465    type ControlHandle = RunnerControlHandle;
9466
9467    fn control_handle(&self) -> &RunnerControlHandle {
9468        &self.control_handle
9469    }
9470
9471    fn drop_without_shutdown(mut self) {
9472        // Safety: drops once, never accessed again due to mem::forget
9473        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9474        // Prevent Drop from running (which would shut down the channel)
9475        std::mem::forget(self);
9476    }
9477}
9478
9479impl RunnerCallFlexibleTwoWayResponder {
9480    /// Sends a response to the FIDL transaction.
9481    ///
9482    /// Sets the channel to shutdown if an error occurs.
9483    pub fn send(self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9484        let _result = self.send_raw(payload);
9485        if _result.is_err() {
9486            self.control_handle.shutdown();
9487        }
9488        self.drop_without_shutdown();
9489        _result
9490    }
9491
9492    /// Similar to "send" but does not shutdown the channel if an error occurs.
9493    pub fn send_no_shutdown_on_err(
9494        self,
9495        mut payload: &EmptyResultClassification,
9496    ) -> Result<(), fidl::Error> {
9497        let _result = self.send_raw(payload);
9498        self.drop_without_shutdown();
9499        _result
9500    }
9501
9502    fn send_raw(&self, mut payload: &EmptyResultClassification) -> Result<(), fidl::Error> {
9503        self.control_handle.inner.send::<EmptyResultClassification>(
9504            payload,
9505            self.tx_id,
9506            0x411f70724876d49,
9507            fidl::encoding::DynamicFlags::empty(),
9508        )
9509    }
9510}
9511
9512#[must_use = "FIDL methods require a response to be sent"]
9513#[derive(Debug)]
9514pub struct RunnerCallFlexibleTwoWayFieldsResponder {
9515    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9516    tx_id: u32,
9517}
9518
9519/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9520/// if the responder is dropped without sending a response, so that the client
9521/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9522impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsResponder {
9523    fn drop(&mut self) {
9524        self.control_handle.shutdown();
9525        // Safety: drops once, never accessed again
9526        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9527    }
9528}
9529
9530impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsResponder {
9531    type ControlHandle = RunnerControlHandle;
9532
9533    fn control_handle(&self) -> &RunnerControlHandle {
9534        &self.control_handle
9535    }
9536
9537    fn drop_without_shutdown(mut self) {
9538        // Safety: drops once, never accessed again due to mem::forget
9539        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9540        // Prevent Drop from running (which would shut down the channel)
9541        std::mem::forget(self);
9542    }
9543}
9544
9545impl RunnerCallFlexibleTwoWayFieldsResponder {
9546    /// Sends a response to the FIDL transaction.
9547    ///
9548    /// Sets the channel to shutdown if an error occurs.
9549    pub fn send(self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9550        let _result = self.send_raw(payload);
9551        if _result.is_err() {
9552            self.control_handle.shutdown();
9553        }
9554        self.drop_without_shutdown();
9555        _result
9556    }
9557
9558    /// Similar to "send" but does not shutdown the channel if an error occurs.
9559    pub fn send_no_shutdown_on_err(
9560        self,
9561        mut payload: &NonEmptyResultClassification,
9562    ) -> Result<(), fidl::Error> {
9563        let _result = self.send_raw(payload);
9564        self.drop_without_shutdown();
9565        _result
9566    }
9567
9568    fn send_raw(&self, mut payload: &NonEmptyResultClassification) -> Result<(), fidl::Error> {
9569        self.control_handle.inner.send::<NonEmptyResultClassification>(
9570            payload,
9571            self.tx_id,
9572            0x330996b623598eed,
9573            fidl::encoding::DynamicFlags::empty(),
9574        )
9575    }
9576}
9577
9578#[must_use = "FIDL methods require a response to be sent"]
9579#[derive(Debug)]
9580pub struct RunnerCallFlexibleTwoWayErrResponder {
9581    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9582    tx_id: u32,
9583}
9584
9585/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9586/// if the responder is dropped without sending a response, so that the client
9587/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9588impl std::ops::Drop for RunnerCallFlexibleTwoWayErrResponder {
9589    fn drop(&mut self) {
9590        self.control_handle.shutdown();
9591        // Safety: drops once, never accessed again
9592        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9593    }
9594}
9595
9596impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayErrResponder {
9597    type ControlHandle = RunnerControlHandle;
9598
9599    fn control_handle(&self) -> &RunnerControlHandle {
9600        &self.control_handle
9601    }
9602
9603    fn drop_without_shutdown(mut self) {
9604        // Safety: drops once, never accessed again due to mem::forget
9605        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9606        // Prevent Drop from running (which would shut down the channel)
9607        std::mem::forget(self);
9608    }
9609}
9610
9611impl RunnerCallFlexibleTwoWayErrResponder {
9612    /// Sends a response to the FIDL transaction.
9613    ///
9614    /// Sets the channel to shutdown if an error occurs.
9615    pub fn send(self, mut payload: &EmptyResultWithErrorClassification) -> Result<(), fidl::Error> {
9616        let _result = self.send_raw(payload);
9617        if _result.is_err() {
9618            self.control_handle.shutdown();
9619        }
9620        self.drop_without_shutdown();
9621        _result
9622    }
9623
9624    /// Similar to "send" but does not shutdown the channel if an error occurs.
9625    pub fn send_no_shutdown_on_err(
9626        self,
9627        mut payload: &EmptyResultWithErrorClassification,
9628    ) -> Result<(), fidl::Error> {
9629        let _result = self.send_raw(payload);
9630        self.drop_without_shutdown();
9631        _result
9632    }
9633
9634    fn send_raw(
9635        &self,
9636        mut payload: &EmptyResultWithErrorClassification,
9637    ) -> Result<(), fidl::Error> {
9638        self.control_handle.inner.send::<EmptyResultWithErrorClassification>(
9639            payload,
9640            self.tx_id,
9641            0x5ddbf88a353a2a57,
9642            fidl::encoding::DynamicFlags::empty(),
9643        )
9644    }
9645}
9646
9647#[must_use = "FIDL methods require a response to be sent"]
9648#[derive(Debug)]
9649pub struct RunnerCallFlexibleTwoWayFieldsErrResponder {
9650    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9651    tx_id: u32,
9652}
9653
9654/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9655/// if the responder is dropped without sending a response, so that the client
9656/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9657impl std::ops::Drop for RunnerCallFlexibleTwoWayFieldsErrResponder {
9658    fn drop(&mut self) {
9659        self.control_handle.shutdown();
9660        // Safety: drops once, never accessed again
9661        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9662    }
9663}
9664
9665impl fidl::endpoints::Responder for RunnerCallFlexibleTwoWayFieldsErrResponder {
9666    type ControlHandle = RunnerControlHandle;
9667
9668    fn control_handle(&self) -> &RunnerControlHandle {
9669        &self.control_handle
9670    }
9671
9672    fn drop_without_shutdown(mut self) {
9673        // Safety: drops once, never accessed again due to mem::forget
9674        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9675        // Prevent Drop from running (which would shut down the channel)
9676        std::mem::forget(self);
9677    }
9678}
9679
9680impl RunnerCallFlexibleTwoWayFieldsErrResponder {
9681    /// Sends a response to the FIDL transaction.
9682    ///
9683    /// Sets the channel to shutdown if an error occurs.
9684    pub fn send(
9685        self,
9686        mut payload: &NonEmptyResultWithErrorClassification,
9687    ) -> Result<(), fidl::Error> {
9688        let _result = self.send_raw(payload);
9689        if _result.is_err() {
9690            self.control_handle.shutdown();
9691        }
9692        self.drop_without_shutdown();
9693        _result
9694    }
9695
9696    /// Similar to "send" but does not shutdown the channel if an error occurs.
9697    pub fn send_no_shutdown_on_err(
9698        self,
9699        mut payload: &NonEmptyResultWithErrorClassification,
9700    ) -> Result<(), fidl::Error> {
9701        let _result = self.send_raw(payload);
9702        self.drop_without_shutdown();
9703        _result
9704    }
9705
9706    fn send_raw(
9707        &self,
9708        mut payload: &NonEmptyResultWithErrorClassification,
9709    ) -> Result<(), fidl::Error> {
9710        self.control_handle.inner.send::<NonEmptyResultWithErrorClassification>(
9711            payload,
9712            self.tx_id,
9713            0x7ae309383b07048e,
9714            fidl::encoding::DynamicFlags::empty(),
9715        )
9716    }
9717}
9718
9719#[must_use = "FIDL methods require a response to be sent"]
9720#[derive(Debug)]
9721pub struct RunnerReceiveClosedEventsResponder {
9722    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9723    tx_id: u32,
9724}
9725
9726/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9727/// if the responder is dropped without sending a response, so that the client
9728/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9729impl std::ops::Drop for RunnerReceiveClosedEventsResponder {
9730    fn drop(&mut self) {
9731        self.control_handle.shutdown();
9732        // Safety: drops once, never accessed again
9733        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9734    }
9735}
9736
9737impl fidl::endpoints::Responder for RunnerReceiveClosedEventsResponder {
9738    type ControlHandle = RunnerControlHandle;
9739
9740    fn control_handle(&self) -> &RunnerControlHandle {
9741        &self.control_handle
9742    }
9743
9744    fn drop_without_shutdown(mut self) {
9745        // Safety: drops once, never accessed again due to mem::forget
9746        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9747        // Prevent Drop from running (which would shut down the channel)
9748        std::mem::forget(self);
9749    }
9750}
9751
9752impl RunnerReceiveClosedEventsResponder {
9753    /// Sends a response to the FIDL transaction.
9754    ///
9755    /// Sets the channel to shutdown if an error occurs.
9756    pub fn send(self) -> Result<(), fidl::Error> {
9757        let _result = self.send_raw();
9758        if _result.is_err() {
9759            self.control_handle.shutdown();
9760        }
9761        self.drop_without_shutdown();
9762        _result
9763    }
9764
9765    /// Similar to "send" but does not shutdown the channel if an error occurs.
9766    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9767        let _result = self.send_raw();
9768        self.drop_without_shutdown();
9769        _result
9770    }
9771
9772    fn send_raw(&self) -> Result<(), fidl::Error> {
9773        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9774            (),
9775            self.tx_id,
9776            0x48da834910571aeb,
9777            fidl::encoding::DynamicFlags::empty(),
9778        )
9779    }
9780}
9781
9782#[must_use = "FIDL methods require a response to be sent"]
9783#[derive(Debug)]
9784pub struct RunnerReceiveAjarEventsResponder {
9785    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9786    tx_id: u32,
9787}
9788
9789/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9790/// if the responder is dropped without sending a response, so that the client
9791/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9792impl std::ops::Drop for RunnerReceiveAjarEventsResponder {
9793    fn drop(&mut self) {
9794        self.control_handle.shutdown();
9795        // Safety: drops once, never accessed again
9796        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9797    }
9798}
9799
9800impl fidl::endpoints::Responder for RunnerReceiveAjarEventsResponder {
9801    type ControlHandle = RunnerControlHandle;
9802
9803    fn control_handle(&self) -> &RunnerControlHandle {
9804        &self.control_handle
9805    }
9806
9807    fn drop_without_shutdown(mut self) {
9808        // Safety: drops once, never accessed again due to mem::forget
9809        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9810        // Prevent Drop from running (which would shut down the channel)
9811        std::mem::forget(self);
9812    }
9813}
9814
9815impl RunnerReceiveAjarEventsResponder {
9816    /// Sends a response to the FIDL transaction.
9817    ///
9818    /// Sets the channel to shutdown if an error occurs.
9819    pub fn send(self) -> Result<(), fidl::Error> {
9820        let _result = self.send_raw();
9821        if _result.is_err() {
9822            self.control_handle.shutdown();
9823        }
9824        self.drop_without_shutdown();
9825        _result
9826    }
9827
9828    /// Similar to "send" but does not shutdown the channel if an error occurs.
9829    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9830        let _result = self.send_raw();
9831        self.drop_without_shutdown();
9832        _result
9833    }
9834
9835    fn send_raw(&self) -> Result<(), fidl::Error> {
9836        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9837            (),
9838            self.tx_id,
9839            0xc5662b9a9c007a3,
9840            fidl::encoding::DynamicFlags::empty(),
9841        )
9842    }
9843}
9844
9845#[must_use = "FIDL methods require a response to be sent"]
9846#[derive(Debug)]
9847pub struct RunnerReceiveOpenEventsResponder {
9848    control_handle: std::mem::ManuallyDrop<RunnerControlHandle>,
9849    tx_id: u32,
9850}
9851
9852/// Set the the channel to be shutdown (see [`RunnerControlHandle::shutdown`])
9853/// if the responder is dropped without sending a response, so that the client
9854/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9855impl std::ops::Drop for RunnerReceiveOpenEventsResponder {
9856    fn drop(&mut self) {
9857        self.control_handle.shutdown();
9858        // Safety: drops once, never accessed again
9859        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9860    }
9861}
9862
9863impl fidl::endpoints::Responder for RunnerReceiveOpenEventsResponder {
9864    type ControlHandle = RunnerControlHandle;
9865
9866    fn control_handle(&self) -> &RunnerControlHandle {
9867        &self.control_handle
9868    }
9869
9870    fn drop_without_shutdown(mut self) {
9871        // Safety: drops once, never accessed again due to mem::forget
9872        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9873        // Prevent Drop from running (which would shut down the channel)
9874        std::mem::forget(self);
9875    }
9876}
9877
9878impl RunnerReceiveOpenEventsResponder {
9879    /// Sends a response to the FIDL transaction.
9880    ///
9881    /// Sets the channel to shutdown if an error occurs.
9882    pub fn send(self) -> Result<(), fidl::Error> {
9883        let _result = self.send_raw();
9884        if _result.is_err() {
9885            self.control_handle.shutdown();
9886        }
9887        self.drop_without_shutdown();
9888        _result
9889    }
9890
9891    /// Similar to "send" but does not shutdown the channel if an error occurs.
9892    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9893        let _result = self.send_raw();
9894        self.drop_without_shutdown();
9895        _result
9896    }
9897
9898    fn send_raw(&self) -> Result<(), fidl::Error> {
9899        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9900            (),
9901            self.tx_id,
9902            0x79a7073fd18edbdf,
9903            fidl::encoding::DynamicFlags::empty(),
9904        )
9905    }
9906}
9907
9908mod internal {
9909    use super::*;
9910
9911    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleOneWayRequest {
9912        type Borrowed<'a> = &'a mut Self;
9913        fn take_or_borrow<'a>(
9914            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
9915        ) -> Self::Borrowed<'a> {
9916            value
9917        }
9918    }
9919
9920    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleOneWayRequest {
9921        type Owned = Self;
9922
9923        #[inline(always)]
9924        fn inline_align(_context: fidl::encoding::Context) -> usize {
9925            4
9926        }
9927
9928        #[inline(always)]
9929        fn inline_size(_context: fidl::encoding::Context) -> usize {
9930            4
9931        }
9932    }
9933
9934    unsafe impl
9935        fidl::encoding::Encode<
9936            RunnerCallFlexibleOneWayRequest,
9937            fidl::encoding::DefaultFuchsiaResourceDialect,
9938        > for &mut RunnerCallFlexibleOneWayRequest
9939    {
9940        #[inline]
9941        unsafe fn encode(
9942            self,
9943            encoder: &mut fidl::encoding::Encoder<
9944                '_,
9945                fidl::encoding::DefaultFuchsiaResourceDialect,
9946            >,
9947            offset: usize,
9948            _depth: fidl::encoding::Depth,
9949        ) -> fidl::Result<()> {
9950            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
9951            // Delegate to tuple encoding.
9952            fidl::encoding::Encode::<RunnerCallFlexibleOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
9953                (
9954                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
9955                ),
9956                encoder, offset, _depth
9957            )
9958        }
9959    }
9960    unsafe impl<
9961        T0: fidl::encoding::Encode<
9962                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9963                fidl::encoding::DefaultFuchsiaResourceDialect,
9964            >,
9965    >
9966        fidl::encoding::Encode<
9967            RunnerCallFlexibleOneWayRequest,
9968            fidl::encoding::DefaultFuchsiaResourceDialect,
9969        > for (T0,)
9970    {
9971        #[inline]
9972        unsafe fn encode(
9973            self,
9974            encoder: &mut fidl::encoding::Encoder<
9975                '_,
9976                fidl::encoding::DefaultFuchsiaResourceDialect,
9977            >,
9978            offset: usize,
9979            depth: fidl::encoding::Depth,
9980        ) -> fidl::Result<()> {
9981            encoder.debug_check_bounds::<RunnerCallFlexibleOneWayRequest>(offset);
9982            // Zero out padding regions. There's no need to apply masks
9983            // because the unmasked parts will be overwritten by fields.
9984            // Write the fields.
9985            self.0.encode(encoder, offset + 0, depth)?;
9986            Ok(())
9987        }
9988    }
9989
9990    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
9991        for RunnerCallFlexibleOneWayRequest
9992    {
9993        #[inline(always)]
9994        fn new_empty() -> Self {
9995            Self {
9996                target: fidl::new_empty!(
9997                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
9998                    fidl::encoding::DefaultFuchsiaResourceDialect
9999                ),
10000            }
10001        }
10002
10003        #[inline]
10004        unsafe fn decode(
10005            &mut self,
10006            decoder: &mut fidl::encoding::Decoder<
10007                '_,
10008                fidl::encoding::DefaultFuchsiaResourceDialect,
10009            >,
10010            offset: usize,
10011            _depth: fidl::encoding::Depth,
10012        ) -> fidl::Result<()> {
10013            decoder.debug_check_bounds::<Self>(offset);
10014            // Verify that padding bytes are zero.
10015            fidl::decode!(
10016                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10017                fidl::encoding::DefaultFuchsiaResourceDialect,
10018                &mut self.target,
10019                decoder,
10020                offset + 0,
10021                _depth
10022            )?;
10023            Ok(())
10024        }
10025    }
10026
10027    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10028        type Borrowed<'a> = &'a mut Self;
10029        fn take_or_borrow<'a>(
10030            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10031        ) -> Self::Borrowed<'a> {
10032            value
10033        }
10034    }
10035
10036    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayErrRequest {
10037        type Owned = Self;
10038
10039        #[inline(always)]
10040        fn inline_align(_context: fidl::encoding::Context) -> usize {
10041            4
10042        }
10043
10044        #[inline(always)]
10045        fn inline_size(_context: fidl::encoding::Context) -> usize {
10046            4
10047        }
10048    }
10049
10050    unsafe impl
10051        fidl::encoding::Encode<
10052            RunnerCallFlexibleTwoWayErrRequest,
10053            fidl::encoding::DefaultFuchsiaResourceDialect,
10054        > for &mut RunnerCallFlexibleTwoWayErrRequest
10055    {
10056        #[inline]
10057        unsafe fn encode(
10058            self,
10059            encoder: &mut fidl::encoding::Encoder<
10060                '_,
10061                fidl::encoding::DefaultFuchsiaResourceDialect,
10062            >,
10063            offset: usize,
10064            _depth: fidl::encoding::Depth,
10065        ) -> fidl::Result<()> {
10066            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10067            // Delegate to tuple encoding.
10068            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10069                (
10070                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10071                ),
10072                encoder, offset, _depth
10073            )
10074        }
10075    }
10076    unsafe impl<
10077        T0: fidl::encoding::Encode<
10078                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10079                fidl::encoding::DefaultFuchsiaResourceDialect,
10080            >,
10081    >
10082        fidl::encoding::Encode<
10083            RunnerCallFlexibleTwoWayErrRequest,
10084            fidl::encoding::DefaultFuchsiaResourceDialect,
10085        > for (T0,)
10086    {
10087        #[inline]
10088        unsafe fn encode(
10089            self,
10090            encoder: &mut fidl::encoding::Encoder<
10091                '_,
10092                fidl::encoding::DefaultFuchsiaResourceDialect,
10093            >,
10094            offset: usize,
10095            depth: fidl::encoding::Depth,
10096        ) -> fidl::Result<()> {
10097            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayErrRequest>(offset);
10098            // Zero out padding regions. There's no need to apply masks
10099            // because the unmasked parts will be overwritten by fields.
10100            // Write the fields.
10101            self.0.encode(encoder, offset + 0, depth)?;
10102            Ok(())
10103        }
10104    }
10105
10106    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10107        for RunnerCallFlexibleTwoWayErrRequest
10108    {
10109        #[inline(always)]
10110        fn new_empty() -> Self {
10111            Self {
10112                target: fidl::new_empty!(
10113                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10114                    fidl::encoding::DefaultFuchsiaResourceDialect
10115                ),
10116            }
10117        }
10118
10119        #[inline]
10120        unsafe fn decode(
10121            &mut self,
10122            decoder: &mut fidl::encoding::Decoder<
10123                '_,
10124                fidl::encoding::DefaultFuchsiaResourceDialect,
10125            >,
10126            offset: usize,
10127            _depth: fidl::encoding::Depth,
10128        ) -> fidl::Result<()> {
10129            decoder.debug_check_bounds::<Self>(offset);
10130            // Verify that padding bytes are zero.
10131            fidl::decode!(
10132                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10133                fidl::encoding::DefaultFuchsiaResourceDialect,
10134                &mut self.target,
10135                decoder,
10136                offset + 0,
10137                _depth
10138            )?;
10139            Ok(())
10140        }
10141    }
10142
10143    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10144        type Borrowed<'a> = &'a mut Self;
10145        fn take_or_borrow<'a>(
10146            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10147        ) -> Self::Borrowed<'a> {
10148            value
10149        }
10150    }
10151
10152    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsErrRequest {
10153        type Owned = Self;
10154
10155        #[inline(always)]
10156        fn inline_align(_context: fidl::encoding::Context) -> usize {
10157            4
10158        }
10159
10160        #[inline(always)]
10161        fn inline_size(_context: fidl::encoding::Context) -> usize {
10162            4
10163        }
10164    }
10165
10166    unsafe impl
10167        fidl::encoding::Encode<
10168            RunnerCallFlexibleTwoWayFieldsErrRequest,
10169            fidl::encoding::DefaultFuchsiaResourceDialect,
10170        > for &mut RunnerCallFlexibleTwoWayFieldsErrRequest
10171    {
10172        #[inline]
10173        unsafe fn encode(
10174            self,
10175            encoder: &mut fidl::encoding::Encoder<
10176                '_,
10177                fidl::encoding::DefaultFuchsiaResourceDialect,
10178            >,
10179            offset: usize,
10180            _depth: fidl::encoding::Depth,
10181        ) -> fidl::Result<()> {
10182            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10183            // Delegate to tuple encoding.
10184            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10185                (
10186                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10187                ),
10188                encoder, offset, _depth
10189            )
10190        }
10191    }
10192    unsafe impl<
10193        T0: fidl::encoding::Encode<
10194                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10195                fidl::encoding::DefaultFuchsiaResourceDialect,
10196            >,
10197    >
10198        fidl::encoding::Encode<
10199            RunnerCallFlexibleTwoWayFieldsErrRequest,
10200            fidl::encoding::DefaultFuchsiaResourceDialect,
10201        > for (T0,)
10202    {
10203        #[inline]
10204        unsafe fn encode(
10205            self,
10206            encoder: &mut fidl::encoding::Encoder<
10207                '_,
10208                fidl::encoding::DefaultFuchsiaResourceDialect,
10209            >,
10210            offset: usize,
10211            depth: fidl::encoding::Depth,
10212        ) -> fidl::Result<()> {
10213            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsErrRequest>(offset);
10214            // Zero out padding regions. There's no need to apply masks
10215            // because the unmasked parts will be overwritten by fields.
10216            // Write the fields.
10217            self.0.encode(encoder, offset + 0, depth)?;
10218            Ok(())
10219        }
10220    }
10221
10222    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10223        for RunnerCallFlexibleTwoWayFieldsErrRequest
10224    {
10225        #[inline(always)]
10226        fn new_empty() -> Self {
10227            Self {
10228                target: fidl::new_empty!(
10229                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10230                    fidl::encoding::DefaultFuchsiaResourceDialect
10231                ),
10232            }
10233        }
10234
10235        #[inline]
10236        unsafe fn decode(
10237            &mut self,
10238            decoder: &mut fidl::encoding::Decoder<
10239                '_,
10240                fidl::encoding::DefaultFuchsiaResourceDialect,
10241            >,
10242            offset: usize,
10243            _depth: fidl::encoding::Depth,
10244        ) -> fidl::Result<()> {
10245            decoder.debug_check_bounds::<Self>(offset);
10246            // Verify that padding bytes are zero.
10247            fidl::decode!(
10248                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10249                fidl::encoding::DefaultFuchsiaResourceDialect,
10250                &mut self.target,
10251                decoder,
10252                offset + 0,
10253                _depth
10254            )?;
10255            Ok(())
10256        }
10257    }
10258
10259    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10260        type Borrowed<'a> = &'a mut Self;
10261        fn take_or_borrow<'a>(
10262            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10263        ) -> Self::Borrowed<'a> {
10264            value
10265        }
10266    }
10267
10268    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayFieldsRequest {
10269        type Owned = Self;
10270
10271        #[inline(always)]
10272        fn inline_align(_context: fidl::encoding::Context) -> usize {
10273            4
10274        }
10275
10276        #[inline(always)]
10277        fn inline_size(_context: fidl::encoding::Context) -> usize {
10278            4
10279        }
10280    }
10281
10282    unsafe impl
10283        fidl::encoding::Encode<
10284            RunnerCallFlexibleTwoWayFieldsRequest,
10285            fidl::encoding::DefaultFuchsiaResourceDialect,
10286        > for &mut RunnerCallFlexibleTwoWayFieldsRequest
10287    {
10288        #[inline]
10289        unsafe fn encode(
10290            self,
10291            encoder: &mut fidl::encoding::Encoder<
10292                '_,
10293                fidl::encoding::DefaultFuchsiaResourceDialect,
10294            >,
10295            offset: usize,
10296            _depth: fidl::encoding::Depth,
10297        ) -> fidl::Result<()> {
10298            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10299            // Delegate to tuple encoding.
10300            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10301                (
10302                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10303                ),
10304                encoder, offset, _depth
10305            )
10306        }
10307    }
10308    unsafe impl<
10309        T0: fidl::encoding::Encode<
10310                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10311                fidl::encoding::DefaultFuchsiaResourceDialect,
10312            >,
10313    >
10314        fidl::encoding::Encode<
10315            RunnerCallFlexibleTwoWayFieldsRequest,
10316            fidl::encoding::DefaultFuchsiaResourceDialect,
10317        > for (T0,)
10318    {
10319        #[inline]
10320        unsafe fn encode(
10321            self,
10322            encoder: &mut fidl::encoding::Encoder<
10323                '_,
10324                fidl::encoding::DefaultFuchsiaResourceDialect,
10325            >,
10326            offset: usize,
10327            depth: fidl::encoding::Depth,
10328        ) -> fidl::Result<()> {
10329            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayFieldsRequest>(offset);
10330            // Zero out padding regions. There's no need to apply masks
10331            // because the unmasked parts will be overwritten by fields.
10332            // Write the fields.
10333            self.0.encode(encoder, offset + 0, depth)?;
10334            Ok(())
10335        }
10336    }
10337
10338    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10339        for RunnerCallFlexibleTwoWayFieldsRequest
10340    {
10341        #[inline(always)]
10342        fn new_empty() -> Self {
10343            Self {
10344                target: fidl::new_empty!(
10345                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10346                    fidl::encoding::DefaultFuchsiaResourceDialect
10347                ),
10348            }
10349        }
10350
10351        #[inline]
10352        unsafe fn decode(
10353            &mut self,
10354            decoder: &mut fidl::encoding::Decoder<
10355                '_,
10356                fidl::encoding::DefaultFuchsiaResourceDialect,
10357            >,
10358            offset: usize,
10359            _depth: fidl::encoding::Depth,
10360        ) -> fidl::Result<()> {
10361            decoder.debug_check_bounds::<Self>(offset);
10362            // Verify that padding bytes are zero.
10363            fidl::decode!(
10364                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10365                fidl::encoding::DefaultFuchsiaResourceDialect,
10366                &mut self.target,
10367                decoder,
10368                offset + 0,
10369                _depth
10370            )?;
10371            Ok(())
10372        }
10373    }
10374
10375    impl fidl::encoding::ResourceTypeMarker for RunnerCallFlexibleTwoWayRequest {
10376        type Borrowed<'a> = &'a mut Self;
10377        fn take_or_borrow<'a>(
10378            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10379        ) -> Self::Borrowed<'a> {
10380            value
10381        }
10382    }
10383
10384    unsafe impl fidl::encoding::TypeMarker for RunnerCallFlexibleTwoWayRequest {
10385        type Owned = Self;
10386
10387        #[inline(always)]
10388        fn inline_align(_context: fidl::encoding::Context) -> usize {
10389            4
10390        }
10391
10392        #[inline(always)]
10393        fn inline_size(_context: fidl::encoding::Context) -> usize {
10394            4
10395        }
10396    }
10397
10398    unsafe impl
10399        fidl::encoding::Encode<
10400            RunnerCallFlexibleTwoWayRequest,
10401            fidl::encoding::DefaultFuchsiaResourceDialect,
10402        > for &mut RunnerCallFlexibleTwoWayRequest
10403    {
10404        #[inline]
10405        unsafe fn encode(
10406            self,
10407            encoder: &mut fidl::encoding::Encoder<
10408                '_,
10409                fidl::encoding::DefaultFuchsiaResourceDialect,
10410            >,
10411            offset: usize,
10412            _depth: fidl::encoding::Depth,
10413        ) -> fidl::Result<()> {
10414            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10415            // Delegate to tuple encoding.
10416            fidl::encoding::Encode::<RunnerCallFlexibleTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10417                (
10418                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10419                ),
10420                encoder, offset, _depth
10421            )
10422        }
10423    }
10424    unsafe impl<
10425        T0: fidl::encoding::Encode<
10426                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10427                fidl::encoding::DefaultFuchsiaResourceDialect,
10428            >,
10429    >
10430        fidl::encoding::Encode<
10431            RunnerCallFlexibleTwoWayRequest,
10432            fidl::encoding::DefaultFuchsiaResourceDialect,
10433        > for (T0,)
10434    {
10435        #[inline]
10436        unsafe fn encode(
10437            self,
10438            encoder: &mut fidl::encoding::Encoder<
10439                '_,
10440                fidl::encoding::DefaultFuchsiaResourceDialect,
10441            >,
10442            offset: usize,
10443            depth: fidl::encoding::Depth,
10444        ) -> fidl::Result<()> {
10445            encoder.debug_check_bounds::<RunnerCallFlexibleTwoWayRequest>(offset);
10446            // Zero out padding regions. There's no need to apply masks
10447            // because the unmasked parts will be overwritten by fields.
10448            // Write the fields.
10449            self.0.encode(encoder, offset + 0, depth)?;
10450            Ok(())
10451        }
10452    }
10453
10454    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10455        for RunnerCallFlexibleTwoWayRequest
10456    {
10457        #[inline(always)]
10458        fn new_empty() -> Self {
10459            Self {
10460                target: fidl::new_empty!(
10461                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10462                    fidl::encoding::DefaultFuchsiaResourceDialect
10463                ),
10464            }
10465        }
10466
10467        #[inline]
10468        unsafe fn decode(
10469            &mut self,
10470            decoder: &mut fidl::encoding::Decoder<
10471                '_,
10472                fidl::encoding::DefaultFuchsiaResourceDialect,
10473            >,
10474            offset: usize,
10475            _depth: fidl::encoding::Depth,
10476        ) -> fidl::Result<()> {
10477            decoder.debug_check_bounds::<Self>(offset);
10478            // Verify that padding bytes are zero.
10479            fidl::decode!(
10480                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
10481                fidl::encoding::DefaultFuchsiaResourceDialect,
10482                &mut self.target,
10483                decoder,
10484                offset + 0,
10485                _depth
10486            )?;
10487            Ok(())
10488        }
10489    }
10490
10491    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayNoRequestRequest {
10492        type Borrowed<'a> = &'a mut Self;
10493        fn take_or_borrow<'a>(
10494            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10495        ) -> Self::Borrowed<'a> {
10496            value
10497        }
10498    }
10499
10500    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayNoRequestRequest {
10501        type Owned = Self;
10502
10503        #[inline(always)]
10504        fn inline_align(_context: fidl::encoding::Context) -> usize {
10505            4
10506        }
10507
10508        #[inline(always)]
10509        fn inline_size(_context: fidl::encoding::Context) -> usize {
10510            4
10511        }
10512    }
10513
10514    unsafe impl
10515        fidl::encoding::Encode<
10516            RunnerCallOneWayNoRequestRequest,
10517            fidl::encoding::DefaultFuchsiaResourceDialect,
10518        > for &mut RunnerCallOneWayNoRequestRequest
10519    {
10520        #[inline]
10521        unsafe fn encode(
10522            self,
10523            encoder: &mut fidl::encoding::Encoder<
10524                '_,
10525                fidl::encoding::DefaultFuchsiaResourceDialect,
10526            >,
10527            offset: usize,
10528            _depth: fidl::encoding::Depth,
10529        ) -> fidl::Result<()> {
10530            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10531            // Delegate to tuple encoding.
10532            fidl::encoding::Encode::<RunnerCallOneWayNoRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10533                (
10534                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10535                ),
10536                encoder, offset, _depth
10537            )
10538        }
10539    }
10540    unsafe impl<
10541        T0: fidl::encoding::Encode<
10542                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10543                fidl::encoding::DefaultFuchsiaResourceDialect,
10544            >,
10545    >
10546        fidl::encoding::Encode<
10547            RunnerCallOneWayNoRequestRequest,
10548            fidl::encoding::DefaultFuchsiaResourceDialect,
10549        > for (T0,)
10550    {
10551        #[inline]
10552        unsafe fn encode(
10553            self,
10554            encoder: &mut fidl::encoding::Encoder<
10555                '_,
10556                fidl::encoding::DefaultFuchsiaResourceDialect,
10557            >,
10558            offset: usize,
10559            depth: fidl::encoding::Depth,
10560        ) -> fidl::Result<()> {
10561            encoder.debug_check_bounds::<RunnerCallOneWayNoRequestRequest>(offset);
10562            // Zero out padding regions. There's no need to apply masks
10563            // because the unmasked parts will be overwritten by fields.
10564            // Write the fields.
10565            self.0.encode(encoder, offset + 0, depth)?;
10566            Ok(())
10567        }
10568    }
10569
10570    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10571        for RunnerCallOneWayNoRequestRequest
10572    {
10573        #[inline(always)]
10574        fn new_empty() -> Self {
10575            Self {
10576                target: fidl::new_empty!(
10577                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10578                    fidl::encoding::DefaultFuchsiaResourceDialect
10579                ),
10580            }
10581        }
10582
10583        #[inline]
10584        unsafe fn decode(
10585            &mut self,
10586            decoder: &mut fidl::encoding::Decoder<
10587                '_,
10588                fidl::encoding::DefaultFuchsiaResourceDialect,
10589            >,
10590            offset: usize,
10591            _depth: fidl::encoding::Depth,
10592        ) -> fidl::Result<()> {
10593            decoder.debug_check_bounds::<Self>(offset);
10594            // Verify that padding bytes are zero.
10595            fidl::decode!(
10596                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10597                fidl::encoding::DefaultFuchsiaResourceDialect,
10598                &mut self.target,
10599                decoder,
10600                offset + 0,
10601                _depth
10602            )?;
10603            Ok(())
10604        }
10605    }
10606
10607    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayStructRequestRequest {
10608        type Borrowed<'a> = &'a mut Self;
10609        fn take_or_borrow<'a>(
10610            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10611        ) -> Self::Borrowed<'a> {
10612            value
10613        }
10614    }
10615
10616    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayStructRequestRequest {
10617        type Owned = Self;
10618
10619        #[inline(always)]
10620        fn inline_align(_context: fidl::encoding::Context) -> usize {
10621            4
10622        }
10623
10624        #[inline(always)]
10625        fn inline_size(_context: fidl::encoding::Context) -> usize {
10626            8
10627        }
10628    }
10629
10630    unsafe impl
10631        fidl::encoding::Encode<
10632            RunnerCallOneWayStructRequestRequest,
10633            fidl::encoding::DefaultFuchsiaResourceDialect,
10634        > for &mut RunnerCallOneWayStructRequestRequest
10635    {
10636        #[inline]
10637        unsafe fn encode(
10638            self,
10639            encoder: &mut fidl::encoding::Encoder<
10640                '_,
10641                fidl::encoding::DefaultFuchsiaResourceDialect,
10642            >,
10643            offset: usize,
10644            _depth: fidl::encoding::Depth,
10645        ) -> fidl::Result<()> {
10646            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10647            // Delegate to tuple encoding.
10648            fidl::encoding::Encode::<RunnerCallOneWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10649                (
10650                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10651                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10652                ),
10653                encoder, offset, _depth
10654            )
10655        }
10656    }
10657    unsafe impl<
10658        T0: fidl::encoding::Encode<
10659                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10660                fidl::encoding::DefaultFuchsiaResourceDialect,
10661            >,
10662        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10663    >
10664        fidl::encoding::Encode<
10665            RunnerCallOneWayStructRequestRequest,
10666            fidl::encoding::DefaultFuchsiaResourceDialect,
10667        > for (T0, T1)
10668    {
10669        #[inline]
10670        unsafe fn encode(
10671            self,
10672            encoder: &mut fidl::encoding::Encoder<
10673                '_,
10674                fidl::encoding::DefaultFuchsiaResourceDialect,
10675            >,
10676            offset: usize,
10677            depth: fidl::encoding::Depth,
10678        ) -> fidl::Result<()> {
10679            encoder.debug_check_bounds::<RunnerCallOneWayStructRequestRequest>(offset);
10680            // Zero out padding regions. There's no need to apply masks
10681            // because the unmasked parts will be overwritten by fields.
10682            // Write the fields.
10683            self.0.encode(encoder, offset + 0, depth)?;
10684            self.1.encode(encoder, offset + 4, depth)?;
10685            Ok(())
10686        }
10687    }
10688
10689    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10690        for RunnerCallOneWayStructRequestRequest
10691    {
10692        #[inline(always)]
10693        fn new_empty() -> Self {
10694            Self {
10695                target: fidl::new_empty!(
10696                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10697                    fidl::encoding::DefaultFuchsiaResourceDialect
10698                ),
10699                request: fidl::new_empty!(
10700                    NonEmptyPayload,
10701                    fidl::encoding::DefaultFuchsiaResourceDialect
10702                ),
10703            }
10704        }
10705
10706        #[inline]
10707        unsafe fn decode(
10708            &mut self,
10709            decoder: &mut fidl::encoding::Decoder<
10710                '_,
10711                fidl::encoding::DefaultFuchsiaResourceDialect,
10712            >,
10713            offset: usize,
10714            _depth: fidl::encoding::Depth,
10715        ) -> fidl::Result<()> {
10716            decoder.debug_check_bounds::<Self>(offset);
10717            // Verify that padding bytes are zero.
10718            fidl::decode!(
10719                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10720                fidl::encoding::DefaultFuchsiaResourceDialect,
10721                &mut self.target,
10722                decoder,
10723                offset + 0,
10724                _depth
10725            )?;
10726            fidl::decode!(
10727                NonEmptyPayload,
10728                fidl::encoding::DefaultFuchsiaResourceDialect,
10729                &mut self.request,
10730                decoder,
10731                offset + 4,
10732                _depth
10733            )?;
10734            Ok(())
10735        }
10736    }
10737
10738    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayTableRequestRequest {
10739        type Borrowed<'a> = &'a mut Self;
10740        fn take_or_borrow<'a>(
10741            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10742        ) -> Self::Borrowed<'a> {
10743            value
10744        }
10745    }
10746
10747    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayTableRequestRequest {
10748        type Owned = Self;
10749
10750        #[inline(always)]
10751        fn inline_align(_context: fidl::encoding::Context) -> usize {
10752            8
10753        }
10754
10755        #[inline(always)]
10756        fn inline_size(_context: fidl::encoding::Context) -> usize {
10757            24
10758        }
10759    }
10760
10761    unsafe impl
10762        fidl::encoding::Encode<
10763            RunnerCallOneWayTableRequestRequest,
10764            fidl::encoding::DefaultFuchsiaResourceDialect,
10765        > for &mut RunnerCallOneWayTableRequestRequest
10766    {
10767        #[inline]
10768        unsafe fn encode(
10769            self,
10770            encoder: &mut fidl::encoding::Encoder<
10771                '_,
10772                fidl::encoding::DefaultFuchsiaResourceDialect,
10773            >,
10774            offset: usize,
10775            _depth: fidl::encoding::Depth,
10776        ) -> fidl::Result<()> {
10777            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10778            // Delegate to tuple encoding.
10779            fidl::encoding::Encode::<RunnerCallOneWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10780                (
10781                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10782                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10783                ),
10784                encoder, offset, _depth
10785            )
10786        }
10787    }
10788    unsafe impl<
10789        T0: fidl::encoding::Encode<
10790                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10791                fidl::encoding::DefaultFuchsiaResourceDialect,
10792            >,
10793        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10794    >
10795        fidl::encoding::Encode<
10796            RunnerCallOneWayTableRequestRequest,
10797            fidl::encoding::DefaultFuchsiaResourceDialect,
10798        > for (T0, T1)
10799    {
10800        #[inline]
10801        unsafe fn encode(
10802            self,
10803            encoder: &mut fidl::encoding::Encoder<
10804                '_,
10805                fidl::encoding::DefaultFuchsiaResourceDialect,
10806            >,
10807            offset: usize,
10808            depth: fidl::encoding::Depth,
10809        ) -> fidl::Result<()> {
10810            encoder.debug_check_bounds::<RunnerCallOneWayTableRequestRequest>(offset);
10811            // Zero out padding regions. There's no need to apply masks
10812            // because the unmasked parts will be overwritten by fields.
10813            unsafe {
10814                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10815                (ptr as *mut u64).write_unaligned(0);
10816            }
10817            // Write the fields.
10818            self.0.encode(encoder, offset + 0, depth)?;
10819            self.1.encode(encoder, offset + 8, depth)?;
10820            Ok(())
10821        }
10822    }
10823
10824    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10825        for RunnerCallOneWayTableRequestRequest
10826    {
10827        #[inline(always)]
10828        fn new_empty() -> Self {
10829            Self {
10830                target: fidl::new_empty!(
10831                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10832                    fidl::encoding::DefaultFuchsiaResourceDialect
10833                ),
10834                request: fidl::new_empty!(
10835                    TablePayload,
10836                    fidl::encoding::DefaultFuchsiaResourceDialect
10837                ),
10838            }
10839        }
10840
10841        #[inline]
10842        unsafe fn decode(
10843            &mut self,
10844            decoder: &mut fidl::encoding::Decoder<
10845                '_,
10846                fidl::encoding::DefaultFuchsiaResourceDialect,
10847            >,
10848            offset: usize,
10849            _depth: fidl::encoding::Depth,
10850        ) -> fidl::Result<()> {
10851            decoder.debug_check_bounds::<Self>(offset);
10852            // Verify that padding bytes are zero.
10853            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
10854            let padval = unsafe { (ptr as *const u64).read_unaligned() };
10855            let mask = 0xffffffff00000000u64;
10856            let maskedval = padval & mask;
10857            if maskedval != 0 {
10858                return Err(fidl::Error::NonZeroPadding {
10859                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
10860                });
10861            }
10862            fidl::decode!(
10863                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10864                fidl::encoding::DefaultFuchsiaResourceDialect,
10865                &mut self.target,
10866                decoder,
10867                offset + 0,
10868                _depth
10869            )?;
10870            fidl::decode!(
10871                TablePayload,
10872                fidl::encoding::DefaultFuchsiaResourceDialect,
10873                &mut self.request,
10874                decoder,
10875                offset + 8,
10876                _depth
10877            )?;
10878            Ok(())
10879        }
10880    }
10881
10882    impl fidl::encoding::ResourceTypeMarker for RunnerCallOneWayUnionRequestRequest {
10883        type Borrowed<'a> = &'a mut Self;
10884        fn take_or_borrow<'a>(
10885            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10886        ) -> Self::Borrowed<'a> {
10887            value
10888        }
10889    }
10890
10891    unsafe impl fidl::encoding::TypeMarker for RunnerCallOneWayUnionRequestRequest {
10892        type Owned = Self;
10893
10894        #[inline(always)]
10895        fn inline_align(_context: fidl::encoding::Context) -> usize {
10896            8
10897        }
10898
10899        #[inline(always)]
10900        fn inline_size(_context: fidl::encoding::Context) -> usize {
10901            24
10902        }
10903    }
10904
10905    unsafe impl
10906        fidl::encoding::Encode<
10907            RunnerCallOneWayUnionRequestRequest,
10908            fidl::encoding::DefaultFuchsiaResourceDialect,
10909        > for &mut RunnerCallOneWayUnionRequestRequest
10910    {
10911        #[inline]
10912        unsafe fn encode(
10913            self,
10914            encoder: &mut fidl::encoding::Encoder<
10915                '_,
10916                fidl::encoding::DefaultFuchsiaResourceDialect,
10917            >,
10918            offset: usize,
10919            _depth: fidl::encoding::Depth,
10920        ) -> fidl::Result<()> {
10921            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
10922            // Delegate to tuple encoding.
10923            fidl::encoding::Encode::<RunnerCallOneWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
10924                (
10925                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
10926                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
10927                ),
10928                encoder, offset, _depth
10929            )
10930        }
10931    }
10932    unsafe impl<
10933        T0: fidl::encoding::Encode<
10934                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10935                fidl::encoding::DefaultFuchsiaResourceDialect,
10936            >,
10937        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
10938    >
10939        fidl::encoding::Encode<
10940            RunnerCallOneWayUnionRequestRequest,
10941            fidl::encoding::DefaultFuchsiaResourceDialect,
10942        > for (T0, T1)
10943    {
10944        #[inline]
10945        unsafe fn encode(
10946            self,
10947            encoder: &mut fidl::encoding::Encoder<
10948                '_,
10949                fidl::encoding::DefaultFuchsiaResourceDialect,
10950            >,
10951            offset: usize,
10952            depth: fidl::encoding::Depth,
10953        ) -> fidl::Result<()> {
10954            encoder.debug_check_bounds::<RunnerCallOneWayUnionRequestRequest>(offset);
10955            // Zero out padding regions. There's no need to apply masks
10956            // because the unmasked parts will be overwritten by fields.
10957            unsafe {
10958                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
10959                (ptr as *mut u64).write_unaligned(0);
10960            }
10961            // Write the fields.
10962            self.0.encode(encoder, offset + 0, depth)?;
10963            self.1.encode(encoder, offset + 8, depth)?;
10964            Ok(())
10965        }
10966    }
10967
10968    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10969        for RunnerCallOneWayUnionRequestRequest
10970    {
10971        #[inline(always)]
10972        fn new_empty() -> Self {
10973            Self {
10974                target: fidl::new_empty!(
10975                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
10976                    fidl::encoding::DefaultFuchsiaResourceDialect
10977                ),
10978                request: fidl::new_empty!(
10979                    UnionPayload,
10980                    fidl::encoding::DefaultFuchsiaResourceDialect
10981                ),
10982            }
10983        }
10984
10985        #[inline]
10986        unsafe fn decode(
10987            &mut self,
10988            decoder: &mut fidl::encoding::Decoder<
10989                '_,
10990                fidl::encoding::DefaultFuchsiaResourceDialect,
10991            >,
10992            offset: usize,
10993            _depth: fidl::encoding::Depth,
10994        ) -> fidl::Result<()> {
10995            decoder.debug_check_bounds::<Self>(offset);
10996            // Verify that padding bytes are zero.
10997            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
10998            let padval = unsafe { (ptr as *const u64).read_unaligned() };
10999            let mask = 0xffffffff00000000u64;
11000            let maskedval = padval & mask;
11001            if maskedval != 0 {
11002                return Err(fidl::Error::NonZeroPadding {
11003                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
11004                });
11005            }
11006            fidl::decode!(
11007                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11008                fidl::encoding::DefaultFuchsiaResourceDialect,
11009                &mut self.target,
11010                decoder,
11011                offset + 0,
11012                _depth
11013            )?;
11014            fidl::decode!(
11015                UnionPayload,
11016                fidl::encoding::DefaultFuchsiaResourceDialect,
11017                &mut self.request,
11018                decoder,
11019                offset + 8,
11020                _depth
11021            )?;
11022            Ok(())
11023        }
11024    }
11025
11026    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictOneWayRequest {
11027        type Borrowed<'a> = &'a mut Self;
11028        fn take_or_borrow<'a>(
11029            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11030        ) -> Self::Borrowed<'a> {
11031            value
11032        }
11033    }
11034
11035    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictOneWayRequest {
11036        type Owned = Self;
11037
11038        #[inline(always)]
11039        fn inline_align(_context: fidl::encoding::Context) -> usize {
11040            4
11041        }
11042
11043        #[inline(always)]
11044        fn inline_size(_context: fidl::encoding::Context) -> usize {
11045            4
11046        }
11047    }
11048
11049    unsafe impl
11050        fidl::encoding::Encode<
11051            RunnerCallStrictOneWayRequest,
11052            fidl::encoding::DefaultFuchsiaResourceDialect,
11053        > for &mut RunnerCallStrictOneWayRequest
11054    {
11055        #[inline]
11056        unsafe fn encode(
11057            self,
11058            encoder: &mut fidl::encoding::Encoder<
11059                '_,
11060                fidl::encoding::DefaultFuchsiaResourceDialect,
11061            >,
11062            offset: usize,
11063            _depth: fidl::encoding::Depth,
11064        ) -> fidl::Result<()> {
11065            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11066            // Delegate to tuple encoding.
11067            fidl::encoding::Encode::<RunnerCallStrictOneWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11068                (
11069                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11070                ),
11071                encoder, offset, _depth
11072            )
11073        }
11074    }
11075    unsafe impl<
11076        T0: fidl::encoding::Encode<
11077                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11078                fidl::encoding::DefaultFuchsiaResourceDialect,
11079            >,
11080    >
11081        fidl::encoding::Encode<
11082            RunnerCallStrictOneWayRequest,
11083            fidl::encoding::DefaultFuchsiaResourceDialect,
11084        > for (T0,)
11085    {
11086        #[inline]
11087        unsafe fn encode(
11088            self,
11089            encoder: &mut fidl::encoding::Encoder<
11090                '_,
11091                fidl::encoding::DefaultFuchsiaResourceDialect,
11092            >,
11093            offset: usize,
11094            depth: fidl::encoding::Depth,
11095        ) -> fidl::Result<()> {
11096            encoder.debug_check_bounds::<RunnerCallStrictOneWayRequest>(offset);
11097            // Zero out padding regions. There's no need to apply masks
11098            // because the unmasked parts will be overwritten by fields.
11099            // Write the fields.
11100            self.0.encode(encoder, offset + 0, depth)?;
11101            Ok(())
11102        }
11103    }
11104
11105    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11106        for RunnerCallStrictOneWayRequest
11107    {
11108        #[inline(always)]
11109        fn new_empty() -> Self {
11110            Self {
11111                target: fidl::new_empty!(
11112                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11113                    fidl::encoding::DefaultFuchsiaResourceDialect
11114                ),
11115            }
11116        }
11117
11118        #[inline]
11119        unsafe fn decode(
11120            &mut self,
11121            decoder: &mut fidl::encoding::Decoder<
11122                '_,
11123                fidl::encoding::DefaultFuchsiaResourceDialect,
11124            >,
11125            offset: usize,
11126            _depth: fidl::encoding::Depth,
11127        ) -> fidl::Result<()> {
11128            decoder.debug_check_bounds::<Self>(offset);
11129            // Verify that padding bytes are zero.
11130            fidl::decode!(
11131                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11132                fidl::encoding::DefaultFuchsiaResourceDialect,
11133                &mut self.target,
11134                decoder,
11135                offset + 0,
11136                _depth
11137            )?;
11138            Ok(())
11139        }
11140    }
11141
11142    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayErrRequest {
11143        type Borrowed<'a> = &'a mut Self;
11144        fn take_or_borrow<'a>(
11145            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11146        ) -> Self::Borrowed<'a> {
11147            value
11148        }
11149    }
11150
11151    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayErrRequest {
11152        type Owned = Self;
11153
11154        #[inline(always)]
11155        fn inline_align(_context: fidl::encoding::Context) -> usize {
11156            4
11157        }
11158
11159        #[inline(always)]
11160        fn inline_size(_context: fidl::encoding::Context) -> usize {
11161            4
11162        }
11163    }
11164
11165    unsafe impl
11166        fidl::encoding::Encode<
11167            RunnerCallStrictTwoWayErrRequest,
11168            fidl::encoding::DefaultFuchsiaResourceDialect,
11169        > for &mut RunnerCallStrictTwoWayErrRequest
11170    {
11171        #[inline]
11172        unsafe fn encode(
11173            self,
11174            encoder: &mut fidl::encoding::Encoder<
11175                '_,
11176                fidl::encoding::DefaultFuchsiaResourceDialect,
11177            >,
11178            offset: usize,
11179            _depth: fidl::encoding::Depth,
11180        ) -> fidl::Result<()> {
11181            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11182            // Delegate to tuple encoding.
11183            fidl::encoding::Encode::<RunnerCallStrictTwoWayErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11184                (
11185                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11186                ),
11187                encoder, offset, _depth
11188            )
11189        }
11190    }
11191    unsafe impl<
11192        T0: fidl::encoding::Encode<
11193                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11194                fidl::encoding::DefaultFuchsiaResourceDialect,
11195            >,
11196    >
11197        fidl::encoding::Encode<
11198            RunnerCallStrictTwoWayErrRequest,
11199            fidl::encoding::DefaultFuchsiaResourceDialect,
11200        > for (T0,)
11201    {
11202        #[inline]
11203        unsafe fn encode(
11204            self,
11205            encoder: &mut fidl::encoding::Encoder<
11206                '_,
11207                fidl::encoding::DefaultFuchsiaResourceDialect,
11208            >,
11209            offset: usize,
11210            depth: fidl::encoding::Depth,
11211        ) -> fidl::Result<()> {
11212            encoder.debug_check_bounds::<RunnerCallStrictTwoWayErrRequest>(offset);
11213            // Zero out padding regions. There's no need to apply masks
11214            // because the unmasked parts will be overwritten by fields.
11215            // Write the fields.
11216            self.0.encode(encoder, offset + 0, depth)?;
11217            Ok(())
11218        }
11219    }
11220
11221    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11222        for RunnerCallStrictTwoWayErrRequest
11223    {
11224        #[inline(always)]
11225        fn new_empty() -> Self {
11226            Self {
11227                target: fidl::new_empty!(
11228                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11229                    fidl::encoding::DefaultFuchsiaResourceDialect
11230                ),
11231            }
11232        }
11233
11234        #[inline]
11235        unsafe fn decode(
11236            &mut self,
11237            decoder: &mut fidl::encoding::Decoder<
11238                '_,
11239                fidl::encoding::DefaultFuchsiaResourceDialect,
11240            >,
11241            offset: usize,
11242            _depth: fidl::encoding::Depth,
11243        ) -> fidl::Result<()> {
11244            decoder.debug_check_bounds::<Self>(offset);
11245            // Verify that padding bytes are zero.
11246            fidl::decode!(
11247                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11248                fidl::encoding::DefaultFuchsiaResourceDialect,
11249                &mut self.target,
11250                decoder,
11251                offset + 0,
11252                _depth
11253            )?;
11254            Ok(())
11255        }
11256    }
11257
11258    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11259        type Borrowed<'a> = &'a mut Self;
11260        fn take_or_borrow<'a>(
11261            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11262        ) -> Self::Borrowed<'a> {
11263            value
11264        }
11265    }
11266
11267    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsErrRequest {
11268        type Owned = Self;
11269
11270        #[inline(always)]
11271        fn inline_align(_context: fidl::encoding::Context) -> usize {
11272            4
11273        }
11274
11275        #[inline(always)]
11276        fn inline_size(_context: fidl::encoding::Context) -> usize {
11277            4
11278        }
11279    }
11280
11281    unsafe impl
11282        fidl::encoding::Encode<
11283            RunnerCallStrictTwoWayFieldsErrRequest,
11284            fidl::encoding::DefaultFuchsiaResourceDialect,
11285        > for &mut RunnerCallStrictTwoWayFieldsErrRequest
11286    {
11287        #[inline]
11288        unsafe fn encode(
11289            self,
11290            encoder: &mut fidl::encoding::Encoder<
11291                '_,
11292                fidl::encoding::DefaultFuchsiaResourceDialect,
11293            >,
11294            offset: usize,
11295            _depth: fidl::encoding::Depth,
11296        ) -> fidl::Result<()> {
11297            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11298            // Delegate to tuple encoding.
11299            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11300                (
11301                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11302                ),
11303                encoder, offset, _depth
11304            )
11305        }
11306    }
11307    unsafe impl<
11308        T0: fidl::encoding::Encode<
11309                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11310                fidl::encoding::DefaultFuchsiaResourceDialect,
11311            >,
11312    >
11313        fidl::encoding::Encode<
11314            RunnerCallStrictTwoWayFieldsErrRequest,
11315            fidl::encoding::DefaultFuchsiaResourceDialect,
11316        > for (T0,)
11317    {
11318        #[inline]
11319        unsafe fn encode(
11320            self,
11321            encoder: &mut fidl::encoding::Encoder<
11322                '_,
11323                fidl::encoding::DefaultFuchsiaResourceDialect,
11324            >,
11325            offset: usize,
11326            depth: fidl::encoding::Depth,
11327        ) -> fidl::Result<()> {
11328            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsErrRequest>(offset);
11329            // Zero out padding regions. There's no need to apply masks
11330            // because the unmasked parts will be overwritten by fields.
11331            // Write the fields.
11332            self.0.encode(encoder, offset + 0, depth)?;
11333            Ok(())
11334        }
11335    }
11336
11337    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11338        for RunnerCallStrictTwoWayFieldsErrRequest
11339    {
11340        #[inline(always)]
11341        fn new_empty() -> Self {
11342            Self {
11343                target: fidl::new_empty!(
11344                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11345                    fidl::encoding::DefaultFuchsiaResourceDialect
11346                ),
11347            }
11348        }
11349
11350        #[inline]
11351        unsafe fn decode(
11352            &mut self,
11353            decoder: &mut fidl::encoding::Decoder<
11354                '_,
11355                fidl::encoding::DefaultFuchsiaResourceDialect,
11356            >,
11357            offset: usize,
11358            _depth: fidl::encoding::Depth,
11359        ) -> fidl::Result<()> {
11360            decoder.debug_check_bounds::<Self>(offset);
11361            // Verify that padding bytes are zero.
11362            fidl::decode!(
11363                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11364                fidl::encoding::DefaultFuchsiaResourceDialect,
11365                &mut self.target,
11366                decoder,
11367                offset + 0,
11368                _depth
11369            )?;
11370            Ok(())
11371        }
11372    }
11373
11374    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11375        type Borrowed<'a> = &'a mut Self;
11376        fn take_or_borrow<'a>(
11377            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11378        ) -> Self::Borrowed<'a> {
11379            value
11380        }
11381    }
11382
11383    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayFieldsRequest {
11384        type Owned = Self;
11385
11386        #[inline(always)]
11387        fn inline_align(_context: fidl::encoding::Context) -> usize {
11388            4
11389        }
11390
11391        #[inline(always)]
11392        fn inline_size(_context: fidl::encoding::Context) -> usize {
11393            4
11394        }
11395    }
11396
11397    unsafe impl
11398        fidl::encoding::Encode<
11399            RunnerCallStrictTwoWayFieldsRequest,
11400            fidl::encoding::DefaultFuchsiaResourceDialect,
11401        > for &mut RunnerCallStrictTwoWayFieldsRequest
11402    {
11403        #[inline]
11404        unsafe fn encode(
11405            self,
11406            encoder: &mut fidl::encoding::Encoder<
11407                '_,
11408                fidl::encoding::DefaultFuchsiaResourceDialect,
11409            >,
11410            offset: usize,
11411            _depth: fidl::encoding::Depth,
11412        ) -> fidl::Result<()> {
11413            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11414            // Delegate to tuple encoding.
11415            fidl::encoding::Encode::<RunnerCallStrictTwoWayFieldsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11416                (
11417                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11418                ),
11419                encoder, offset, _depth
11420            )
11421        }
11422    }
11423    unsafe impl<
11424        T0: fidl::encoding::Encode<
11425                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11426                fidl::encoding::DefaultFuchsiaResourceDialect,
11427            >,
11428    >
11429        fidl::encoding::Encode<
11430            RunnerCallStrictTwoWayFieldsRequest,
11431            fidl::encoding::DefaultFuchsiaResourceDialect,
11432        > for (T0,)
11433    {
11434        #[inline]
11435        unsafe fn encode(
11436            self,
11437            encoder: &mut fidl::encoding::Encoder<
11438                '_,
11439                fidl::encoding::DefaultFuchsiaResourceDialect,
11440            >,
11441            offset: usize,
11442            depth: fidl::encoding::Depth,
11443        ) -> fidl::Result<()> {
11444            encoder.debug_check_bounds::<RunnerCallStrictTwoWayFieldsRequest>(offset);
11445            // Zero out padding regions. There's no need to apply masks
11446            // because the unmasked parts will be overwritten by fields.
11447            // Write the fields.
11448            self.0.encode(encoder, offset + 0, depth)?;
11449            Ok(())
11450        }
11451    }
11452
11453    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11454        for RunnerCallStrictTwoWayFieldsRequest
11455    {
11456        #[inline(always)]
11457        fn new_empty() -> Self {
11458            Self {
11459                target: fidl::new_empty!(
11460                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11461                    fidl::encoding::DefaultFuchsiaResourceDialect
11462                ),
11463            }
11464        }
11465
11466        #[inline]
11467        unsafe fn decode(
11468            &mut self,
11469            decoder: &mut fidl::encoding::Decoder<
11470                '_,
11471                fidl::encoding::DefaultFuchsiaResourceDialect,
11472            >,
11473            offset: usize,
11474            _depth: fidl::encoding::Depth,
11475        ) -> fidl::Result<()> {
11476            decoder.debug_check_bounds::<Self>(offset);
11477            // Verify that padding bytes are zero.
11478            fidl::decode!(
11479                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11480                fidl::encoding::DefaultFuchsiaResourceDialect,
11481                &mut self.target,
11482                decoder,
11483                offset + 0,
11484                _depth
11485            )?;
11486            Ok(())
11487        }
11488    }
11489
11490    impl fidl::encoding::ResourceTypeMarker for RunnerCallStrictTwoWayRequest {
11491        type Borrowed<'a> = &'a mut Self;
11492        fn take_or_borrow<'a>(
11493            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11494        ) -> Self::Borrowed<'a> {
11495            value
11496        }
11497    }
11498
11499    unsafe impl fidl::encoding::TypeMarker for RunnerCallStrictTwoWayRequest {
11500        type Owned = Self;
11501
11502        #[inline(always)]
11503        fn inline_align(_context: fidl::encoding::Context) -> usize {
11504            4
11505        }
11506
11507        #[inline(always)]
11508        fn inline_size(_context: fidl::encoding::Context) -> usize {
11509            4
11510        }
11511    }
11512
11513    unsafe impl
11514        fidl::encoding::Encode<
11515            RunnerCallStrictTwoWayRequest,
11516            fidl::encoding::DefaultFuchsiaResourceDialect,
11517        > for &mut RunnerCallStrictTwoWayRequest
11518    {
11519        #[inline]
11520        unsafe fn encode(
11521            self,
11522            encoder: &mut fidl::encoding::Encoder<
11523                '_,
11524                fidl::encoding::DefaultFuchsiaResourceDialect,
11525            >,
11526            offset: usize,
11527            _depth: fidl::encoding::Depth,
11528        ) -> fidl::Result<()> {
11529            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11530            // Delegate to tuple encoding.
11531            fidl::encoding::Encode::<RunnerCallStrictTwoWayRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11532                (
11533                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11534                ),
11535                encoder, offset, _depth
11536            )
11537        }
11538    }
11539    unsafe impl<
11540        T0: fidl::encoding::Encode<
11541                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11542                fidl::encoding::DefaultFuchsiaResourceDialect,
11543            >,
11544    >
11545        fidl::encoding::Encode<
11546            RunnerCallStrictTwoWayRequest,
11547            fidl::encoding::DefaultFuchsiaResourceDialect,
11548        > for (T0,)
11549    {
11550        #[inline]
11551        unsafe fn encode(
11552            self,
11553            encoder: &mut fidl::encoding::Encoder<
11554                '_,
11555                fidl::encoding::DefaultFuchsiaResourceDialect,
11556            >,
11557            offset: usize,
11558            depth: fidl::encoding::Depth,
11559        ) -> fidl::Result<()> {
11560            encoder.debug_check_bounds::<RunnerCallStrictTwoWayRequest>(offset);
11561            // Zero out padding regions. There's no need to apply masks
11562            // because the unmasked parts will be overwritten by fields.
11563            // Write the fields.
11564            self.0.encode(encoder, offset + 0, depth)?;
11565            Ok(())
11566        }
11567    }
11568
11569    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11570        for RunnerCallStrictTwoWayRequest
11571    {
11572        #[inline(always)]
11573        fn new_empty() -> Self {
11574            Self {
11575                target: fidl::new_empty!(
11576                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11577                    fidl::encoding::DefaultFuchsiaResourceDialect
11578                ),
11579            }
11580        }
11581
11582        #[inline]
11583        unsafe fn decode(
11584            &mut self,
11585            decoder: &mut fidl::encoding::Decoder<
11586                '_,
11587                fidl::encoding::DefaultFuchsiaResourceDialect,
11588            >,
11589            offset: usize,
11590            _depth: fidl::encoding::Depth,
11591        ) -> fidl::Result<()> {
11592            decoder.debug_check_bounds::<Self>(offset);
11593            // Verify that padding bytes are zero.
11594            fidl::decode!(
11595                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
11596                fidl::encoding::DefaultFuchsiaResourceDialect,
11597                &mut self.target,
11598                decoder,
11599                offset + 0,
11600                _depth
11601            )?;
11602            Ok(())
11603        }
11604    }
11605
11606    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayNoPayloadRequest {
11607        type Borrowed<'a> = &'a mut Self;
11608        fn take_or_borrow<'a>(
11609            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11610        ) -> Self::Borrowed<'a> {
11611            value
11612        }
11613    }
11614
11615    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayNoPayloadRequest {
11616        type Owned = Self;
11617
11618        #[inline(always)]
11619        fn inline_align(_context: fidl::encoding::Context) -> usize {
11620            4
11621        }
11622
11623        #[inline(always)]
11624        fn inline_size(_context: fidl::encoding::Context) -> usize {
11625            4
11626        }
11627    }
11628
11629    unsafe impl
11630        fidl::encoding::Encode<
11631            RunnerCallTwoWayNoPayloadRequest,
11632            fidl::encoding::DefaultFuchsiaResourceDialect,
11633        > for &mut RunnerCallTwoWayNoPayloadRequest
11634    {
11635        #[inline]
11636        unsafe fn encode(
11637            self,
11638            encoder: &mut fidl::encoding::Encoder<
11639                '_,
11640                fidl::encoding::DefaultFuchsiaResourceDialect,
11641            >,
11642            offset: usize,
11643            _depth: fidl::encoding::Depth,
11644        ) -> fidl::Result<()> {
11645            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11646            // Delegate to tuple encoding.
11647            fidl::encoding::Encode::<RunnerCallTwoWayNoPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11648                (
11649                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11650                ),
11651                encoder, offset, _depth
11652            )
11653        }
11654    }
11655    unsafe impl<
11656        T0: fidl::encoding::Encode<
11657                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11658                fidl::encoding::DefaultFuchsiaResourceDialect,
11659            >,
11660    >
11661        fidl::encoding::Encode<
11662            RunnerCallTwoWayNoPayloadRequest,
11663            fidl::encoding::DefaultFuchsiaResourceDialect,
11664        > for (T0,)
11665    {
11666        #[inline]
11667        unsafe fn encode(
11668            self,
11669            encoder: &mut fidl::encoding::Encoder<
11670                '_,
11671                fidl::encoding::DefaultFuchsiaResourceDialect,
11672            >,
11673            offset: usize,
11674            depth: fidl::encoding::Depth,
11675        ) -> fidl::Result<()> {
11676            encoder.debug_check_bounds::<RunnerCallTwoWayNoPayloadRequest>(offset);
11677            // Zero out padding regions. There's no need to apply masks
11678            // because the unmasked parts will be overwritten by fields.
11679            // Write the fields.
11680            self.0.encode(encoder, offset + 0, depth)?;
11681            Ok(())
11682        }
11683    }
11684
11685    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11686        for RunnerCallTwoWayNoPayloadRequest
11687    {
11688        #[inline(always)]
11689        fn new_empty() -> Self {
11690            Self {
11691                target: fidl::new_empty!(
11692                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11693                    fidl::encoding::DefaultFuchsiaResourceDialect
11694                ),
11695            }
11696        }
11697
11698        #[inline]
11699        unsafe fn decode(
11700            &mut self,
11701            decoder: &mut fidl::encoding::Decoder<
11702                '_,
11703                fidl::encoding::DefaultFuchsiaResourceDialect,
11704            >,
11705            offset: usize,
11706            _depth: fidl::encoding::Depth,
11707        ) -> fidl::Result<()> {
11708            decoder.debug_check_bounds::<Self>(offset);
11709            // Verify that padding bytes are zero.
11710            fidl::decode!(
11711                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11712                fidl::encoding::DefaultFuchsiaResourceDialect,
11713                &mut self.target,
11714                decoder,
11715                offset + 0,
11716                _depth
11717            )?;
11718            Ok(())
11719        }
11720    }
11721
11722    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11723        type Borrowed<'a> = &'a mut Self;
11724        fn take_or_borrow<'a>(
11725            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11726        ) -> Self::Borrowed<'a> {
11727            value
11728        }
11729    }
11730
11731    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadErrRequest {
11732        type Owned = Self;
11733
11734        #[inline(always)]
11735        fn inline_align(_context: fidl::encoding::Context) -> usize {
11736            4
11737        }
11738
11739        #[inline(always)]
11740        fn inline_size(_context: fidl::encoding::Context) -> usize {
11741            4
11742        }
11743    }
11744
11745    unsafe impl
11746        fidl::encoding::Encode<
11747            RunnerCallTwoWayStructPayloadErrRequest,
11748            fidl::encoding::DefaultFuchsiaResourceDialect,
11749        > for &mut RunnerCallTwoWayStructPayloadErrRequest
11750    {
11751        #[inline]
11752        unsafe fn encode(
11753            self,
11754            encoder: &mut fidl::encoding::Encoder<
11755                '_,
11756                fidl::encoding::DefaultFuchsiaResourceDialect,
11757            >,
11758            offset: usize,
11759            _depth: fidl::encoding::Depth,
11760        ) -> fidl::Result<()> {
11761            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11762            // Delegate to tuple encoding.
11763            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadErrRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11764                (
11765                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11766                ),
11767                encoder, offset, _depth
11768            )
11769        }
11770    }
11771    unsafe impl<
11772        T0: fidl::encoding::Encode<
11773                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11774                fidl::encoding::DefaultFuchsiaResourceDialect,
11775            >,
11776    >
11777        fidl::encoding::Encode<
11778            RunnerCallTwoWayStructPayloadErrRequest,
11779            fidl::encoding::DefaultFuchsiaResourceDialect,
11780        > for (T0,)
11781    {
11782        #[inline]
11783        unsafe fn encode(
11784            self,
11785            encoder: &mut fidl::encoding::Encoder<
11786                '_,
11787                fidl::encoding::DefaultFuchsiaResourceDialect,
11788            >,
11789            offset: usize,
11790            depth: fidl::encoding::Depth,
11791        ) -> fidl::Result<()> {
11792            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadErrRequest>(offset);
11793            // Zero out padding regions. There's no need to apply masks
11794            // because the unmasked parts will be overwritten by fields.
11795            // Write the fields.
11796            self.0.encode(encoder, offset + 0, depth)?;
11797            Ok(())
11798        }
11799    }
11800
11801    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11802        for RunnerCallTwoWayStructPayloadErrRequest
11803    {
11804        #[inline(always)]
11805        fn new_empty() -> Self {
11806            Self {
11807                target: fidl::new_empty!(
11808                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11809                    fidl::encoding::DefaultFuchsiaResourceDialect
11810                ),
11811            }
11812        }
11813
11814        #[inline]
11815        unsafe fn decode(
11816            &mut self,
11817            decoder: &mut fidl::encoding::Decoder<
11818                '_,
11819                fidl::encoding::DefaultFuchsiaResourceDialect,
11820            >,
11821            offset: usize,
11822            _depth: fidl::encoding::Depth,
11823        ) -> fidl::Result<()> {
11824            decoder.debug_check_bounds::<Self>(offset);
11825            // Verify that padding bytes are zero.
11826            fidl::decode!(
11827                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11828                fidl::encoding::DefaultFuchsiaResourceDialect,
11829                &mut self.target,
11830                decoder,
11831                offset + 0,
11832                _depth
11833            )?;
11834            Ok(())
11835        }
11836    }
11837
11838    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructPayloadRequest {
11839        type Borrowed<'a> = &'a mut Self;
11840        fn take_or_borrow<'a>(
11841            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11842        ) -> Self::Borrowed<'a> {
11843            value
11844        }
11845    }
11846
11847    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructPayloadRequest {
11848        type Owned = Self;
11849
11850        #[inline(always)]
11851        fn inline_align(_context: fidl::encoding::Context) -> usize {
11852            4
11853        }
11854
11855        #[inline(always)]
11856        fn inline_size(_context: fidl::encoding::Context) -> usize {
11857            4
11858        }
11859    }
11860
11861    unsafe impl
11862        fidl::encoding::Encode<
11863            RunnerCallTwoWayStructPayloadRequest,
11864            fidl::encoding::DefaultFuchsiaResourceDialect,
11865        > for &mut RunnerCallTwoWayStructPayloadRequest
11866    {
11867        #[inline]
11868        unsafe fn encode(
11869            self,
11870            encoder: &mut fidl::encoding::Encoder<
11871                '_,
11872                fidl::encoding::DefaultFuchsiaResourceDialect,
11873            >,
11874            offset: usize,
11875            _depth: fidl::encoding::Depth,
11876        ) -> fidl::Result<()> {
11877            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11878            // Delegate to tuple encoding.
11879            fidl::encoding::Encode::<RunnerCallTwoWayStructPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11880                (
11881                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11882                ),
11883                encoder, offset, _depth
11884            )
11885        }
11886    }
11887    unsafe impl<
11888        T0: fidl::encoding::Encode<
11889                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11890                fidl::encoding::DefaultFuchsiaResourceDialect,
11891            >,
11892    >
11893        fidl::encoding::Encode<
11894            RunnerCallTwoWayStructPayloadRequest,
11895            fidl::encoding::DefaultFuchsiaResourceDialect,
11896        > for (T0,)
11897    {
11898        #[inline]
11899        unsafe fn encode(
11900            self,
11901            encoder: &mut fidl::encoding::Encoder<
11902                '_,
11903                fidl::encoding::DefaultFuchsiaResourceDialect,
11904            >,
11905            offset: usize,
11906            depth: fidl::encoding::Depth,
11907        ) -> fidl::Result<()> {
11908            encoder.debug_check_bounds::<RunnerCallTwoWayStructPayloadRequest>(offset);
11909            // Zero out padding regions. There's no need to apply masks
11910            // because the unmasked parts will be overwritten by fields.
11911            // Write the fields.
11912            self.0.encode(encoder, offset + 0, depth)?;
11913            Ok(())
11914        }
11915    }
11916
11917    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
11918        for RunnerCallTwoWayStructPayloadRequest
11919    {
11920        #[inline(always)]
11921        fn new_empty() -> Self {
11922            Self {
11923                target: fidl::new_empty!(
11924                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11925                    fidl::encoding::DefaultFuchsiaResourceDialect
11926                ),
11927            }
11928        }
11929
11930        #[inline]
11931        unsafe fn decode(
11932            &mut self,
11933            decoder: &mut fidl::encoding::Decoder<
11934                '_,
11935                fidl::encoding::DefaultFuchsiaResourceDialect,
11936            >,
11937            offset: usize,
11938            _depth: fidl::encoding::Depth,
11939        ) -> fidl::Result<()> {
11940            decoder.debug_check_bounds::<Self>(offset);
11941            // Verify that padding bytes are zero.
11942            fidl::decode!(
11943                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
11944                fidl::encoding::DefaultFuchsiaResourceDialect,
11945                &mut self.target,
11946                decoder,
11947                offset + 0,
11948                _depth
11949            )?;
11950            Ok(())
11951        }
11952    }
11953
11954    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayStructRequestRequest {
11955        type Borrowed<'a> = &'a mut Self;
11956        fn take_or_borrow<'a>(
11957            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
11958        ) -> Self::Borrowed<'a> {
11959            value
11960        }
11961    }
11962
11963    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayStructRequestRequest {
11964        type Owned = Self;
11965
11966        #[inline(always)]
11967        fn inline_align(_context: fidl::encoding::Context) -> usize {
11968            4
11969        }
11970
11971        #[inline(always)]
11972        fn inline_size(_context: fidl::encoding::Context) -> usize {
11973            8
11974        }
11975    }
11976
11977    unsafe impl
11978        fidl::encoding::Encode<
11979            RunnerCallTwoWayStructRequestRequest,
11980            fidl::encoding::DefaultFuchsiaResourceDialect,
11981        > for &mut RunnerCallTwoWayStructRequestRequest
11982    {
11983        #[inline]
11984        unsafe fn encode(
11985            self,
11986            encoder: &mut fidl::encoding::Encoder<
11987                '_,
11988                fidl::encoding::DefaultFuchsiaResourceDialect,
11989            >,
11990            offset: usize,
11991            _depth: fidl::encoding::Depth,
11992        ) -> fidl::Result<()> {
11993            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
11994            // Delegate to tuple encoding.
11995            fidl::encoding::Encode::<RunnerCallTwoWayStructRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
11996                (
11997                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
11998                    <NonEmptyPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
11999                ),
12000                encoder, offset, _depth
12001            )
12002        }
12003    }
12004    unsafe impl<
12005        T0: fidl::encoding::Encode<
12006                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12007                fidl::encoding::DefaultFuchsiaResourceDialect,
12008            >,
12009        T1: fidl::encoding::Encode<NonEmptyPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12010    >
12011        fidl::encoding::Encode<
12012            RunnerCallTwoWayStructRequestRequest,
12013            fidl::encoding::DefaultFuchsiaResourceDialect,
12014        > for (T0, T1)
12015    {
12016        #[inline]
12017        unsafe fn encode(
12018            self,
12019            encoder: &mut fidl::encoding::Encoder<
12020                '_,
12021                fidl::encoding::DefaultFuchsiaResourceDialect,
12022            >,
12023            offset: usize,
12024            depth: fidl::encoding::Depth,
12025        ) -> fidl::Result<()> {
12026            encoder.debug_check_bounds::<RunnerCallTwoWayStructRequestRequest>(offset);
12027            // Zero out padding regions. There's no need to apply masks
12028            // because the unmasked parts will be overwritten by fields.
12029            // Write the fields.
12030            self.0.encode(encoder, offset + 0, depth)?;
12031            self.1.encode(encoder, offset + 4, depth)?;
12032            Ok(())
12033        }
12034    }
12035
12036    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12037        for RunnerCallTwoWayStructRequestRequest
12038    {
12039        #[inline(always)]
12040        fn new_empty() -> Self {
12041            Self {
12042                target: fidl::new_empty!(
12043                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12044                    fidl::encoding::DefaultFuchsiaResourceDialect
12045                ),
12046                request: fidl::new_empty!(
12047                    NonEmptyPayload,
12048                    fidl::encoding::DefaultFuchsiaResourceDialect
12049                ),
12050            }
12051        }
12052
12053        #[inline]
12054        unsafe fn decode(
12055            &mut self,
12056            decoder: &mut fidl::encoding::Decoder<
12057                '_,
12058                fidl::encoding::DefaultFuchsiaResourceDialect,
12059            >,
12060            offset: usize,
12061            _depth: fidl::encoding::Depth,
12062        ) -> fidl::Result<()> {
12063            decoder.debug_check_bounds::<Self>(offset);
12064            // Verify that padding bytes are zero.
12065            fidl::decode!(
12066                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12067                fidl::encoding::DefaultFuchsiaResourceDialect,
12068                &mut self.target,
12069                decoder,
12070                offset + 0,
12071                _depth
12072            )?;
12073            fidl::decode!(
12074                NonEmptyPayload,
12075                fidl::encoding::DefaultFuchsiaResourceDialect,
12076                &mut self.request,
12077                decoder,
12078                offset + 4,
12079                _depth
12080            )?;
12081            Ok(())
12082        }
12083    }
12084
12085    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTablePayloadRequest {
12086        type Borrowed<'a> = &'a mut Self;
12087        fn take_or_borrow<'a>(
12088            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12089        ) -> Self::Borrowed<'a> {
12090            value
12091        }
12092    }
12093
12094    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTablePayloadRequest {
12095        type Owned = Self;
12096
12097        #[inline(always)]
12098        fn inline_align(_context: fidl::encoding::Context) -> usize {
12099            4
12100        }
12101
12102        #[inline(always)]
12103        fn inline_size(_context: fidl::encoding::Context) -> usize {
12104            4
12105        }
12106    }
12107
12108    unsafe impl
12109        fidl::encoding::Encode<
12110            RunnerCallTwoWayTablePayloadRequest,
12111            fidl::encoding::DefaultFuchsiaResourceDialect,
12112        > for &mut RunnerCallTwoWayTablePayloadRequest
12113    {
12114        #[inline]
12115        unsafe fn encode(
12116            self,
12117            encoder: &mut fidl::encoding::Encoder<
12118                '_,
12119                fidl::encoding::DefaultFuchsiaResourceDialect,
12120            >,
12121            offset: usize,
12122            _depth: fidl::encoding::Depth,
12123        ) -> fidl::Result<()> {
12124            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12125            // Delegate to tuple encoding.
12126            fidl::encoding::Encode::<RunnerCallTwoWayTablePayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12127                (
12128                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12129                ),
12130                encoder, offset, _depth
12131            )
12132        }
12133    }
12134    unsafe impl<
12135        T0: fidl::encoding::Encode<
12136                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12137                fidl::encoding::DefaultFuchsiaResourceDialect,
12138            >,
12139    >
12140        fidl::encoding::Encode<
12141            RunnerCallTwoWayTablePayloadRequest,
12142            fidl::encoding::DefaultFuchsiaResourceDialect,
12143        > for (T0,)
12144    {
12145        #[inline]
12146        unsafe fn encode(
12147            self,
12148            encoder: &mut fidl::encoding::Encoder<
12149                '_,
12150                fidl::encoding::DefaultFuchsiaResourceDialect,
12151            >,
12152            offset: usize,
12153            depth: fidl::encoding::Depth,
12154        ) -> fidl::Result<()> {
12155            encoder.debug_check_bounds::<RunnerCallTwoWayTablePayloadRequest>(offset);
12156            // Zero out padding regions. There's no need to apply masks
12157            // because the unmasked parts will be overwritten by fields.
12158            // Write the fields.
12159            self.0.encode(encoder, offset + 0, depth)?;
12160            Ok(())
12161        }
12162    }
12163
12164    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12165        for RunnerCallTwoWayTablePayloadRequest
12166    {
12167        #[inline(always)]
12168        fn new_empty() -> Self {
12169            Self {
12170                target: fidl::new_empty!(
12171                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12172                    fidl::encoding::DefaultFuchsiaResourceDialect
12173                ),
12174            }
12175        }
12176
12177        #[inline]
12178        unsafe fn decode(
12179            &mut self,
12180            decoder: &mut fidl::encoding::Decoder<
12181                '_,
12182                fidl::encoding::DefaultFuchsiaResourceDialect,
12183            >,
12184            offset: usize,
12185            _depth: fidl::encoding::Depth,
12186        ) -> fidl::Result<()> {
12187            decoder.debug_check_bounds::<Self>(offset);
12188            // Verify that padding bytes are zero.
12189            fidl::decode!(
12190                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12191                fidl::encoding::DefaultFuchsiaResourceDialect,
12192                &mut self.target,
12193                decoder,
12194                offset + 0,
12195                _depth
12196            )?;
12197            Ok(())
12198        }
12199    }
12200
12201    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayTableRequestRequest {
12202        type Borrowed<'a> = &'a mut Self;
12203        fn take_or_borrow<'a>(
12204            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12205        ) -> Self::Borrowed<'a> {
12206            value
12207        }
12208    }
12209
12210    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayTableRequestRequest {
12211        type Owned = Self;
12212
12213        #[inline(always)]
12214        fn inline_align(_context: fidl::encoding::Context) -> usize {
12215            8
12216        }
12217
12218        #[inline(always)]
12219        fn inline_size(_context: fidl::encoding::Context) -> usize {
12220            24
12221        }
12222    }
12223
12224    unsafe impl
12225        fidl::encoding::Encode<
12226            RunnerCallTwoWayTableRequestRequest,
12227            fidl::encoding::DefaultFuchsiaResourceDialect,
12228        > for &mut RunnerCallTwoWayTableRequestRequest
12229    {
12230        #[inline]
12231        unsafe fn encode(
12232            self,
12233            encoder: &mut fidl::encoding::Encoder<
12234                '_,
12235                fidl::encoding::DefaultFuchsiaResourceDialect,
12236            >,
12237            offset: usize,
12238            _depth: fidl::encoding::Depth,
12239        ) -> fidl::Result<()> {
12240            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12241            // Delegate to tuple encoding.
12242            fidl::encoding::Encode::<RunnerCallTwoWayTableRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12243                (
12244                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12245                    <TablePayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12246                ),
12247                encoder, offset, _depth
12248            )
12249        }
12250    }
12251    unsafe impl<
12252        T0: fidl::encoding::Encode<
12253                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12254                fidl::encoding::DefaultFuchsiaResourceDialect,
12255            >,
12256        T1: fidl::encoding::Encode<TablePayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12257    >
12258        fidl::encoding::Encode<
12259            RunnerCallTwoWayTableRequestRequest,
12260            fidl::encoding::DefaultFuchsiaResourceDialect,
12261        > for (T0, T1)
12262    {
12263        #[inline]
12264        unsafe fn encode(
12265            self,
12266            encoder: &mut fidl::encoding::Encoder<
12267                '_,
12268                fidl::encoding::DefaultFuchsiaResourceDialect,
12269            >,
12270            offset: usize,
12271            depth: fidl::encoding::Depth,
12272        ) -> fidl::Result<()> {
12273            encoder.debug_check_bounds::<RunnerCallTwoWayTableRequestRequest>(offset);
12274            // Zero out padding regions. There's no need to apply masks
12275            // because the unmasked parts will be overwritten by fields.
12276            unsafe {
12277                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12278                (ptr as *mut u64).write_unaligned(0);
12279            }
12280            // Write the fields.
12281            self.0.encode(encoder, offset + 0, depth)?;
12282            self.1.encode(encoder, offset + 8, depth)?;
12283            Ok(())
12284        }
12285    }
12286
12287    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12288        for RunnerCallTwoWayTableRequestRequest
12289    {
12290        #[inline(always)]
12291        fn new_empty() -> Self {
12292            Self {
12293                target: fidl::new_empty!(
12294                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12295                    fidl::encoding::DefaultFuchsiaResourceDialect
12296                ),
12297                request: fidl::new_empty!(
12298                    TablePayload,
12299                    fidl::encoding::DefaultFuchsiaResourceDialect
12300                ),
12301            }
12302        }
12303
12304        #[inline]
12305        unsafe fn decode(
12306            &mut self,
12307            decoder: &mut fidl::encoding::Decoder<
12308                '_,
12309                fidl::encoding::DefaultFuchsiaResourceDialect,
12310            >,
12311            offset: usize,
12312            _depth: fidl::encoding::Depth,
12313        ) -> fidl::Result<()> {
12314            decoder.debug_check_bounds::<Self>(offset);
12315            // Verify that padding bytes are zero.
12316            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12317            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12318            let mask = 0xffffffff00000000u64;
12319            let maskedval = padval & mask;
12320            if maskedval != 0 {
12321                return Err(fidl::Error::NonZeroPadding {
12322                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12323                });
12324            }
12325            fidl::decode!(
12326                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12327                fidl::encoding::DefaultFuchsiaResourceDialect,
12328                &mut self.target,
12329                decoder,
12330                offset + 0,
12331                _depth
12332            )?;
12333            fidl::decode!(
12334                TablePayload,
12335                fidl::encoding::DefaultFuchsiaResourceDialect,
12336                &mut self.request,
12337                decoder,
12338                offset + 8,
12339                _depth
12340            )?;
12341            Ok(())
12342        }
12343    }
12344
12345    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12346        type Borrowed<'a> = &'a mut Self;
12347        fn take_or_borrow<'a>(
12348            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12349        ) -> Self::Borrowed<'a> {
12350            value
12351        }
12352    }
12353
12354    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionPayloadRequest {
12355        type Owned = Self;
12356
12357        #[inline(always)]
12358        fn inline_align(_context: fidl::encoding::Context) -> usize {
12359            4
12360        }
12361
12362        #[inline(always)]
12363        fn inline_size(_context: fidl::encoding::Context) -> usize {
12364            4
12365        }
12366    }
12367
12368    unsafe impl
12369        fidl::encoding::Encode<
12370            RunnerCallTwoWayUnionPayloadRequest,
12371            fidl::encoding::DefaultFuchsiaResourceDialect,
12372        > for &mut RunnerCallTwoWayUnionPayloadRequest
12373    {
12374        #[inline]
12375        unsafe fn encode(
12376            self,
12377            encoder: &mut fidl::encoding::Encoder<
12378                '_,
12379                fidl::encoding::DefaultFuchsiaResourceDialect,
12380            >,
12381            offset: usize,
12382            _depth: fidl::encoding::Depth,
12383        ) -> fidl::Result<()> {
12384            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12385            // Delegate to tuple encoding.
12386            fidl::encoding::Encode::<RunnerCallTwoWayUnionPayloadRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12387                (
12388                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12389                ),
12390                encoder, offset, _depth
12391            )
12392        }
12393    }
12394    unsafe impl<
12395        T0: fidl::encoding::Encode<
12396                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12397                fidl::encoding::DefaultFuchsiaResourceDialect,
12398            >,
12399    >
12400        fidl::encoding::Encode<
12401            RunnerCallTwoWayUnionPayloadRequest,
12402            fidl::encoding::DefaultFuchsiaResourceDialect,
12403        > for (T0,)
12404    {
12405        #[inline]
12406        unsafe fn encode(
12407            self,
12408            encoder: &mut fidl::encoding::Encoder<
12409                '_,
12410                fidl::encoding::DefaultFuchsiaResourceDialect,
12411            >,
12412            offset: usize,
12413            depth: fidl::encoding::Depth,
12414        ) -> fidl::Result<()> {
12415            encoder.debug_check_bounds::<RunnerCallTwoWayUnionPayloadRequest>(offset);
12416            // Zero out padding regions. There's no need to apply masks
12417            // because the unmasked parts will be overwritten by fields.
12418            // Write the fields.
12419            self.0.encode(encoder, offset + 0, depth)?;
12420            Ok(())
12421        }
12422    }
12423
12424    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12425        for RunnerCallTwoWayUnionPayloadRequest
12426    {
12427        #[inline(always)]
12428        fn new_empty() -> Self {
12429            Self {
12430                target: fidl::new_empty!(
12431                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12432                    fidl::encoding::DefaultFuchsiaResourceDialect
12433                ),
12434            }
12435        }
12436
12437        #[inline]
12438        unsafe fn decode(
12439            &mut self,
12440            decoder: &mut fidl::encoding::Decoder<
12441                '_,
12442                fidl::encoding::DefaultFuchsiaResourceDialect,
12443            >,
12444            offset: usize,
12445            _depth: fidl::encoding::Depth,
12446        ) -> fidl::Result<()> {
12447            decoder.debug_check_bounds::<Self>(offset);
12448            // Verify that padding bytes are zero.
12449            fidl::decode!(
12450                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12451                fidl::encoding::DefaultFuchsiaResourceDialect,
12452                &mut self.target,
12453                decoder,
12454                offset + 0,
12455                _depth
12456            )?;
12457            Ok(())
12458        }
12459    }
12460
12461    impl fidl::encoding::ResourceTypeMarker for RunnerCallTwoWayUnionRequestRequest {
12462        type Borrowed<'a> = &'a mut Self;
12463        fn take_or_borrow<'a>(
12464            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12465        ) -> Self::Borrowed<'a> {
12466            value
12467        }
12468    }
12469
12470    unsafe impl fidl::encoding::TypeMarker for RunnerCallTwoWayUnionRequestRequest {
12471        type Owned = Self;
12472
12473        #[inline(always)]
12474        fn inline_align(_context: fidl::encoding::Context) -> usize {
12475            8
12476        }
12477
12478        #[inline(always)]
12479        fn inline_size(_context: fidl::encoding::Context) -> usize {
12480            24
12481        }
12482    }
12483
12484    unsafe impl
12485        fidl::encoding::Encode<
12486            RunnerCallTwoWayUnionRequestRequest,
12487            fidl::encoding::DefaultFuchsiaResourceDialect,
12488        > for &mut RunnerCallTwoWayUnionRequestRequest
12489    {
12490        #[inline]
12491        unsafe fn encode(
12492            self,
12493            encoder: &mut fidl::encoding::Encoder<
12494                '_,
12495                fidl::encoding::DefaultFuchsiaResourceDialect,
12496            >,
12497            offset: usize,
12498            _depth: fidl::encoding::Depth,
12499        ) -> fidl::Result<()> {
12500            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12501            // Delegate to tuple encoding.
12502            fidl::encoding::Encode::<RunnerCallTwoWayUnionRequestRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12503                (
12504                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12505                    <UnionPayload as fidl::encoding::ValueTypeMarker>::borrow(&self.request),
12506                ),
12507                encoder, offset, _depth
12508            )
12509        }
12510    }
12511    unsafe impl<
12512        T0: fidl::encoding::Encode<
12513                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12514                fidl::encoding::DefaultFuchsiaResourceDialect,
12515            >,
12516        T1: fidl::encoding::Encode<UnionPayload, fidl::encoding::DefaultFuchsiaResourceDialect>,
12517    >
12518        fidl::encoding::Encode<
12519            RunnerCallTwoWayUnionRequestRequest,
12520            fidl::encoding::DefaultFuchsiaResourceDialect,
12521        > for (T0, T1)
12522    {
12523        #[inline]
12524        unsafe fn encode(
12525            self,
12526            encoder: &mut fidl::encoding::Encoder<
12527                '_,
12528                fidl::encoding::DefaultFuchsiaResourceDialect,
12529            >,
12530            offset: usize,
12531            depth: fidl::encoding::Depth,
12532        ) -> fidl::Result<()> {
12533            encoder.debug_check_bounds::<RunnerCallTwoWayUnionRequestRequest>(offset);
12534            // Zero out padding regions. There's no need to apply masks
12535            // because the unmasked parts will be overwritten by fields.
12536            unsafe {
12537                let ptr = encoder.buf.as_mut_ptr().add(offset).offset(0);
12538                (ptr as *mut u64).write_unaligned(0);
12539            }
12540            // Write the fields.
12541            self.0.encode(encoder, offset + 0, depth)?;
12542            self.1.encode(encoder, offset + 8, depth)?;
12543            Ok(())
12544        }
12545    }
12546
12547    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12548        for RunnerCallTwoWayUnionRequestRequest
12549    {
12550        #[inline(always)]
12551        fn new_empty() -> Self {
12552            Self {
12553                target: fidl::new_empty!(
12554                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12555                    fidl::encoding::DefaultFuchsiaResourceDialect
12556                ),
12557                request: fidl::new_empty!(
12558                    UnionPayload,
12559                    fidl::encoding::DefaultFuchsiaResourceDialect
12560                ),
12561            }
12562        }
12563
12564        #[inline]
12565        unsafe fn decode(
12566            &mut self,
12567            decoder: &mut fidl::encoding::Decoder<
12568                '_,
12569                fidl::encoding::DefaultFuchsiaResourceDialect,
12570            >,
12571            offset: usize,
12572            _depth: fidl::encoding::Depth,
12573        ) -> fidl::Result<()> {
12574            decoder.debug_check_bounds::<Self>(offset);
12575            // Verify that padding bytes are zero.
12576            let ptr = unsafe { decoder.buf.as_ptr().add(offset).offset(0) };
12577            let padval = unsafe { (ptr as *const u64).read_unaligned() };
12578            let mask = 0xffffffff00000000u64;
12579            let maskedval = padval & mask;
12580            if maskedval != 0 {
12581                return Err(fidl::Error::NonZeroPadding {
12582                    padding_start: offset + 0 + ((mask as u64).trailing_zeros() / 8) as usize,
12583                });
12584            }
12585            fidl::decode!(
12586                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12587                fidl::encoding::DefaultFuchsiaResourceDialect,
12588                &mut self.target,
12589                decoder,
12590                offset + 0,
12591                _depth
12592            )?;
12593            fidl::decode!(
12594                UnionPayload,
12595                fidl::encoding::DefaultFuchsiaResourceDialect,
12596                &mut self.request,
12597                decoder,
12598                offset + 8,
12599                _depth
12600            )?;
12601            Ok(())
12602        }
12603    }
12604
12605    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveAjarEventsRequest {
12606        type Borrowed<'a> = &'a mut Self;
12607        fn take_or_borrow<'a>(
12608            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12609        ) -> Self::Borrowed<'a> {
12610            value
12611        }
12612    }
12613
12614    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveAjarEventsRequest {
12615        type Owned = Self;
12616
12617        #[inline(always)]
12618        fn inline_align(_context: fidl::encoding::Context) -> usize {
12619            4
12620        }
12621
12622        #[inline(always)]
12623        fn inline_size(_context: fidl::encoding::Context) -> usize {
12624            8
12625        }
12626    }
12627
12628    unsafe impl
12629        fidl::encoding::Encode<
12630            RunnerReceiveAjarEventsRequest,
12631            fidl::encoding::DefaultFuchsiaResourceDialect,
12632        > for &mut RunnerReceiveAjarEventsRequest
12633    {
12634        #[inline]
12635        unsafe fn encode(
12636            self,
12637            encoder: &mut fidl::encoding::Encoder<
12638                '_,
12639                fidl::encoding::DefaultFuchsiaResourceDialect,
12640            >,
12641            offset: usize,
12642            _depth: fidl::encoding::Depth,
12643        ) -> fidl::Result<()> {
12644            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12645            // Delegate to tuple encoding.
12646            fidl::encoding::Encode::<RunnerReceiveAjarEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12647                (
12648                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12649                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12650                ),
12651                encoder, offset, _depth
12652            )
12653        }
12654    }
12655    unsafe impl<
12656        T0: fidl::encoding::Encode<
12657                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12658                fidl::encoding::DefaultFuchsiaResourceDialect,
12659            >,
12660        T1: fidl::encoding::Encode<
12661                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12662                fidl::encoding::DefaultFuchsiaResourceDialect,
12663            >,
12664    >
12665        fidl::encoding::Encode<
12666            RunnerReceiveAjarEventsRequest,
12667            fidl::encoding::DefaultFuchsiaResourceDialect,
12668        > for (T0, T1)
12669    {
12670        #[inline]
12671        unsafe fn encode(
12672            self,
12673            encoder: &mut fidl::encoding::Encoder<
12674                '_,
12675                fidl::encoding::DefaultFuchsiaResourceDialect,
12676            >,
12677            offset: usize,
12678            depth: fidl::encoding::Depth,
12679        ) -> fidl::Result<()> {
12680            encoder.debug_check_bounds::<RunnerReceiveAjarEventsRequest>(offset);
12681            // Zero out padding regions. There's no need to apply masks
12682            // because the unmasked parts will be overwritten by fields.
12683            // Write the fields.
12684            self.0.encode(encoder, offset + 0, depth)?;
12685            self.1.encode(encoder, offset + 4, depth)?;
12686            Ok(())
12687        }
12688    }
12689
12690    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12691        for RunnerReceiveAjarEventsRequest
12692    {
12693        #[inline(always)]
12694        fn new_empty() -> Self {
12695            Self {
12696                target: fidl::new_empty!(
12697                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12698                    fidl::encoding::DefaultFuchsiaResourceDialect
12699                ),
12700                reporter: fidl::new_empty!(
12701                    fidl::encoding::Endpoint<
12702                        fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>,
12703                    >,
12704                    fidl::encoding::DefaultFuchsiaResourceDialect
12705                ),
12706            }
12707        }
12708
12709        #[inline]
12710        unsafe fn decode(
12711            &mut self,
12712            decoder: &mut fidl::encoding::Decoder<
12713                '_,
12714                fidl::encoding::DefaultFuchsiaResourceDialect,
12715            >,
12716            offset: usize,
12717            _depth: fidl::encoding::Depth,
12718        ) -> fidl::Result<()> {
12719            decoder.debug_check_bounds::<Self>(offset);
12720            // Verify that padding bytes are zero.
12721            fidl::decode!(
12722                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetMarker>>,
12723                fidl::encoding::DefaultFuchsiaResourceDialect,
12724                &mut self.target,
12725                decoder,
12726                offset + 0,
12727                _depth
12728            )?;
12729            fidl::decode!(
12730                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<AjarTargetEventReporterMarker>>,
12731                fidl::encoding::DefaultFuchsiaResourceDialect,
12732                &mut self.reporter,
12733                decoder,
12734                offset + 4,
12735                _depth
12736            )?;
12737            Ok(())
12738        }
12739    }
12740
12741    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveClosedEventsRequest {
12742        type Borrowed<'a> = &'a mut Self;
12743        fn take_or_borrow<'a>(
12744            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12745        ) -> Self::Borrowed<'a> {
12746            value
12747        }
12748    }
12749
12750    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveClosedEventsRequest {
12751        type Owned = Self;
12752
12753        #[inline(always)]
12754        fn inline_align(_context: fidl::encoding::Context) -> usize {
12755            4
12756        }
12757
12758        #[inline(always)]
12759        fn inline_size(_context: fidl::encoding::Context) -> usize {
12760            8
12761        }
12762    }
12763
12764    unsafe impl
12765        fidl::encoding::Encode<
12766            RunnerReceiveClosedEventsRequest,
12767            fidl::encoding::DefaultFuchsiaResourceDialect,
12768        > for &mut RunnerReceiveClosedEventsRequest
12769    {
12770        #[inline]
12771        unsafe fn encode(
12772            self,
12773            encoder: &mut fidl::encoding::Encoder<
12774                '_,
12775                fidl::encoding::DefaultFuchsiaResourceDialect,
12776            >,
12777            offset: usize,
12778            _depth: fidl::encoding::Depth,
12779        ) -> fidl::Result<()> {
12780            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12781            // Delegate to tuple encoding.
12782            fidl::encoding::Encode::<RunnerReceiveClosedEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12783                (
12784                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12785                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12786                ),
12787                encoder, offset, _depth
12788            )
12789        }
12790    }
12791    unsafe impl<
12792        T0: fidl::encoding::Encode<
12793                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12794                fidl::encoding::DefaultFuchsiaResourceDialect,
12795            >,
12796        T1: fidl::encoding::Encode<
12797                fidl::encoding::Endpoint<
12798                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12799                >,
12800                fidl::encoding::DefaultFuchsiaResourceDialect,
12801            >,
12802    >
12803        fidl::encoding::Encode<
12804            RunnerReceiveClosedEventsRequest,
12805            fidl::encoding::DefaultFuchsiaResourceDialect,
12806        > for (T0, T1)
12807    {
12808        #[inline]
12809        unsafe fn encode(
12810            self,
12811            encoder: &mut fidl::encoding::Encoder<
12812                '_,
12813                fidl::encoding::DefaultFuchsiaResourceDialect,
12814            >,
12815            offset: usize,
12816            depth: fidl::encoding::Depth,
12817        ) -> fidl::Result<()> {
12818            encoder.debug_check_bounds::<RunnerReceiveClosedEventsRequest>(offset);
12819            // Zero out padding regions. There's no need to apply masks
12820            // because the unmasked parts will be overwritten by fields.
12821            // Write the fields.
12822            self.0.encode(encoder, offset + 0, depth)?;
12823            self.1.encode(encoder, offset + 4, depth)?;
12824            Ok(())
12825        }
12826    }
12827
12828    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12829        for RunnerReceiveClosedEventsRequest
12830    {
12831        #[inline(always)]
12832        fn new_empty() -> Self {
12833            Self {
12834                target: fidl::new_empty!(
12835                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12836                    fidl::encoding::DefaultFuchsiaResourceDialect
12837                ),
12838                reporter: fidl::new_empty!(
12839                    fidl::encoding::Endpoint<
12840                        fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12841                    >,
12842                    fidl::encoding::DefaultFuchsiaResourceDialect
12843                ),
12844            }
12845        }
12846
12847        #[inline]
12848        unsafe fn decode(
12849            &mut self,
12850            decoder: &mut fidl::encoding::Decoder<
12851                '_,
12852                fidl::encoding::DefaultFuchsiaResourceDialect,
12853            >,
12854            offset: usize,
12855            _depth: fidl::encoding::Depth,
12856        ) -> fidl::Result<()> {
12857            decoder.debug_check_bounds::<Self>(offset);
12858            // Verify that padding bytes are zero.
12859            fidl::decode!(
12860                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<ClosedTargetMarker>>,
12861                fidl::encoding::DefaultFuchsiaResourceDialect,
12862                &mut self.target,
12863                decoder,
12864                offset + 0,
12865                _depth
12866            )?;
12867            fidl::decode!(
12868                fidl::encoding::Endpoint<
12869                    fidl::endpoints::ClientEnd<ClosedTargetEventReporterMarker>,
12870                >,
12871                fidl::encoding::DefaultFuchsiaResourceDialect,
12872                &mut self.reporter,
12873                decoder,
12874                offset + 4,
12875                _depth
12876            )?;
12877            Ok(())
12878        }
12879    }
12880
12881    impl fidl::encoding::ResourceTypeMarker for RunnerReceiveOpenEventsRequest {
12882        type Borrowed<'a> = &'a mut Self;
12883        fn take_or_borrow<'a>(
12884            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
12885        ) -> Self::Borrowed<'a> {
12886            value
12887        }
12888    }
12889
12890    unsafe impl fidl::encoding::TypeMarker for RunnerReceiveOpenEventsRequest {
12891        type Owned = Self;
12892
12893        #[inline(always)]
12894        fn inline_align(_context: fidl::encoding::Context) -> usize {
12895            4
12896        }
12897
12898        #[inline(always)]
12899        fn inline_size(_context: fidl::encoding::Context) -> usize {
12900            8
12901        }
12902    }
12903
12904    unsafe impl
12905        fidl::encoding::Encode<
12906            RunnerReceiveOpenEventsRequest,
12907            fidl::encoding::DefaultFuchsiaResourceDialect,
12908        > for &mut RunnerReceiveOpenEventsRequest
12909    {
12910        #[inline]
12911        unsafe fn encode(
12912            self,
12913            encoder: &mut fidl::encoding::Encoder<
12914                '_,
12915                fidl::encoding::DefaultFuchsiaResourceDialect,
12916            >,
12917            offset: usize,
12918            _depth: fidl::encoding::Depth,
12919        ) -> fidl::Result<()> {
12920            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
12921            // Delegate to tuple encoding.
12922            fidl::encoding::Encode::<RunnerReceiveOpenEventsRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
12923                (
12924                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.target),
12925                    <fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reporter),
12926                ),
12927                encoder, offset, _depth
12928            )
12929        }
12930    }
12931    unsafe impl<
12932        T0: fidl::encoding::Encode<
12933                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12934                fidl::encoding::DefaultFuchsiaResourceDialect,
12935            >,
12936        T1: fidl::encoding::Encode<
12937                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
12938                fidl::encoding::DefaultFuchsiaResourceDialect,
12939            >,
12940    >
12941        fidl::encoding::Encode<
12942            RunnerReceiveOpenEventsRequest,
12943            fidl::encoding::DefaultFuchsiaResourceDialect,
12944        > for (T0, T1)
12945    {
12946        #[inline]
12947        unsafe fn encode(
12948            self,
12949            encoder: &mut fidl::encoding::Encoder<
12950                '_,
12951                fidl::encoding::DefaultFuchsiaResourceDialect,
12952            >,
12953            offset: usize,
12954            depth: fidl::encoding::Depth,
12955        ) -> fidl::Result<()> {
12956            encoder.debug_check_bounds::<RunnerReceiveOpenEventsRequest>(offset);
12957            // Zero out padding regions. There's no need to apply masks
12958            // because the unmasked parts will be overwritten by fields.
12959            // Write the fields.
12960            self.0.encode(encoder, offset + 0, depth)?;
12961            self.1.encode(encoder, offset + 4, depth)?;
12962            Ok(())
12963        }
12964    }
12965
12966    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
12967        for RunnerReceiveOpenEventsRequest
12968    {
12969        #[inline(always)]
12970        fn new_empty() -> Self {
12971            Self {
12972                target: fidl::new_empty!(
12973                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12974                    fidl::encoding::DefaultFuchsiaResourceDialect
12975                ),
12976                reporter: fidl::new_empty!(
12977                    fidl::encoding::Endpoint<
12978                        fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>,
12979                    >,
12980                    fidl::encoding::DefaultFuchsiaResourceDialect
12981                ),
12982            }
12983        }
12984
12985        #[inline]
12986        unsafe fn decode(
12987            &mut self,
12988            decoder: &mut fidl::encoding::Decoder<
12989                '_,
12990                fidl::encoding::DefaultFuchsiaResourceDialect,
12991            >,
12992            offset: usize,
12993            _depth: fidl::encoding::Depth,
12994        ) -> fidl::Result<()> {
12995            decoder.debug_check_bounds::<Self>(offset);
12996            // Verify that padding bytes are zero.
12997            fidl::decode!(
12998                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetMarker>>,
12999                fidl::encoding::DefaultFuchsiaResourceDialect,
13000                &mut self.target,
13001                decoder,
13002                offset + 0,
13003                _depth
13004            )?;
13005            fidl::decode!(
13006                fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<OpenTargetEventReporterMarker>>,
13007                fidl::encoding::DefaultFuchsiaResourceDialect,
13008                &mut self.reporter,
13009                decoder,
13010                offset + 4,
13011                _depth
13012            )?;
13013            Ok(())
13014        }
13015    }
13016}