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