fidl_fuchsia_wlan_mlme/
fidl_fuchsia_wlan_mlme.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_fuchsia_wlan_mlme_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct ConnectorConnectRequest {
16    pub request: fidl::endpoints::ServerEnd<MlmeMarker>,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect> for ConnectorConnectRequest {}
20
21#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
22pub struct ConnectorMarker;
23
24impl fidl::endpoints::ProtocolMarker for ConnectorMarker {
25    type Proxy = ConnectorProxy;
26    type RequestStream = ConnectorRequestStream;
27    #[cfg(target_os = "fuchsia")]
28    type SynchronousProxy = ConnectorSynchronousProxy;
29
30    const DEBUG_NAME: &'static str = "(anonymous) Connector";
31}
32
33pub trait ConnectorProxyInterface: Send + Sync {
34    fn r#connect(&self, request: fidl::endpoints::ServerEnd<MlmeMarker>)
35        -> Result<(), fidl::Error>;
36}
37#[derive(Debug)]
38#[cfg(target_os = "fuchsia")]
39pub struct ConnectorSynchronousProxy {
40    client: fidl::client::sync::Client,
41}
42
43#[cfg(target_os = "fuchsia")]
44impl fidl::endpoints::SynchronousProxy for ConnectorSynchronousProxy {
45    type Proxy = ConnectorProxy;
46    type Protocol = ConnectorMarker;
47
48    fn from_channel(inner: fidl::Channel) -> Self {
49        Self::new(inner)
50    }
51
52    fn into_channel(self) -> fidl::Channel {
53        self.client.into_channel()
54    }
55
56    fn as_channel(&self) -> &fidl::Channel {
57        self.client.as_channel()
58    }
59}
60
61#[cfg(target_os = "fuchsia")]
62impl ConnectorSynchronousProxy {
63    pub fn new(channel: fidl::Channel) -> Self {
64        let protocol_name = <ConnectorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
65        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
66    }
67
68    pub fn into_channel(self) -> fidl::Channel {
69        self.client.into_channel()
70    }
71
72    /// Waits until an event arrives and returns it. It is safe for other
73    /// threads to make concurrent requests while waiting for an event.
74    pub fn wait_for_event(
75        &self,
76        deadline: zx::MonotonicInstant,
77    ) -> Result<ConnectorEvent, fidl::Error> {
78        ConnectorEvent::decode(self.client.wait_for_event(deadline)?)
79    }
80
81    pub fn r#connect(
82        &self,
83        mut request: fidl::endpoints::ServerEnd<MlmeMarker>,
84    ) -> Result<(), fidl::Error> {
85        self.client.send::<ConnectorConnectRequest>(
86            (request,),
87            0x42131859717af962,
88            fidl::encoding::DynamicFlags::empty(),
89        )
90    }
91}
92
93#[derive(Debug, Clone)]
94pub struct ConnectorProxy {
95    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
96}
97
98impl fidl::endpoints::Proxy for ConnectorProxy {
99    type Protocol = ConnectorMarker;
100
101    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
102        Self::new(inner)
103    }
104
105    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
106        self.client.into_channel().map_err(|client| Self { client })
107    }
108
109    fn as_channel(&self) -> &::fidl::AsyncChannel {
110        self.client.as_channel()
111    }
112}
113
114impl ConnectorProxy {
115    /// Create a new Proxy for fuchsia.wlan.mlme/Connector.
116    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
117        let protocol_name = <ConnectorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
118        Self { client: fidl::client::Client::new(channel, protocol_name) }
119    }
120
121    /// Get a Stream of events from the remote end of the protocol.
122    ///
123    /// # Panics
124    ///
125    /// Panics if the event stream was already taken.
126    pub fn take_event_stream(&self) -> ConnectorEventStream {
127        ConnectorEventStream { event_receiver: self.client.take_event_receiver() }
128    }
129
130    pub fn r#connect(
131        &self,
132        mut request: fidl::endpoints::ServerEnd<MlmeMarker>,
133    ) -> Result<(), fidl::Error> {
134        ConnectorProxyInterface::r#connect(self, request)
135    }
136}
137
138impl ConnectorProxyInterface for ConnectorProxy {
139    fn r#connect(
140        &self,
141        mut request: fidl::endpoints::ServerEnd<MlmeMarker>,
142    ) -> Result<(), fidl::Error> {
143        self.client.send::<ConnectorConnectRequest>(
144            (request,),
145            0x42131859717af962,
146            fidl::encoding::DynamicFlags::empty(),
147        )
148    }
149}
150
151pub struct ConnectorEventStream {
152    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
153}
154
155impl std::marker::Unpin for ConnectorEventStream {}
156
157impl futures::stream::FusedStream for ConnectorEventStream {
158    fn is_terminated(&self) -> bool {
159        self.event_receiver.is_terminated()
160    }
161}
162
163impl futures::Stream for ConnectorEventStream {
164    type Item = Result<ConnectorEvent, fidl::Error>;
165
166    fn poll_next(
167        mut self: std::pin::Pin<&mut Self>,
168        cx: &mut std::task::Context<'_>,
169    ) -> std::task::Poll<Option<Self::Item>> {
170        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
171            &mut self.event_receiver,
172            cx
173        )?) {
174            Some(buf) => std::task::Poll::Ready(Some(ConnectorEvent::decode(buf))),
175            None => std::task::Poll::Ready(None),
176        }
177    }
178}
179
180#[derive(Debug)]
181pub enum ConnectorEvent {}
182
183impl ConnectorEvent {
184    /// Decodes a message buffer as a [`ConnectorEvent`].
185    fn decode(
186        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
187    ) -> Result<ConnectorEvent, fidl::Error> {
188        let (bytes, _handles) = buf.split_mut();
189        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
190        debug_assert_eq!(tx_header.tx_id, 0);
191        match tx_header.ordinal {
192            _ => Err(fidl::Error::UnknownOrdinal {
193                ordinal: tx_header.ordinal,
194                protocol_name: <ConnectorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
195            }),
196        }
197    }
198}
199
200/// A Stream of incoming requests for fuchsia.wlan.mlme/Connector.
201pub struct ConnectorRequestStream {
202    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
203    is_terminated: bool,
204}
205
206impl std::marker::Unpin for ConnectorRequestStream {}
207
208impl futures::stream::FusedStream for ConnectorRequestStream {
209    fn is_terminated(&self) -> bool {
210        self.is_terminated
211    }
212}
213
214impl fidl::endpoints::RequestStream for ConnectorRequestStream {
215    type Protocol = ConnectorMarker;
216    type ControlHandle = ConnectorControlHandle;
217
218    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
219        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
220    }
221
222    fn control_handle(&self) -> Self::ControlHandle {
223        ConnectorControlHandle { inner: self.inner.clone() }
224    }
225
226    fn into_inner(
227        self,
228    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
229    {
230        (self.inner, self.is_terminated)
231    }
232
233    fn from_inner(
234        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
235        is_terminated: bool,
236    ) -> Self {
237        Self { inner, is_terminated }
238    }
239}
240
241impl futures::Stream for ConnectorRequestStream {
242    type Item = Result<ConnectorRequest, fidl::Error>;
243
244    fn poll_next(
245        mut self: std::pin::Pin<&mut Self>,
246        cx: &mut std::task::Context<'_>,
247    ) -> std::task::Poll<Option<Self::Item>> {
248        let this = &mut *self;
249        if this.inner.check_shutdown(cx) {
250            this.is_terminated = true;
251            return std::task::Poll::Ready(None);
252        }
253        if this.is_terminated {
254            panic!("polled ConnectorRequestStream after completion");
255        }
256        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
257            |bytes, handles| {
258                match this.inner.channel().read_etc(cx, bytes, handles) {
259                    std::task::Poll::Ready(Ok(())) => {}
260                    std::task::Poll::Pending => return std::task::Poll::Pending,
261                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
262                        this.is_terminated = true;
263                        return std::task::Poll::Ready(None);
264                    }
265                    std::task::Poll::Ready(Err(e)) => {
266                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
267                            e.into(),
268                        ))))
269                    }
270                }
271
272                // A message has been received from the channel
273                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
274
275                std::task::Poll::Ready(Some(match header.ordinal {
276                    0x42131859717af962 => {
277                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
278                        let mut req = fidl::new_empty!(
279                            ConnectorConnectRequest,
280                            fidl::encoding::DefaultFuchsiaResourceDialect
281                        );
282                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ConnectorConnectRequest>(&header, _body_bytes, handles, &mut req)?;
283                        let control_handle = ConnectorControlHandle { inner: this.inner.clone() };
284                        Ok(ConnectorRequest::Connect { request: req.request, control_handle })
285                    }
286                    _ => Err(fidl::Error::UnknownOrdinal {
287                        ordinal: header.ordinal,
288                        protocol_name:
289                            <ConnectorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
290                    }),
291                }))
292            },
293        )
294    }
295}
296
297/// This protocol is used to connect to the interface's underlying MLME.
298#[derive(Debug)]
299pub enum ConnectorRequest {
300    Connect {
301        request: fidl::endpoints::ServerEnd<MlmeMarker>,
302        control_handle: ConnectorControlHandle,
303    },
304}
305
306impl ConnectorRequest {
307    #[allow(irrefutable_let_patterns)]
308    pub fn into_connect(
309        self,
310    ) -> Option<(fidl::endpoints::ServerEnd<MlmeMarker>, ConnectorControlHandle)> {
311        if let ConnectorRequest::Connect { request, control_handle } = self {
312            Some((request, control_handle))
313        } else {
314            None
315        }
316    }
317
318    /// Name of the method defined in FIDL
319    pub fn method_name(&self) -> &'static str {
320        match *self {
321            ConnectorRequest::Connect { .. } => "connect",
322        }
323    }
324}
325
326#[derive(Debug, Clone)]
327pub struct ConnectorControlHandle {
328    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
329}
330
331impl fidl::endpoints::ControlHandle for ConnectorControlHandle {
332    fn shutdown(&self) {
333        self.inner.shutdown()
334    }
335    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
336        self.inner.shutdown_with_epitaph(status)
337    }
338
339    fn is_closed(&self) -> bool {
340        self.inner.channel().is_closed()
341    }
342    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
343        self.inner.channel().on_closed()
344    }
345
346    #[cfg(target_os = "fuchsia")]
347    fn signal_peer(
348        &self,
349        clear_mask: zx::Signals,
350        set_mask: zx::Signals,
351    ) -> Result<(), zx_status::Status> {
352        use fidl::Peered;
353        self.inner.channel().signal_peer(clear_mask, set_mask)
354    }
355}
356
357impl ConnectorControlHandle {}
358
359#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
360pub struct MlmeMarker;
361
362impl fidl::endpoints::ProtocolMarker for MlmeMarker {
363    type Proxy = MlmeProxy;
364    type RequestStream = MlmeRequestStream;
365    #[cfg(target_os = "fuchsia")]
366    type SynchronousProxy = MlmeSynchronousProxy;
367
368    const DEBUG_NAME: &'static str = "(anonymous) Mlme";
369}
370pub type MlmeQueryTelemetrySupportResult = Result<fidl_fuchsia_wlan_stats::TelemetrySupport, i32>;
371
372pub trait MlmeProxyInterface: Send + Sync {
373    fn r#start_scan(&self, req: &ScanRequest) -> Result<(), fidl::Error>;
374    fn r#connect_req(&self, req: &ConnectRequest) -> Result<(), fidl::Error>;
375    fn r#reconnect_req(&self, req: &ReconnectRequest) -> Result<(), fidl::Error>;
376    fn r#roam_req(&self, req: &RoamRequest) -> Result<(), fidl::Error>;
377    fn r#authenticate_resp(&self, resp: &AuthenticateResponse) -> Result<(), fidl::Error>;
378    fn r#deauthenticate_req(&self, req: &DeauthenticateRequest) -> Result<(), fidl::Error>;
379    fn r#associate_resp(&self, resp: &AssociateResponse) -> Result<(), fidl::Error>;
380    fn r#disassociate_req(&self, req: &DisassociateRequest) -> Result<(), fidl::Error>;
381    fn r#reset_req(&self, req: &ResetRequest) -> Result<(), fidl::Error>;
382    fn r#start_req(&self, req: &StartRequest) -> Result<(), fidl::Error>;
383    fn r#stop_req(&self, req: &StopRequest) -> Result<(), fidl::Error>;
384    fn r#set_keys_req(&self, req: &SetKeysRequest) -> Result<(), fidl::Error>;
385    fn r#delete_keys_req(&self, req: &DeleteKeysRequest) -> Result<(), fidl::Error>;
386    fn r#eapol_req(&self, req: &EapolRequest) -> Result<(), fidl::Error>;
387    fn r#set_controlled_port(&self, req: &SetControlledPortRequest) -> Result<(), fidl::Error>;
388    type QueryDeviceInfoResponseFut: std::future::Future<Output = Result<DeviceInfo, fidl::Error>>
389        + Send;
390    fn r#query_device_info(&self) -> Self::QueryDeviceInfoResponseFut;
391    type QueryDiscoverySupportResponseFut: std::future::Future<
392            Output = Result<fidl_fuchsia_wlan_common::DiscoverySupport, fidl::Error>,
393        > + Send;
394    fn r#query_discovery_support(&self) -> Self::QueryDiscoverySupportResponseFut;
395    type QueryMacSublayerSupportResponseFut: std::future::Future<
396            Output = Result<fidl_fuchsia_wlan_common::MacSublayerSupport, fidl::Error>,
397        > + Send;
398    fn r#query_mac_sublayer_support(&self) -> Self::QueryMacSublayerSupportResponseFut;
399    type QuerySecuritySupportResponseFut: std::future::Future<Output = Result<fidl_fuchsia_wlan_common::SecuritySupport, fidl::Error>>
400        + Send;
401    fn r#query_security_support(&self) -> Self::QuerySecuritySupportResponseFut;
402    type QuerySpectrumManagementSupportResponseFut: std::future::Future<
403            Output = Result<fidl_fuchsia_wlan_common::SpectrumManagementSupport, fidl::Error>,
404        > + Send;
405    fn r#query_spectrum_management_support(
406        &self,
407    ) -> Self::QuerySpectrumManagementSupportResponseFut;
408    type QueryTelemetrySupportResponseFut: std::future::Future<Output = Result<MlmeQueryTelemetrySupportResult, fidl::Error>>
409        + Send;
410    fn r#query_telemetry_support(&self) -> Self::QueryTelemetrySupportResponseFut;
411    type GetIfaceStatsResponseFut: std::future::Future<Output = Result<GetIfaceStatsResponse, fidl::Error>>
412        + Send;
413    fn r#get_iface_stats(&self) -> Self::GetIfaceStatsResponseFut;
414    type GetIfaceHistogramStatsResponseFut: std::future::Future<Output = Result<GetIfaceHistogramStatsResponse, fidl::Error>>
415        + Send;
416    fn r#get_iface_histogram_stats(&self) -> Self::GetIfaceHistogramStatsResponseFut;
417    type ListMinstrelPeersResponseFut: std::future::Future<Output = Result<MinstrelListResponse, fidl::Error>>
418        + Send;
419    fn r#list_minstrel_peers(&self) -> Self::ListMinstrelPeersResponseFut;
420    type GetMinstrelStatsResponseFut: std::future::Future<Output = Result<MinstrelStatsResponse, fidl::Error>>
421        + Send;
422    fn r#get_minstrel_stats(&self, req: &MinstrelStatsRequest)
423        -> Self::GetMinstrelStatsResponseFut;
424    type StartCaptureFramesResponseFut: std::future::Future<Output = Result<StartCaptureFramesResponse, fidl::Error>>
425        + Send;
426    fn r#start_capture_frames(
427        &self,
428        req: &StartCaptureFramesRequest,
429    ) -> Self::StartCaptureFramesResponseFut;
430    fn r#stop_capture_frames(&self) -> Result<(), fidl::Error>;
431    fn r#sae_handshake_resp(&self, resp: &SaeHandshakeResponse) -> Result<(), fidl::Error>;
432    fn r#sae_frame_tx(&self, frame: &SaeFrame) -> Result<(), fidl::Error>;
433    fn r#wmm_status_req(&self) -> Result<(), fidl::Error>;
434    fn r#finalize_association_req(
435        &self,
436        negotiated_capabilities: &NegotiatedCapabilities,
437    ) -> Result<(), fidl::Error>;
438}
439#[derive(Debug)]
440#[cfg(target_os = "fuchsia")]
441pub struct MlmeSynchronousProxy {
442    client: fidl::client::sync::Client,
443}
444
445#[cfg(target_os = "fuchsia")]
446impl fidl::endpoints::SynchronousProxy for MlmeSynchronousProxy {
447    type Proxy = MlmeProxy;
448    type Protocol = MlmeMarker;
449
450    fn from_channel(inner: fidl::Channel) -> Self {
451        Self::new(inner)
452    }
453
454    fn into_channel(self) -> fidl::Channel {
455        self.client.into_channel()
456    }
457
458    fn as_channel(&self) -> &fidl::Channel {
459        self.client.as_channel()
460    }
461}
462
463#[cfg(target_os = "fuchsia")]
464impl MlmeSynchronousProxy {
465    pub fn new(channel: fidl::Channel) -> Self {
466        let protocol_name = <MlmeMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
467        Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
468    }
469
470    pub fn into_channel(self) -> fidl::Channel {
471        self.client.into_channel()
472    }
473
474    /// Waits until an event arrives and returns it. It is safe for other
475    /// threads to make concurrent requests while waiting for an event.
476    pub fn wait_for_event(&self, deadline: zx::MonotonicInstant) -> Result<MlmeEvent, fidl::Error> {
477        MlmeEvent::decode(self.client.wait_for_event(deadline)?)
478    }
479
480    pub fn r#start_scan(&self, mut req: &ScanRequest) -> Result<(), fidl::Error> {
481        self.client.send::<MlmeStartScanRequest>(
482            (req,),
483            0x342cc5ec6a957479,
484            fidl::encoding::DynamicFlags::empty(),
485        )
486    }
487
488    pub fn r#connect_req(&self, mut req: &ConnectRequest) -> Result<(), fidl::Error> {
489        self.client.send::<MlmeConnectReqRequest>(
490            (req,),
491            0x31153dc85f8f64c,
492            fidl::encoding::DynamicFlags::empty(),
493        )
494    }
495
496    pub fn r#reconnect_req(&self, mut req: &ReconnectRequest) -> Result<(), fidl::Error> {
497        self.client.send::<MlmeReconnectReqRequest>(
498            (req,),
499            0x74e0f1bd758b6b78,
500            fidl::encoding::DynamicFlags::empty(),
501        )
502    }
503
504    /// Initiate a roam attempt (SME-initiated).
505    pub fn r#roam_req(&self, mut req: &RoamRequest) -> Result<(), fidl::Error> {
506        self.client.send::<MlmeRoamReqRequest>(
507            (req,),
508            0x3ba163eadf7dba45,
509            fidl::encoding::DynamicFlags::empty(),
510        )
511    }
512
513    pub fn r#authenticate_resp(&self, mut resp: &AuthenticateResponse) -> Result<(), fidl::Error> {
514        self.client.send::<MlmeAuthenticateRespRequest>(
515            (resp,),
516            0x26108aade2fdd2f4,
517            fidl::encoding::DynamicFlags::empty(),
518        )
519    }
520
521    pub fn r#deauthenticate_req(&self, mut req: &DeauthenticateRequest) -> Result<(), fidl::Error> {
522        self.client.send::<MlmeDeauthenticateReqRequest>(
523            (req,),
524            0x228983b200de5d12,
525            fidl::encoding::DynamicFlags::empty(),
526        )
527    }
528
529    pub fn r#associate_resp(&self, mut resp: &AssociateResponse) -> Result<(), fidl::Error> {
530        self.client.send::<MlmeAssociateRespRequest>(
531            (resp,),
532            0x70244dbd652ed6d9,
533            fidl::encoding::DynamicFlags::empty(),
534        )
535    }
536
537    pub fn r#disassociate_req(&self, mut req: &DisassociateRequest) -> Result<(), fidl::Error> {
538        self.client.send::<MlmeDisassociateReqRequest>(
539            (req,),
540            0x5765807f1387d764,
541            fidl::encoding::DynamicFlags::empty(),
542        )
543    }
544
545    pub fn r#reset_req(&self, mut req: &ResetRequest) -> Result<(), fidl::Error> {
546        self.client.send::<MlmeResetReqRequest>(
547            (req,),
548            0x780b98c58a286b9f,
549            fidl::encoding::DynamicFlags::empty(),
550        )
551    }
552
553    pub fn r#start_req(&self, mut req: &StartRequest) -> Result<(), fidl::Error> {
554        self.client.send::<MlmeStartReqRequest>(
555            (req,),
556            0x5d95885f8053654,
557            fidl::encoding::DynamicFlags::empty(),
558        )
559    }
560
561    pub fn r#stop_req(&self, mut req: &StopRequest) -> Result<(), fidl::Error> {
562        self.client.send::<MlmeStopReqRequest>(
563            (req,),
564            0x27b9a2ab04a2c79f,
565            fidl::encoding::DynamicFlags::empty(),
566        )
567    }
568
569    pub fn r#set_keys_req(&self, mut req: &SetKeysRequest) -> Result<(), fidl::Error> {
570        self.client.send::<MlmeSetKeysReqRequest>(
571            (req,),
572            0x6b30a07fd3a11a79,
573            fidl::encoding::DynamicFlags::empty(),
574        )
575    }
576
577    pub fn r#delete_keys_req(&self, mut req: &DeleteKeysRequest) -> Result<(), fidl::Error> {
578        self.client.send::<MlmeDeleteKeysReqRequest>(
579            (req,),
580            0x1e3524d20d190c8f,
581            fidl::encoding::DynamicFlags::empty(),
582        )
583    }
584
585    pub fn r#eapol_req(&self, mut req: &EapolRequest) -> Result<(), fidl::Error> {
586        self.client.send::<MlmeEapolReqRequest>(
587            (req,),
588            0xc3c096924704d4,
589            fidl::encoding::DynamicFlags::empty(),
590        )
591    }
592
593    pub fn r#set_controlled_port(
594        &self,
595        mut req: &SetControlledPortRequest,
596    ) -> Result<(), fidl::Error> {
597        self.client.send::<MlmeSetControlledPortRequest>(
598            (req,),
599            0x4e47065668890c8d,
600            fidl::encoding::DynamicFlags::empty(),
601        )
602    }
603
604    pub fn r#query_device_info(
605        &self,
606        ___deadline: zx::MonotonicInstant,
607    ) -> Result<DeviceInfo, fidl::Error> {
608        let _response =
609            self.client.send_query::<fidl::encoding::EmptyPayload, MlmeQueryDeviceInfoResponse>(
610                (),
611                0x6ee3e7f63f2b7bc0,
612                fidl::encoding::DynamicFlags::empty(),
613                ___deadline,
614            )?;
615        Ok(_response.info)
616    }
617
618    pub fn r#query_discovery_support(
619        &self,
620        ___deadline: zx::MonotonicInstant,
621    ) -> Result<fidl_fuchsia_wlan_common::DiscoverySupport, fidl::Error> {
622        let _response = self
623            .client
624            .send_query::<fidl::encoding::EmptyPayload, MlmeQueryDiscoverySupportResponse>(
625                (),
626                0x4ac57b8eee721a2,
627                fidl::encoding::DynamicFlags::empty(),
628                ___deadline,
629            )?;
630        Ok(_response.resp)
631    }
632
633    pub fn r#query_mac_sublayer_support(
634        &self,
635        ___deadline: zx::MonotonicInstant,
636    ) -> Result<fidl_fuchsia_wlan_common::MacSublayerSupport, fidl::Error> {
637        let _response = self
638            .client
639            .send_query::<fidl::encoding::EmptyPayload, MlmeQueryMacSublayerSupportResponse>(
640                (),
641                0x70d23f3b08382854,
642                fidl::encoding::DynamicFlags::empty(),
643                ___deadline,
644            )?;
645        Ok(_response.resp)
646    }
647
648    pub fn r#query_security_support(
649        &self,
650        ___deadline: zx::MonotonicInstant,
651    ) -> Result<fidl_fuchsia_wlan_common::SecuritySupport, fidl::Error> {
652        let _response = self
653            .client
654            .send_query::<fidl::encoding::EmptyPayload, MlmeQuerySecuritySupportResponse>(
655                (),
656                0x2512eb3424620151,
657                fidl::encoding::DynamicFlags::empty(),
658                ___deadline,
659            )?;
660        Ok(_response.resp)
661    }
662
663    pub fn r#query_spectrum_management_support(
664        &self,
665        ___deadline: zx::MonotonicInstant,
666    ) -> Result<fidl_fuchsia_wlan_common::SpectrumManagementSupport, fidl::Error> {
667        let _response = self
668            .client
669            .send_query::<fidl::encoding::EmptyPayload, MlmeQuerySpectrumManagementSupportResponse>(
670                (),
671                0x28ed024e9d883010,
672                fidl::encoding::DynamicFlags::empty(),
673                ___deadline,
674            )?;
675        Ok(_response.resp)
676    }
677
678    pub fn r#query_telemetry_support(
679        &self,
680        ___deadline: zx::MonotonicInstant,
681    ) -> Result<MlmeQueryTelemetrySupportResult, fidl::Error> {
682        let _response = self.client.send_query::<
683            fidl::encoding::EmptyPayload,
684            fidl::encoding::ResultType<MlmeQueryTelemetrySupportResponse, i32>,
685        >(
686            (),
687            0x1598879b70332c99,
688            fidl::encoding::DynamicFlags::empty(),
689            ___deadline,
690        )?;
691        Ok(_response.map(|x| x.resp))
692    }
693
694    pub fn r#get_iface_stats(
695        &self,
696        ___deadline: zx::MonotonicInstant,
697    ) -> Result<GetIfaceStatsResponse, fidl::Error> {
698        let _response =
699            self.client.send_query::<fidl::encoding::EmptyPayload, MlmeGetIfaceStatsResponse>(
700                (),
701                0xede1a8342d1b211,
702                fidl::encoding::DynamicFlags::empty(),
703                ___deadline,
704            )?;
705        Ok(_response.resp)
706    }
707
708    pub fn r#get_iface_histogram_stats(
709        &self,
710        ___deadline: zx::MonotonicInstant,
711    ) -> Result<GetIfaceHistogramStatsResponse, fidl::Error> {
712        let _response = self
713            .client
714            .send_query::<fidl::encoding::EmptyPayload, MlmeGetIfaceHistogramStatsResponse>(
715                (),
716                0x1979c9d3449f8675,
717                fidl::encoding::DynamicFlags::empty(),
718                ___deadline,
719            )?;
720        Ok(_response.resp)
721    }
722
723    pub fn r#list_minstrel_peers(
724        &self,
725        ___deadline: zx::MonotonicInstant,
726    ) -> Result<MinstrelListResponse, fidl::Error> {
727        let _response =
728            self.client.send_query::<fidl::encoding::EmptyPayload, MlmeListMinstrelPeersResponse>(
729                (),
730                0x4ac5d1e66fe1ffd5,
731                fidl::encoding::DynamicFlags::empty(),
732                ___deadline,
733            )?;
734        Ok(_response.resp)
735    }
736
737    pub fn r#get_minstrel_stats(
738        &self,
739        mut req: &MinstrelStatsRequest,
740        ___deadline: zx::MonotonicInstant,
741    ) -> Result<MinstrelStatsResponse, fidl::Error> {
742        let _response =
743            self.client.send_query::<MlmeGetMinstrelStatsRequest, MlmeGetMinstrelStatsResponse>(
744                (req,),
745                0x2f688b1245323f4b,
746                fidl::encoding::DynamicFlags::empty(),
747                ___deadline,
748            )?;
749        Ok(_response.resp)
750    }
751
752    pub fn r#start_capture_frames(
753        &self,
754        mut req: &StartCaptureFramesRequest,
755        ___deadline: zx::MonotonicInstant,
756    ) -> Result<StartCaptureFramesResponse, fidl::Error> {
757        let _response = self
758            .client
759            .send_query::<MlmeStartCaptureFramesRequest, MlmeStartCaptureFramesResponse>(
760                (req,),
761                0x23b369ed5749ee69,
762                fidl::encoding::DynamicFlags::empty(),
763                ___deadline,
764            )?;
765        Ok(_response.resp)
766    }
767
768    pub fn r#stop_capture_frames(&self) -> Result<(), fidl::Error> {
769        self.client.send::<fidl::encoding::EmptyPayload>(
770            (),
771            0x2f1aebbc68bf7c54,
772            fidl::encoding::DynamicFlags::empty(),
773        )
774    }
775
776    /// Notifies that SAE authentication is completed.
777    pub fn r#sae_handshake_resp(&self, mut resp: &SaeHandshakeResponse) -> Result<(), fidl::Error> {
778        self.client.send::<MlmeSaeHandshakeRespRequest>(
779            (resp,),
780            0x28477bd2f7a5ab0c,
781            fidl::encoding::DynamicFlags::empty(),
782        )
783    }
784
785    /// Transmits SAE frame (if SME is managing SAE authentication).
786    pub fn r#sae_frame_tx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
787        self.client.send::<MlmeSaeFrameTxRequest>(
788            (frame,),
789            0x7700c0d536733d8c,
790            fidl::encoding::DynamicFlags::empty(),
791        )
792    }
793
794    pub fn r#wmm_status_req(&self) -> Result<(), fidl::Error> {
795        self.client.send::<fidl::encoding::EmptyPayload>(
796            (),
797            0xef4851f6088fede,
798            fidl::encoding::DynamicFlags::empty(),
799        )
800    }
801
802    pub fn r#finalize_association_req(
803        &self,
804        mut negotiated_capabilities: &NegotiatedCapabilities,
805    ) -> Result<(), fidl::Error> {
806        self.client.send::<MlmeFinalizeAssociationReqRequest>(
807            (negotiated_capabilities,),
808            0x7aea59787cfd385a,
809            fidl::encoding::DynamicFlags::empty(),
810        )
811    }
812}
813
814#[derive(Debug, Clone)]
815pub struct MlmeProxy {
816    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
817}
818
819impl fidl::endpoints::Proxy for MlmeProxy {
820    type Protocol = MlmeMarker;
821
822    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
823        Self::new(inner)
824    }
825
826    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
827        self.client.into_channel().map_err(|client| Self { client })
828    }
829
830    fn as_channel(&self) -> &::fidl::AsyncChannel {
831        self.client.as_channel()
832    }
833}
834
835impl MlmeProxy {
836    /// Create a new Proxy for fuchsia.wlan.mlme/MLME.
837    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
838        let protocol_name = <MlmeMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
839        Self { client: fidl::client::Client::new(channel, protocol_name) }
840    }
841
842    /// Get a Stream of events from the remote end of the protocol.
843    ///
844    /// # Panics
845    ///
846    /// Panics if the event stream was already taken.
847    pub fn take_event_stream(&self) -> MlmeEventStream {
848        MlmeEventStream { event_receiver: self.client.take_event_receiver() }
849    }
850
851    pub fn r#start_scan(&self, mut req: &ScanRequest) -> Result<(), fidl::Error> {
852        MlmeProxyInterface::r#start_scan(self, req)
853    }
854
855    pub fn r#connect_req(&self, mut req: &ConnectRequest) -> Result<(), fidl::Error> {
856        MlmeProxyInterface::r#connect_req(self, req)
857    }
858
859    pub fn r#reconnect_req(&self, mut req: &ReconnectRequest) -> Result<(), fidl::Error> {
860        MlmeProxyInterface::r#reconnect_req(self, req)
861    }
862
863    /// Initiate a roam attempt (SME-initiated).
864    pub fn r#roam_req(&self, mut req: &RoamRequest) -> Result<(), fidl::Error> {
865        MlmeProxyInterface::r#roam_req(self, req)
866    }
867
868    pub fn r#authenticate_resp(&self, mut resp: &AuthenticateResponse) -> Result<(), fidl::Error> {
869        MlmeProxyInterface::r#authenticate_resp(self, resp)
870    }
871
872    pub fn r#deauthenticate_req(&self, mut req: &DeauthenticateRequest) -> Result<(), fidl::Error> {
873        MlmeProxyInterface::r#deauthenticate_req(self, req)
874    }
875
876    pub fn r#associate_resp(&self, mut resp: &AssociateResponse) -> Result<(), fidl::Error> {
877        MlmeProxyInterface::r#associate_resp(self, resp)
878    }
879
880    pub fn r#disassociate_req(&self, mut req: &DisassociateRequest) -> Result<(), fidl::Error> {
881        MlmeProxyInterface::r#disassociate_req(self, req)
882    }
883
884    pub fn r#reset_req(&self, mut req: &ResetRequest) -> Result<(), fidl::Error> {
885        MlmeProxyInterface::r#reset_req(self, req)
886    }
887
888    pub fn r#start_req(&self, mut req: &StartRequest) -> Result<(), fidl::Error> {
889        MlmeProxyInterface::r#start_req(self, req)
890    }
891
892    pub fn r#stop_req(&self, mut req: &StopRequest) -> Result<(), fidl::Error> {
893        MlmeProxyInterface::r#stop_req(self, req)
894    }
895
896    pub fn r#set_keys_req(&self, mut req: &SetKeysRequest) -> Result<(), fidl::Error> {
897        MlmeProxyInterface::r#set_keys_req(self, req)
898    }
899
900    pub fn r#delete_keys_req(&self, mut req: &DeleteKeysRequest) -> Result<(), fidl::Error> {
901        MlmeProxyInterface::r#delete_keys_req(self, req)
902    }
903
904    pub fn r#eapol_req(&self, mut req: &EapolRequest) -> Result<(), fidl::Error> {
905        MlmeProxyInterface::r#eapol_req(self, req)
906    }
907
908    pub fn r#set_controlled_port(
909        &self,
910        mut req: &SetControlledPortRequest,
911    ) -> Result<(), fidl::Error> {
912        MlmeProxyInterface::r#set_controlled_port(self, req)
913    }
914
915    pub fn r#query_device_info(
916        &self,
917    ) -> fidl::client::QueryResponseFut<DeviceInfo, fidl::encoding::DefaultFuchsiaResourceDialect>
918    {
919        MlmeProxyInterface::r#query_device_info(self)
920    }
921
922    pub fn r#query_discovery_support(
923        &self,
924    ) -> fidl::client::QueryResponseFut<
925        fidl_fuchsia_wlan_common::DiscoverySupport,
926        fidl::encoding::DefaultFuchsiaResourceDialect,
927    > {
928        MlmeProxyInterface::r#query_discovery_support(self)
929    }
930
931    pub fn r#query_mac_sublayer_support(
932        &self,
933    ) -> fidl::client::QueryResponseFut<
934        fidl_fuchsia_wlan_common::MacSublayerSupport,
935        fidl::encoding::DefaultFuchsiaResourceDialect,
936    > {
937        MlmeProxyInterface::r#query_mac_sublayer_support(self)
938    }
939
940    pub fn r#query_security_support(
941        &self,
942    ) -> fidl::client::QueryResponseFut<
943        fidl_fuchsia_wlan_common::SecuritySupport,
944        fidl::encoding::DefaultFuchsiaResourceDialect,
945    > {
946        MlmeProxyInterface::r#query_security_support(self)
947    }
948
949    pub fn r#query_spectrum_management_support(
950        &self,
951    ) -> fidl::client::QueryResponseFut<
952        fidl_fuchsia_wlan_common::SpectrumManagementSupport,
953        fidl::encoding::DefaultFuchsiaResourceDialect,
954    > {
955        MlmeProxyInterface::r#query_spectrum_management_support(self)
956    }
957
958    pub fn r#query_telemetry_support(
959        &self,
960    ) -> fidl::client::QueryResponseFut<
961        MlmeQueryTelemetrySupportResult,
962        fidl::encoding::DefaultFuchsiaResourceDialect,
963    > {
964        MlmeProxyInterface::r#query_telemetry_support(self)
965    }
966
967    pub fn r#get_iface_stats(
968        &self,
969    ) -> fidl::client::QueryResponseFut<
970        GetIfaceStatsResponse,
971        fidl::encoding::DefaultFuchsiaResourceDialect,
972    > {
973        MlmeProxyInterface::r#get_iface_stats(self)
974    }
975
976    pub fn r#get_iface_histogram_stats(
977        &self,
978    ) -> fidl::client::QueryResponseFut<
979        GetIfaceHistogramStatsResponse,
980        fidl::encoding::DefaultFuchsiaResourceDialect,
981    > {
982        MlmeProxyInterface::r#get_iface_histogram_stats(self)
983    }
984
985    pub fn r#list_minstrel_peers(
986        &self,
987    ) -> fidl::client::QueryResponseFut<
988        MinstrelListResponse,
989        fidl::encoding::DefaultFuchsiaResourceDialect,
990    > {
991        MlmeProxyInterface::r#list_minstrel_peers(self)
992    }
993
994    pub fn r#get_minstrel_stats(
995        &self,
996        mut req: &MinstrelStatsRequest,
997    ) -> fidl::client::QueryResponseFut<
998        MinstrelStatsResponse,
999        fidl::encoding::DefaultFuchsiaResourceDialect,
1000    > {
1001        MlmeProxyInterface::r#get_minstrel_stats(self, req)
1002    }
1003
1004    pub fn r#start_capture_frames(
1005        &self,
1006        mut req: &StartCaptureFramesRequest,
1007    ) -> fidl::client::QueryResponseFut<
1008        StartCaptureFramesResponse,
1009        fidl::encoding::DefaultFuchsiaResourceDialect,
1010    > {
1011        MlmeProxyInterface::r#start_capture_frames(self, req)
1012    }
1013
1014    pub fn r#stop_capture_frames(&self) -> Result<(), fidl::Error> {
1015        MlmeProxyInterface::r#stop_capture_frames(self)
1016    }
1017
1018    /// Notifies that SAE authentication is completed.
1019    pub fn r#sae_handshake_resp(&self, mut resp: &SaeHandshakeResponse) -> Result<(), fidl::Error> {
1020        MlmeProxyInterface::r#sae_handshake_resp(self, resp)
1021    }
1022
1023    /// Transmits SAE frame (if SME is managing SAE authentication).
1024    pub fn r#sae_frame_tx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
1025        MlmeProxyInterface::r#sae_frame_tx(self, frame)
1026    }
1027
1028    pub fn r#wmm_status_req(&self) -> Result<(), fidl::Error> {
1029        MlmeProxyInterface::r#wmm_status_req(self)
1030    }
1031
1032    pub fn r#finalize_association_req(
1033        &self,
1034        mut negotiated_capabilities: &NegotiatedCapabilities,
1035    ) -> Result<(), fidl::Error> {
1036        MlmeProxyInterface::r#finalize_association_req(self, negotiated_capabilities)
1037    }
1038}
1039
1040impl MlmeProxyInterface for MlmeProxy {
1041    fn r#start_scan(&self, mut req: &ScanRequest) -> Result<(), fidl::Error> {
1042        self.client.send::<MlmeStartScanRequest>(
1043            (req,),
1044            0x342cc5ec6a957479,
1045            fidl::encoding::DynamicFlags::empty(),
1046        )
1047    }
1048
1049    fn r#connect_req(&self, mut req: &ConnectRequest) -> Result<(), fidl::Error> {
1050        self.client.send::<MlmeConnectReqRequest>(
1051            (req,),
1052            0x31153dc85f8f64c,
1053            fidl::encoding::DynamicFlags::empty(),
1054        )
1055    }
1056
1057    fn r#reconnect_req(&self, mut req: &ReconnectRequest) -> Result<(), fidl::Error> {
1058        self.client.send::<MlmeReconnectReqRequest>(
1059            (req,),
1060            0x74e0f1bd758b6b78,
1061            fidl::encoding::DynamicFlags::empty(),
1062        )
1063    }
1064
1065    fn r#roam_req(&self, mut req: &RoamRequest) -> Result<(), fidl::Error> {
1066        self.client.send::<MlmeRoamReqRequest>(
1067            (req,),
1068            0x3ba163eadf7dba45,
1069            fidl::encoding::DynamicFlags::empty(),
1070        )
1071    }
1072
1073    fn r#authenticate_resp(&self, mut resp: &AuthenticateResponse) -> Result<(), fidl::Error> {
1074        self.client.send::<MlmeAuthenticateRespRequest>(
1075            (resp,),
1076            0x26108aade2fdd2f4,
1077            fidl::encoding::DynamicFlags::empty(),
1078        )
1079    }
1080
1081    fn r#deauthenticate_req(&self, mut req: &DeauthenticateRequest) -> Result<(), fidl::Error> {
1082        self.client.send::<MlmeDeauthenticateReqRequest>(
1083            (req,),
1084            0x228983b200de5d12,
1085            fidl::encoding::DynamicFlags::empty(),
1086        )
1087    }
1088
1089    fn r#associate_resp(&self, mut resp: &AssociateResponse) -> Result<(), fidl::Error> {
1090        self.client.send::<MlmeAssociateRespRequest>(
1091            (resp,),
1092            0x70244dbd652ed6d9,
1093            fidl::encoding::DynamicFlags::empty(),
1094        )
1095    }
1096
1097    fn r#disassociate_req(&self, mut req: &DisassociateRequest) -> Result<(), fidl::Error> {
1098        self.client.send::<MlmeDisassociateReqRequest>(
1099            (req,),
1100            0x5765807f1387d764,
1101            fidl::encoding::DynamicFlags::empty(),
1102        )
1103    }
1104
1105    fn r#reset_req(&self, mut req: &ResetRequest) -> Result<(), fidl::Error> {
1106        self.client.send::<MlmeResetReqRequest>(
1107            (req,),
1108            0x780b98c58a286b9f,
1109            fidl::encoding::DynamicFlags::empty(),
1110        )
1111    }
1112
1113    fn r#start_req(&self, mut req: &StartRequest) -> Result<(), fidl::Error> {
1114        self.client.send::<MlmeStartReqRequest>(
1115            (req,),
1116            0x5d95885f8053654,
1117            fidl::encoding::DynamicFlags::empty(),
1118        )
1119    }
1120
1121    fn r#stop_req(&self, mut req: &StopRequest) -> Result<(), fidl::Error> {
1122        self.client.send::<MlmeStopReqRequest>(
1123            (req,),
1124            0x27b9a2ab04a2c79f,
1125            fidl::encoding::DynamicFlags::empty(),
1126        )
1127    }
1128
1129    fn r#set_keys_req(&self, mut req: &SetKeysRequest) -> Result<(), fidl::Error> {
1130        self.client.send::<MlmeSetKeysReqRequest>(
1131            (req,),
1132            0x6b30a07fd3a11a79,
1133            fidl::encoding::DynamicFlags::empty(),
1134        )
1135    }
1136
1137    fn r#delete_keys_req(&self, mut req: &DeleteKeysRequest) -> Result<(), fidl::Error> {
1138        self.client.send::<MlmeDeleteKeysReqRequest>(
1139            (req,),
1140            0x1e3524d20d190c8f,
1141            fidl::encoding::DynamicFlags::empty(),
1142        )
1143    }
1144
1145    fn r#eapol_req(&self, mut req: &EapolRequest) -> Result<(), fidl::Error> {
1146        self.client.send::<MlmeEapolReqRequest>(
1147            (req,),
1148            0xc3c096924704d4,
1149            fidl::encoding::DynamicFlags::empty(),
1150        )
1151    }
1152
1153    fn r#set_controlled_port(&self, mut req: &SetControlledPortRequest) -> Result<(), fidl::Error> {
1154        self.client.send::<MlmeSetControlledPortRequest>(
1155            (req,),
1156            0x4e47065668890c8d,
1157            fidl::encoding::DynamicFlags::empty(),
1158        )
1159    }
1160
1161    type QueryDeviceInfoResponseFut =
1162        fidl::client::QueryResponseFut<DeviceInfo, fidl::encoding::DefaultFuchsiaResourceDialect>;
1163    fn r#query_device_info(&self) -> Self::QueryDeviceInfoResponseFut {
1164        fn _decode(
1165            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1166        ) -> Result<DeviceInfo, fidl::Error> {
1167            let _response = fidl::client::decode_transaction_body::<
1168                MlmeQueryDeviceInfoResponse,
1169                fidl::encoding::DefaultFuchsiaResourceDialect,
1170                0x6ee3e7f63f2b7bc0,
1171            >(_buf?)?;
1172            Ok(_response.info)
1173        }
1174        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, DeviceInfo>(
1175            (),
1176            0x6ee3e7f63f2b7bc0,
1177            fidl::encoding::DynamicFlags::empty(),
1178            _decode,
1179        )
1180    }
1181
1182    type QueryDiscoverySupportResponseFut = fidl::client::QueryResponseFut<
1183        fidl_fuchsia_wlan_common::DiscoverySupport,
1184        fidl::encoding::DefaultFuchsiaResourceDialect,
1185    >;
1186    fn r#query_discovery_support(&self) -> Self::QueryDiscoverySupportResponseFut {
1187        fn _decode(
1188            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1189        ) -> Result<fidl_fuchsia_wlan_common::DiscoverySupport, fidl::Error> {
1190            let _response = fidl::client::decode_transaction_body::<
1191                MlmeQueryDiscoverySupportResponse,
1192                fidl::encoding::DefaultFuchsiaResourceDialect,
1193                0x4ac57b8eee721a2,
1194            >(_buf?)?;
1195            Ok(_response.resp)
1196        }
1197        self.client.send_query_and_decode::<
1198            fidl::encoding::EmptyPayload,
1199            fidl_fuchsia_wlan_common::DiscoverySupport,
1200        >(
1201            (),
1202            0x4ac57b8eee721a2,
1203            fidl::encoding::DynamicFlags::empty(),
1204            _decode,
1205        )
1206    }
1207
1208    type QueryMacSublayerSupportResponseFut = fidl::client::QueryResponseFut<
1209        fidl_fuchsia_wlan_common::MacSublayerSupport,
1210        fidl::encoding::DefaultFuchsiaResourceDialect,
1211    >;
1212    fn r#query_mac_sublayer_support(&self) -> Self::QueryMacSublayerSupportResponseFut {
1213        fn _decode(
1214            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1215        ) -> Result<fidl_fuchsia_wlan_common::MacSublayerSupport, fidl::Error> {
1216            let _response = fidl::client::decode_transaction_body::<
1217                MlmeQueryMacSublayerSupportResponse,
1218                fidl::encoding::DefaultFuchsiaResourceDialect,
1219                0x70d23f3b08382854,
1220            >(_buf?)?;
1221            Ok(_response.resp)
1222        }
1223        self.client.send_query_and_decode::<
1224            fidl::encoding::EmptyPayload,
1225            fidl_fuchsia_wlan_common::MacSublayerSupport,
1226        >(
1227            (),
1228            0x70d23f3b08382854,
1229            fidl::encoding::DynamicFlags::empty(),
1230            _decode,
1231        )
1232    }
1233
1234    type QuerySecuritySupportResponseFut = fidl::client::QueryResponseFut<
1235        fidl_fuchsia_wlan_common::SecuritySupport,
1236        fidl::encoding::DefaultFuchsiaResourceDialect,
1237    >;
1238    fn r#query_security_support(&self) -> Self::QuerySecuritySupportResponseFut {
1239        fn _decode(
1240            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1241        ) -> Result<fidl_fuchsia_wlan_common::SecuritySupport, fidl::Error> {
1242            let _response = fidl::client::decode_transaction_body::<
1243                MlmeQuerySecuritySupportResponse,
1244                fidl::encoding::DefaultFuchsiaResourceDialect,
1245                0x2512eb3424620151,
1246            >(_buf?)?;
1247            Ok(_response.resp)
1248        }
1249        self.client.send_query_and_decode::<
1250            fidl::encoding::EmptyPayload,
1251            fidl_fuchsia_wlan_common::SecuritySupport,
1252        >(
1253            (),
1254            0x2512eb3424620151,
1255            fidl::encoding::DynamicFlags::empty(),
1256            _decode,
1257        )
1258    }
1259
1260    type QuerySpectrumManagementSupportResponseFut = fidl::client::QueryResponseFut<
1261        fidl_fuchsia_wlan_common::SpectrumManagementSupport,
1262        fidl::encoding::DefaultFuchsiaResourceDialect,
1263    >;
1264    fn r#query_spectrum_management_support(
1265        &self,
1266    ) -> Self::QuerySpectrumManagementSupportResponseFut {
1267        fn _decode(
1268            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1269        ) -> Result<fidl_fuchsia_wlan_common::SpectrumManagementSupport, fidl::Error> {
1270            let _response = fidl::client::decode_transaction_body::<
1271                MlmeQuerySpectrumManagementSupportResponse,
1272                fidl::encoding::DefaultFuchsiaResourceDialect,
1273                0x28ed024e9d883010,
1274            >(_buf?)?;
1275            Ok(_response.resp)
1276        }
1277        self.client.send_query_and_decode::<
1278            fidl::encoding::EmptyPayload,
1279            fidl_fuchsia_wlan_common::SpectrumManagementSupport,
1280        >(
1281            (),
1282            0x28ed024e9d883010,
1283            fidl::encoding::DynamicFlags::empty(),
1284            _decode,
1285        )
1286    }
1287
1288    type QueryTelemetrySupportResponseFut = fidl::client::QueryResponseFut<
1289        MlmeQueryTelemetrySupportResult,
1290        fidl::encoding::DefaultFuchsiaResourceDialect,
1291    >;
1292    fn r#query_telemetry_support(&self) -> Self::QueryTelemetrySupportResponseFut {
1293        fn _decode(
1294            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1295        ) -> Result<MlmeQueryTelemetrySupportResult, fidl::Error> {
1296            let _response = fidl::client::decode_transaction_body::<
1297                fidl::encoding::ResultType<MlmeQueryTelemetrySupportResponse, i32>,
1298                fidl::encoding::DefaultFuchsiaResourceDialect,
1299                0x1598879b70332c99,
1300            >(_buf?)?;
1301            Ok(_response.map(|x| x.resp))
1302        }
1303        self.client
1304            .send_query_and_decode::<fidl::encoding::EmptyPayload, MlmeQueryTelemetrySupportResult>(
1305                (),
1306                0x1598879b70332c99,
1307                fidl::encoding::DynamicFlags::empty(),
1308                _decode,
1309            )
1310    }
1311
1312    type GetIfaceStatsResponseFut = fidl::client::QueryResponseFut<
1313        GetIfaceStatsResponse,
1314        fidl::encoding::DefaultFuchsiaResourceDialect,
1315    >;
1316    fn r#get_iface_stats(&self) -> Self::GetIfaceStatsResponseFut {
1317        fn _decode(
1318            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1319        ) -> Result<GetIfaceStatsResponse, fidl::Error> {
1320            let _response = fidl::client::decode_transaction_body::<
1321                MlmeGetIfaceStatsResponse,
1322                fidl::encoding::DefaultFuchsiaResourceDialect,
1323                0xede1a8342d1b211,
1324            >(_buf?)?;
1325            Ok(_response.resp)
1326        }
1327        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, GetIfaceStatsResponse>(
1328            (),
1329            0xede1a8342d1b211,
1330            fidl::encoding::DynamicFlags::empty(),
1331            _decode,
1332        )
1333    }
1334
1335    type GetIfaceHistogramStatsResponseFut = fidl::client::QueryResponseFut<
1336        GetIfaceHistogramStatsResponse,
1337        fidl::encoding::DefaultFuchsiaResourceDialect,
1338    >;
1339    fn r#get_iface_histogram_stats(&self) -> Self::GetIfaceHistogramStatsResponseFut {
1340        fn _decode(
1341            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1342        ) -> Result<GetIfaceHistogramStatsResponse, fidl::Error> {
1343            let _response = fidl::client::decode_transaction_body::<
1344                MlmeGetIfaceHistogramStatsResponse,
1345                fidl::encoding::DefaultFuchsiaResourceDialect,
1346                0x1979c9d3449f8675,
1347            >(_buf?)?;
1348            Ok(_response.resp)
1349        }
1350        self.client
1351            .send_query_and_decode::<fidl::encoding::EmptyPayload, GetIfaceHistogramStatsResponse>(
1352                (),
1353                0x1979c9d3449f8675,
1354                fidl::encoding::DynamicFlags::empty(),
1355                _decode,
1356            )
1357    }
1358
1359    type ListMinstrelPeersResponseFut = fidl::client::QueryResponseFut<
1360        MinstrelListResponse,
1361        fidl::encoding::DefaultFuchsiaResourceDialect,
1362    >;
1363    fn r#list_minstrel_peers(&self) -> Self::ListMinstrelPeersResponseFut {
1364        fn _decode(
1365            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1366        ) -> Result<MinstrelListResponse, fidl::Error> {
1367            let _response = fidl::client::decode_transaction_body::<
1368                MlmeListMinstrelPeersResponse,
1369                fidl::encoding::DefaultFuchsiaResourceDialect,
1370                0x4ac5d1e66fe1ffd5,
1371            >(_buf?)?;
1372            Ok(_response.resp)
1373        }
1374        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, MinstrelListResponse>(
1375            (),
1376            0x4ac5d1e66fe1ffd5,
1377            fidl::encoding::DynamicFlags::empty(),
1378            _decode,
1379        )
1380    }
1381
1382    type GetMinstrelStatsResponseFut = fidl::client::QueryResponseFut<
1383        MinstrelStatsResponse,
1384        fidl::encoding::DefaultFuchsiaResourceDialect,
1385    >;
1386    fn r#get_minstrel_stats(
1387        &self,
1388        mut req: &MinstrelStatsRequest,
1389    ) -> Self::GetMinstrelStatsResponseFut {
1390        fn _decode(
1391            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1392        ) -> Result<MinstrelStatsResponse, fidl::Error> {
1393            let _response = fidl::client::decode_transaction_body::<
1394                MlmeGetMinstrelStatsResponse,
1395                fidl::encoding::DefaultFuchsiaResourceDialect,
1396                0x2f688b1245323f4b,
1397            >(_buf?)?;
1398            Ok(_response.resp)
1399        }
1400        self.client.send_query_and_decode::<MlmeGetMinstrelStatsRequest, MinstrelStatsResponse>(
1401            (req,),
1402            0x2f688b1245323f4b,
1403            fidl::encoding::DynamicFlags::empty(),
1404            _decode,
1405        )
1406    }
1407
1408    type StartCaptureFramesResponseFut = fidl::client::QueryResponseFut<
1409        StartCaptureFramesResponse,
1410        fidl::encoding::DefaultFuchsiaResourceDialect,
1411    >;
1412    fn r#start_capture_frames(
1413        &self,
1414        mut req: &StartCaptureFramesRequest,
1415    ) -> Self::StartCaptureFramesResponseFut {
1416        fn _decode(
1417            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1418        ) -> Result<StartCaptureFramesResponse, fidl::Error> {
1419            let _response = fidl::client::decode_transaction_body::<
1420                MlmeStartCaptureFramesResponse,
1421                fidl::encoding::DefaultFuchsiaResourceDialect,
1422                0x23b369ed5749ee69,
1423            >(_buf?)?;
1424            Ok(_response.resp)
1425        }
1426        self.client
1427            .send_query_and_decode::<MlmeStartCaptureFramesRequest, StartCaptureFramesResponse>(
1428                (req,),
1429                0x23b369ed5749ee69,
1430                fidl::encoding::DynamicFlags::empty(),
1431                _decode,
1432            )
1433    }
1434
1435    fn r#stop_capture_frames(&self) -> Result<(), fidl::Error> {
1436        self.client.send::<fidl::encoding::EmptyPayload>(
1437            (),
1438            0x2f1aebbc68bf7c54,
1439            fidl::encoding::DynamicFlags::empty(),
1440        )
1441    }
1442
1443    fn r#sae_handshake_resp(&self, mut resp: &SaeHandshakeResponse) -> Result<(), fidl::Error> {
1444        self.client.send::<MlmeSaeHandshakeRespRequest>(
1445            (resp,),
1446            0x28477bd2f7a5ab0c,
1447            fidl::encoding::DynamicFlags::empty(),
1448        )
1449    }
1450
1451    fn r#sae_frame_tx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
1452        self.client.send::<MlmeSaeFrameTxRequest>(
1453            (frame,),
1454            0x7700c0d536733d8c,
1455            fidl::encoding::DynamicFlags::empty(),
1456        )
1457    }
1458
1459    fn r#wmm_status_req(&self) -> Result<(), fidl::Error> {
1460        self.client.send::<fidl::encoding::EmptyPayload>(
1461            (),
1462            0xef4851f6088fede,
1463            fidl::encoding::DynamicFlags::empty(),
1464        )
1465    }
1466
1467    fn r#finalize_association_req(
1468        &self,
1469        mut negotiated_capabilities: &NegotiatedCapabilities,
1470    ) -> Result<(), fidl::Error> {
1471        self.client.send::<MlmeFinalizeAssociationReqRequest>(
1472            (negotiated_capabilities,),
1473            0x7aea59787cfd385a,
1474            fidl::encoding::DynamicFlags::empty(),
1475        )
1476    }
1477}
1478
1479pub struct MlmeEventStream {
1480    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1481}
1482
1483impl std::marker::Unpin for MlmeEventStream {}
1484
1485impl futures::stream::FusedStream for MlmeEventStream {
1486    fn is_terminated(&self) -> bool {
1487        self.event_receiver.is_terminated()
1488    }
1489}
1490
1491impl futures::Stream for MlmeEventStream {
1492    type Item = Result<MlmeEvent, fidl::Error>;
1493
1494    fn poll_next(
1495        mut self: std::pin::Pin<&mut Self>,
1496        cx: &mut std::task::Context<'_>,
1497    ) -> std::task::Poll<Option<Self::Item>> {
1498        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1499            &mut self.event_receiver,
1500            cx
1501        )?) {
1502            Some(buf) => std::task::Poll::Ready(Some(MlmeEvent::decode(buf))),
1503            None => std::task::Poll::Ready(None),
1504        }
1505    }
1506}
1507
1508#[derive(Debug)]
1509pub enum MlmeEvent {
1510    OnScanResult { result: ScanResult },
1511    OnScanEnd { end: ScanEnd },
1512    ConnectConf { resp: ConnectConfirm },
1513    RoamConf { conf: RoamConfirm },
1514    RoamStartInd { ind: RoamStartIndication },
1515    RoamResultInd { ind: RoamResultIndication },
1516    AuthenticateInd { ind: AuthenticateIndication },
1517    DeauthenticateConf { resp: DeauthenticateConfirm },
1518    DeauthenticateInd { ind: DeauthenticateIndication },
1519    AssociateInd { ind: AssociateIndication },
1520    DisassociateConf { resp: DisassociateConfirm },
1521    DisassociateInd { ind: DisassociateIndication },
1522    StartConf { resp: StartConfirm },
1523    StopConf { resp: StopConfirm },
1524    SetKeysConf { conf: SetKeysConfirm },
1525    EapolConf { resp: EapolConfirm },
1526    SignalReport { ind: fidl_fuchsia_wlan_internal::SignalReportIndication },
1527    EapolInd { ind: EapolIndication },
1528    RelayCapturedFrame { result: CapturedFrameResult },
1529    OnChannelSwitched { info: fidl_fuchsia_wlan_internal::ChannelSwitchInfo },
1530    OnPmkAvailable { info: PmkInfo },
1531    OnSaeHandshakeInd { ind: SaeHandshakeIndication },
1532    OnSaeFrameRx { frame: SaeFrame },
1533    OnWmmStatusResp { status: i32, resp: fidl_fuchsia_wlan_internal::WmmStatusResponse },
1534}
1535
1536impl MlmeEvent {
1537    #[allow(irrefutable_let_patterns)]
1538    pub fn into_on_scan_result(self) -> Option<ScanResult> {
1539        if let MlmeEvent::OnScanResult { result } = self {
1540            Some((result))
1541        } else {
1542            None
1543        }
1544    }
1545    #[allow(irrefutable_let_patterns)]
1546    pub fn into_on_scan_end(self) -> Option<ScanEnd> {
1547        if let MlmeEvent::OnScanEnd { end } = self {
1548            Some((end))
1549        } else {
1550            None
1551        }
1552    }
1553    #[allow(irrefutable_let_patterns)]
1554    pub fn into_connect_conf(self) -> Option<ConnectConfirm> {
1555        if let MlmeEvent::ConnectConf { resp } = self {
1556            Some((resp))
1557        } else {
1558            None
1559        }
1560    }
1561    #[allow(irrefutable_let_patterns)]
1562    pub fn into_roam_conf(self) -> Option<RoamConfirm> {
1563        if let MlmeEvent::RoamConf { conf } = self {
1564            Some((conf))
1565        } else {
1566            None
1567        }
1568    }
1569    #[allow(irrefutable_let_patterns)]
1570    pub fn into_roam_start_ind(self) -> Option<RoamStartIndication> {
1571        if let MlmeEvent::RoamStartInd { ind } = self {
1572            Some((ind))
1573        } else {
1574            None
1575        }
1576    }
1577    #[allow(irrefutable_let_patterns)]
1578    pub fn into_roam_result_ind(self) -> Option<RoamResultIndication> {
1579        if let MlmeEvent::RoamResultInd { ind } = self {
1580            Some((ind))
1581        } else {
1582            None
1583        }
1584    }
1585    #[allow(irrefutable_let_patterns)]
1586    pub fn into_authenticate_ind(self) -> Option<AuthenticateIndication> {
1587        if let MlmeEvent::AuthenticateInd { ind } = self {
1588            Some((ind))
1589        } else {
1590            None
1591        }
1592    }
1593    #[allow(irrefutable_let_patterns)]
1594    pub fn into_deauthenticate_conf(self) -> Option<DeauthenticateConfirm> {
1595        if let MlmeEvent::DeauthenticateConf { resp } = self {
1596            Some((resp))
1597        } else {
1598            None
1599        }
1600    }
1601    #[allow(irrefutable_let_patterns)]
1602    pub fn into_deauthenticate_ind(self) -> Option<DeauthenticateIndication> {
1603        if let MlmeEvent::DeauthenticateInd { ind } = self {
1604            Some((ind))
1605        } else {
1606            None
1607        }
1608    }
1609    #[allow(irrefutable_let_patterns)]
1610    pub fn into_associate_ind(self) -> Option<AssociateIndication> {
1611        if let MlmeEvent::AssociateInd { ind } = self {
1612            Some((ind))
1613        } else {
1614            None
1615        }
1616    }
1617    #[allow(irrefutable_let_patterns)]
1618    pub fn into_disassociate_conf(self) -> Option<DisassociateConfirm> {
1619        if let MlmeEvent::DisassociateConf { resp } = self {
1620            Some((resp))
1621        } else {
1622            None
1623        }
1624    }
1625    #[allow(irrefutable_let_patterns)]
1626    pub fn into_disassociate_ind(self) -> Option<DisassociateIndication> {
1627        if let MlmeEvent::DisassociateInd { ind } = self {
1628            Some((ind))
1629        } else {
1630            None
1631        }
1632    }
1633    #[allow(irrefutable_let_patterns)]
1634    pub fn into_start_conf(self) -> Option<StartConfirm> {
1635        if let MlmeEvent::StartConf { resp } = self {
1636            Some((resp))
1637        } else {
1638            None
1639        }
1640    }
1641    #[allow(irrefutable_let_patterns)]
1642    pub fn into_stop_conf(self) -> Option<StopConfirm> {
1643        if let MlmeEvent::StopConf { resp } = self {
1644            Some((resp))
1645        } else {
1646            None
1647        }
1648    }
1649    #[allow(irrefutable_let_patterns)]
1650    pub fn into_set_keys_conf(self) -> Option<SetKeysConfirm> {
1651        if let MlmeEvent::SetKeysConf { conf } = self {
1652            Some((conf))
1653        } else {
1654            None
1655        }
1656    }
1657    #[allow(irrefutable_let_patterns)]
1658    pub fn into_eapol_conf(self) -> Option<EapolConfirm> {
1659        if let MlmeEvent::EapolConf { resp } = self {
1660            Some((resp))
1661        } else {
1662            None
1663        }
1664    }
1665    #[allow(irrefutable_let_patterns)]
1666    pub fn into_signal_report(self) -> Option<fidl_fuchsia_wlan_internal::SignalReportIndication> {
1667        if let MlmeEvent::SignalReport { ind } = self {
1668            Some((ind))
1669        } else {
1670            None
1671        }
1672    }
1673    #[allow(irrefutable_let_patterns)]
1674    pub fn into_eapol_ind(self) -> Option<EapolIndication> {
1675        if let MlmeEvent::EapolInd { ind } = self {
1676            Some((ind))
1677        } else {
1678            None
1679        }
1680    }
1681    #[allow(irrefutable_let_patterns)]
1682    pub fn into_relay_captured_frame(self) -> Option<CapturedFrameResult> {
1683        if let MlmeEvent::RelayCapturedFrame { result } = self {
1684            Some((result))
1685        } else {
1686            None
1687        }
1688    }
1689    #[allow(irrefutable_let_patterns)]
1690    pub fn into_on_channel_switched(self) -> Option<fidl_fuchsia_wlan_internal::ChannelSwitchInfo> {
1691        if let MlmeEvent::OnChannelSwitched { info } = self {
1692            Some((info))
1693        } else {
1694            None
1695        }
1696    }
1697    #[allow(irrefutable_let_patterns)]
1698    pub fn into_on_pmk_available(self) -> Option<PmkInfo> {
1699        if let MlmeEvent::OnPmkAvailable { info } = self {
1700            Some((info))
1701        } else {
1702            None
1703        }
1704    }
1705    #[allow(irrefutable_let_patterns)]
1706    pub fn into_on_sae_handshake_ind(self) -> Option<SaeHandshakeIndication> {
1707        if let MlmeEvent::OnSaeHandshakeInd { ind } = self {
1708            Some((ind))
1709        } else {
1710            None
1711        }
1712    }
1713    #[allow(irrefutable_let_patterns)]
1714    pub fn into_on_sae_frame_rx(self) -> Option<SaeFrame> {
1715        if let MlmeEvent::OnSaeFrameRx { frame } = self {
1716            Some((frame))
1717        } else {
1718            None
1719        }
1720    }
1721    #[allow(irrefutable_let_patterns)]
1722    pub fn into_on_wmm_status_resp(
1723        self,
1724    ) -> Option<(i32, fidl_fuchsia_wlan_internal::WmmStatusResponse)> {
1725        if let MlmeEvent::OnWmmStatusResp { status, resp } = self {
1726            Some((status, resp))
1727        } else {
1728            None
1729        }
1730    }
1731
1732    /// Decodes a message buffer as a [`MlmeEvent`].
1733    fn decode(
1734        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
1735    ) -> Result<MlmeEvent, fidl::Error> {
1736        let (bytes, _handles) = buf.split_mut();
1737        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
1738        debug_assert_eq!(tx_header.tx_id, 0);
1739        match tx_header.ordinal {
1740            0x681af7466a75074d => {
1741                let mut out = fidl::new_empty!(
1742                    MlmeOnScanResultRequest,
1743                    fidl::encoding::DefaultFuchsiaResourceDialect
1744                );
1745                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnScanResultRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1746                Ok((MlmeEvent::OnScanResult { result: out.result }))
1747            }
1748            0x7f2702d253e7ca59 => {
1749                let mut out = fidl::new_empty!(
1750                    MlmeOnScanEndRequest,
1751                    fidl::encoding::DefaultFuchsiaResourceDialect
1752                );
1753                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnScanEndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1754                Ok((MlmeEvent::OnScanEnd { end: out.end }))
1755            }
1756            0x77b27623279b981e => {
1757                let mut out = fidl::new_empty!(
1758                    MlmeConnectConfRequest,
1759                    fidl::encoding::DefaultFuchsiaResourceDialect
1760                );
1761                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeConnectConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1762                Ok((MlmeEvent::ConnectConf { resp: out.resp }))
1763            }
1764            0x3f608034faa054bc => {
1765                let mut out = fidl::new_empty!(
1766                    MlmeRoamConfRequest,
1767                    fidl::encoding::DefaultFuchsiaResourceDialect
1768                );
1769                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1770                Ok((MlmeEvent::RoamConf { conf: out.conf }))
1771            }
1772            0x270a1ec78672d094 => {
1773                let mut out = fidl::new_empty!(
1774                    MlmeRoamStartIndRequest,
1775                    fidl::encoding::DefaultFuchsiaResourceDialect
1776                );
1777                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamStartIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1778                Ok((MlmeEvent::RoamStartInd { ind: out.ind }))
1779            }
1780            0x26d074364fc84865 => {
1781                let mut out = fidl::new_empty!(
1782                    MlmeRoamResultIndRequest,
1783                    fidl::encoding::DefaultFuchsiaResourceDialect
1784                );
1785                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamResultIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1786                Ok((MlmeEvent::RoamResultInd { ind: out.ind }))
1787            }
1788            0x460f49ae891adbe9 => {
1789                let mut out = fidl::new_empty!(
1790                    MlmeAuthenticateIndRequest,
1791                    fidl::encoding::DefaultFuchsiaResourceDialect
1792                );
1793                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAuthenticateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1794                Ok((MlmeEvent::AuthenticateInd { ind: out.ind }))
1795            }
1796            0x3b44debc21b88c8c => {
1797                let mut out = fidl::new_empty!(
1798                    MlmeDeauthenticateConfRequest,
1799                    fidl::encoding::DefaultFuchsiaResourceDialect
1800                );
1801                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeauthenticateConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1802                Ok((MlmeEvent::DeauthenticateConf { resp: out.resp }))
1803            }
1804            0x7ee0889b326da1d7 => {
1805                let mut out = fidl::new_empty!(
1806                    MlmeDeauthenticateIndRequest,
1807                    fidl::encoding::DefaultFuchsiaResourceDialect
1808                );
1809                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeauthenticateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1810                Ok((MlmeEvent::DeauthenticateInd { ind: out.ind }))
1811            }
1812            0x6a86f20e3063dd63 => {
1813                let mut out = fidl::new_empty!(
1814                    MlmeAssociateIndRequest,
1815                    fidl::encoding::DefaultFuchsiaResourceDialect
1816                );
1817                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAssociateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1818                Ok((MlmeEvent::AssociateInd { ind: out.ind }))
1819            }
1820            0x61345fbce732a28d => {
1821                let mut out = fidl::new_empty!(
1822                    MlmeDisassociateConfRequest,
1823                    fidl::encoding::DefaultFuchsiaResourceDialect
1824                );
1825                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDisassociateConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1826                Ok((MlmeEvent::DisassociateConf { resp: out.resp }))
1827            }
1828            0x77ac0ebf387c1f35 => {
1829                let mut out = fidl::new_empty!(
1830                    MlmeDisassociateIndRequest,
1831                    fidl::encoding::DefaultFuchsiaResourceDialect
1832                );
1833                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDisassociateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1834                Ok((MlmeEvent::DisassociateInd { ind: out.ind }))
1835            }
1836            0x15ea6cdf3b8382b3 => {
1837                let mut out = fidl::new_empty!(
1838                    MlmeStartConfRequest,
1839                    fidl::encoding::DefaultFuchsiaResourceDialect
1840                );
1841                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1842                Ok((MlmeEvent::StartConf { resp: out.resp }))
1843            }
1844            0x50b426ef4a84a2df => {
1845                let mut out = fidl::new_empty!(
1846                    MlmeStopConfRequest,
1847                    fidl::encoding::DefaultFuchsiaResourceDialect
1848                );
1849                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStopConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1850                Ok((MlmeEvent::StopConf { resp: out.resp }))
1851            }
1852            0x5bafb3a8d4039380 => {
1853                let mut out = fidl::new_empty!(
1854                    MlmeSetKeysConfRequest,
1855                    fidl::encoding::DefaultFuchsiaResourceDialect
1856                );
1857                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetKeysConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1858                Ok((MlmeEvent::SetKeysConf { conf: out.conf }))
1859            }
1860            0x6ffa21f4ee73ce64 => {
1861                let mut out = fidl::new_empty!(
1862                    MlmeEapolConfRequest,
1863                    fidl::encoding::DefaultFuchsiaResourceDialect
1864                );
1865                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeEapolConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1866                Ok((MlmeEvent::EapolConf { resp: out.resp }))
1867            }
1868            0x48f32a876aa53d8f => {
1869                let mut out = fidl::new_empty!(
1870                    MlmeSignalReportRequest,
1871                    fidl::encoding::DefaultFuchsiaResourceDialect
1872                );
1873                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSignalReportRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1874                Ok((MlmeEvent::SignalReport { ind: out.ind }))
1875            }
1876            0x7038dca46a3142fc => {
1877                let mut out = fidl::new_empty!(
1878                    MlmeEapolIndRequest,
1879                    fidl::encoding::DefaultFuchsiaResourceDialect
1880                );
1881                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeEapolIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1882                Ok((MlmeEvent::EapolInd { ind: out.ind }))
1883            }
1884            0x6f00a6f3cff9b1f5 => {
1885                let mut out = fidl::new_empty!(
1886                    MlmeRelayCapturedFrameRequest,
1887                    fidl::encoding::DefaultFuchsiaResourceDialect
1888                );
1889                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRelayCapturedFrameRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1890                Ok((MlmeEvent::RelayCapturedFrame { result: out.result }))
1891            }
1892            0x581750594e4c0c1 => {
1893                let mut out = fidl::new_empty!(
1894                    MlmeOnChannelSwitchedRequest,
1895                    fidl::encoding::DefaultFuchsiaResourceDialect
1896                );
1897                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnChannelSwitchedRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1898                Ok((MlmeEvent::OnChannelSwitched { info: out.info }))
1899            }
1900            0x1314fc2c79643f90 => {
1901                let mut out = fidl::new_empty!(
1902                    MlmeOnPmkAvailableRequest,
1903                    fidl::encoding::DefaultFuchsiaResourceDialect
1904                );
1905                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnPmkAvailableRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1906                Ok((MlmeEvent::OnPmkAvailable { info: out.info }))
1907            }
1908            0x6308b10e18986d7e => {
1909                let mut out = fidl::new_empty!(
1910                    MlmeOnSaeHandshakeIndRequest,
1911                    fidl::encoding::DefaultFuchsiaResourceDialect
1912                );
1913                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnSaeHandshakeIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1914                Ok((MlmeEvent::OnSaeHandshakeInd { ind: out.ind }))
1915            }
1916            0x4ebf51c86ef5f3cd => {
1917                let mut out = fidl::new_empty!(
1918                    MlmeOnSaeFrameRxRequest,
1919                    fidl::encoding::DefaultFuchsiaResourceDialect
1920                );
1921                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnSaeFrameRxRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1922                Ok((MlmeEvent::OnSaeFrameRx { frame: out.frame }))
1923            }
1924            0x53f056b432e7b5cb => {
1925                let mut out = fidl::new_empty!(
1926                    MlmeOnWmmStatusRespRequest,
1927                    fidl::encoding::DefaultFuchsiaResourceDialect
1928                );
1929                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnWmmStatusRespRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
1930                Ok((MlmeEvent::OnWmmStatusResp { status: out.status, resp: out.resp }))
1931            }
1932            _ => Err(fidl::Error::UnknownOrdinal {
1933                ordinal: tx_header.ordinal,
1934                protocol_name: <MlmeMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
1935            }),
1936        }
1937    }
1938}
1939
1940/// A Stream of incoming requests for fuchsia.wlan.mlme/MLME.
1941pub struct MlmeRequestStream {
1942    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1943    is_terminated: bool,
1944}
1945
1946impl std::marker::Unpin for MlmeRequestStream {}
1947
1948impl futures::stream::FusedStream for MlmeRequestStream {
1949    fn is_terminated(&self) -> bool {
1950        self.is_terminated
1951    }
1952}
1953
1954impl fidl::endpoints::RequestStream for MlmeRequestStream {
1955    type Protocol = MlmeMarker;
1956    type ControlHandle = MlmeControlHandle;
1957
1958    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
1959        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
1960    }
1961
1962    fn control_handle(&self) -> Self::ControlHandle {
1963        MlmeControlHandle { inner: self.inner.clone() }
1964    }
1965
1966    fn into_inner(
1967        self,
1968    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
1969    {
1970        (self.inner, self.is_terminated)
1971    }
1972
1973    fn from_inner(
1974        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
1975        is_terminated: bool,
1976    ) -> Self {
1977        Self { inner, is_terminated }
1978    }
1979}
1980
1981impl futures::Stream for MlmeRequestStream {
1982    type Item = Result<MlmeRequest, fidl::Error>;
1983
1984    fn poll_next(
1985        mut self: std::pin::Pin<&mut Self>,
1986        cx: &mut std::task::Context<'_>,
1987    ) -> std::task::Poll<Option<Self::Item>> {
1988        let this = &mut *self;
1989        if this.inner.check_shutdown(cx) {
1990            this.is_terminated = true;
1991            return std::task::Poll::Ready(None);
1992        }
1993        if this.is_terminated {
1994            panic!("polled MlmeRequestStream after completion");
1995        }
1996        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
1997            |bytes, handles| {
1998                match this.inner.channel().read_etc(cx, bytes, handles) {
1999                    std::task::Poll::Ready(Ok(())) => {}
2000                    std::task::Poll::Pending => return std::task::Poll::Pending,
2001                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2002                        this.is_terminated = true;
2003                        return std::task::Poll::Ready(None);
2004                    }
2005                    std::task::Poll::Ready(Err(e)) => {
2006                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2007                            e.into(),
2008                        ))))
2009                    }
2010                }
2011
2012                // A message has been received from the channel
2013                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2014
2015                std::task::Poll::Ready(Some(match header.ordinal {
2016                    0x342cc5ec6a957479 => {
2017                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2018                        let mut req = fidl::new_empty!(
2019                            MlmeStartScanRequest,
2020                            fidl::encoding::DefaultFuchsiaResourceDialect
2021                        );
2022                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartScanRequest>(&header, _body_bytes, handles, &mut req)?;
2023                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2024                        Ok(MlmeRequest::StartScan { req: req.req, control_handle })
2025                    }
2026                    0x31153dc85f8f64c => {
2027                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2028                        let mut req = fidl::new_empty!(
2029                            MlmeConnectReqRequest,
2030                            fidl::encoding::DefaultFuchsiaResourceDialect
2031                        );
2032                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeConnectReqRequest>(&header, _body_bytes, handles, &mut req)?;
2033                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2034                        Ok(MlmeRequest::ConnectReq { req: req.req, control_handle })
2035                    }
2036                    0x74e0f1bd758b6b78 => {
2037                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2038                        let mut req = fidl::new_empty!(
2039                            MlmeReconnectReqRequest,
2040                            fidl::encoding::DefaultFuchsiaResourceDialect
2041                        );
2042                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeReconnectReqRequest>(&header, _body_bytes, handles, &mut req)?;
2043                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2044                        Ok(MlmeRequest::ReconnectReq { req: req.req, control_handle })
2045                    }
2046                    0x3ba163eadf7dba45 => {
2047                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2048                        let mut req = fidl::new_empty!(
2049                            MlmeRoamReqRequest,
2050                            fidl::encoding::DefaultFuchsiaResourceDialect
2051                        );
2052                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamReqRequest>(&header, _body_bytes, handles, &mut req)?;
2053                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2054                        Ok(MlmeRequest::RoamReq { req: req.req, control_handle })
2055                    }
2056                    0x26108aade2fdd2f4 => {
2057                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2058                        let mut req = fidl::new_empty!(
2059                            MlmeAuthenticateRespRequest,
2060                            fidl::encoding::DefaultFuchsiaResourceDialect
2061                        );
2062                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAuthenticateRespRequest>(&header, _body_bytes, handles, &mut req)?;
2063                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2064                        Ok(MlmeRequest::AuthenticateResp { resp: req.resp, control_handle })
2065                    }
2066                    0x228983b200de5d12 => {
2067                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2068                        let mut req = fidl::new_empty!(
2069                            MlmeDeauthenticateReqRequest,
2070                            fidl::encoding::DefaultFuchsiaResourceDialect
2071                        );
2072                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeauthenticateReqRequest>(&header, _body_bytes, handles, &mut req)?;
2073                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2074                        Ok(MlmeRequest::DeauthenticateReq { req: req.req, control_handle })
2075                    }
2076                    0x70244dbd652ed6d9 => {
2077                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2078                        let mut req = fidl::new_empty!(
2079                            MlmeAssociateRespRequest,
2080                            fidl::encoding::DefaultFuchsiaResourceDialect
2081                        );
2082                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAssociateRespRequest>(&header, _body_bytes, handles, &mut req)?;
2083                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2084                        Ok(MlmeRequest::AssociateResp { resp: req.resp, control_handle })
2085                    }
2086                    0x5765807f1387d764 => {
2087                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2088                        let mut req = fidl::new_empty!(
2089                            MlmeDisassociateReqRequest,
2090                            fidl::encoding::DefaultFuchsiaResourceDialect
2091                        );
2092                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDisassociateReqRequest>(&header, _body_bytes, handles, &mut req)?;
2093                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2094                        Ok(MlmeRequest::DisassociateReq { req: req.req, control_handle })
2095                    }
2096                    0x780b98c58a286b9f => {
2097                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2098                        let mut req = fidl::new_empty!(
2099                            MlmeResetReqRequest,
2100                            fidl::encoding::DefaultFuchsiaResourceDialect
2101                        );
2102                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeResetReqRequest>(&header, _body_bytes, handles, &mut req)?;
2103                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2104                        Ok(MlmeRequest::ResetReq { req: req.req, control_handle })
2105                    }
2106                    0x5d95885f8053654 => {
2107                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2108                        let mut req = fidl::new_empty!(
2109                            MlmeStartReqRequest,
2110                            fidl::encoding::DefaultFuchsiaResourceDialect
2111                        );
2112                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartReqRequest>(&header, _body_bytes, handles, &mut req)?;
2113                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2114                        Ok(MlmeRequest::StartReq { req: req.req, control_handle })
2115                    }
2116                    0x27b9a2ab04a2c79f => {
2117                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2118                        let mut req = fidl::new_empty!(
2119                            MlmeStopReqRequest,
2120                            fidl::encoding::DefaultFuchsiaResourceDialect
2121                        );
2122                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStopReqRequest>(&header, _body_bytes, handles, &mut req)?;
2123                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2124                        Ok(MlmeRequest::StopReq { req: req.req, control_handle })
2125                    }
2126                    0x6b30a07fd3a11a79 => {
2127                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2128                        let mut req = fidl::new_empty!(
2129                            MlmeSetKeysReqRequest,
2130                            fidl::encoding::DefaultFuchsiaResourceDialect
2131                        );
2132                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetKeysReqRequest>(&header, _body_bytes, handles, &mut req)?;
2133                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2134                        Ok(MlmeRequest::SetKeysReq { req: req.req, control_handle })
2135                    }
2136                    0x1e3524d20d190c8f => {
2137                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2138                        let mut req = fidl::new_empty!(
2139                            MlmeDeleteKeysReqRequest,
2140                            fidl::encoding::DefaultFuchsiaResourceDialect
2141                        );
2142                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeleteKeysReqRequest>(&header, _body_bytes, handles, &mut req)?;
2143                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2144                        Ok(MlmeRequest::DeleteKeysReq { req: req.req, control_handle })
2145                    }
2146                    0xc3c096924704d4 => {
2147                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2148                        let mut req = fidl::new_empty!(
2149                            MlmeEapolReqRequest,
2150                            fidl::encoding::DefaultFuchsiaResourceDialect
2151                        );
2152                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeEapolReqRequest>(&header, _body_bytes, handles, &mut req)?;
2153                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2154                        Ok(MlmeRequest::EapolReq { req: req.req, control_handle })
2155                    }
2156                    0x4e47065668890c8d => {
2157                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2158                        let mut req = fidl::new_empty!(
2159                            MlmeSetControlledPortRequest,
2160                            fidl::encoding::DefaultFuchsiaResourceDialect
2161                        );
2162                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetControlledPortRequest>(&header, _body_bytes, handles, &mut req)?;
2163                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2164                        Ok(MlmeRequest::SetControlledPort { req: req.req, control_handle })
2165                    }
2166                    0x6ee3e7f63f2b7bc0 => {
2167                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2168                        let mut req = fidl::new_empty!(
2169                            fidl::encoding::EmptyPayload,
2170                            fidl::encoding::DefaultFuchsiaResourceDialect
2171                        );
2172                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2173                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2174                        Ok(MlmeRequest::QueryDeviceInfo {
2175                            responder: MlmeQueryDeviceInfoResponder {
2176                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2177                                tx_id: header.tx_id,
2178                            },
2179                        })
2180                    }
2181                    0x4ac57b8eee721a2 => {
2182                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2183                        let mut req = fidl::new_empty!(
2184                            fidl::encoding::EmptyPayload,
2185                            fidl::encoding::DefaultFuchsiaResourceDialect
2186                        );
2187                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2188                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2189                        Ok(MlmeRequest::QueryDiscoverySupport {
2190                            responder: MlmeQueryDiscoverySupportResponder {
2191                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2192                                tx_id: header.tx_id,
2193                            },
2194                        })
2195                    }
2196                    0x70d23f3b08382854 => {
2197                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2198                        let mut req = fidl::new_empty!(
2199                            fidl::encoding::EmptyPayload,
2200                            fidl::encoding::DefaultFuchsiaResourceDialect
2201                        );
2202                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2203                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2204                        Ok(MlmeRequest::QueryMacSublayerSupport {
2205                            responder: MlmeQueryMacSublayerSupportResponder {
2206                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2207                                tx_id: header.tx_id,
2208                            },
2209                        })
2210                    }
2211                    0x2512eb3424620151 => {
2212                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2213                        let mut req = fidl::new_empty!(
2214                            fidl::encoding::EmptyPayload,
2215                            fidl::encoding::DefaultFuchsiaResourceDialect
2216                        );
2217                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2218                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2219                        Ok(MlmeRequest::QuerySecuritySupport {
2220                            responder: MlmeQuerySecuritySupportResponder {
2221                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2222                                tx_id: header.tx_id,
2223                            },
2224                        })
2225                    }
2226                    0x28ed024e9d883010 => {
2227                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2228                        let mut req = fidl::new_empty!(
2229                            fidl::encoding::EmptyPayload,
2230                            fidl::encoding::DefaultFuchsiaResourceDialect
2231                        );
2232                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2233                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2234                        Ok(MlmeRequest::QuerySpectrumManagementSupport {
2235                            responder: MlmeQuerySpectrumManagementSupportResponder {
2236                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2237                                tx_id: header.tx_id,
2238                            },
2239                        })
2240                    }
2241                    0x1598879b70332c99 => {
2242                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2243                        let mut req = fidl::new_empty!(
2244                            fidl::encoding::EmptyPayload,
2245                            fidl::encoding::DefaultFuchsiaResourceDialect
2246                        );
2247                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2248                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2249                        Ok(MlmeRequest::QueryTelemetrySupport {
2250                            responder: MlmeQueryTelemetrySupportResponder {
2251                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2252                                tx_id: header.tx_id,
2253                            },
2254                        })
2255                    }
2256                    0xede1a8342d1b211 => {
2257                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2258                        let mut req = fidl::new_empty!(
2259                            fidl::encoding::EmptyPayload,
2260                            fidl::encoding::DefaultFuchsiaResourceDialect
2261                        );
2262                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2263                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2264                        Ok(MlmeRequest::GetIfaceStats {
2265                            responder: MlmeGetIfaceStatsResponder {
2266                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2267                                tx_id: header.tx_id,
2268                            },
2269                        })
2270                    }
2271                    0x1979c9d3449f8675 => {
2272                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2273                        let mut req = fidl::new_empty!(
2274                            fidl::encoding::EmptyPayload,
2275                            fidl::encoding::DefaultFuchsiaResourceDialect
2276                        );
2277                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2278                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2279                        Ok(MlmeRequest::GetIfaceHistogramStats {
2280                            responder: MlmeGetIfaceHistogramStatsResponder {
2281                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2282                                tx_id: header.tx_id,
2283                            },
2284                        })
2285                    }
2286                    0x4ac5d1e66fe1ffd5 => {
2287                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2288                        let mut req = fidl::new_empty!(
2289                            fidl::encoding::EmptyPayload,
2290                            fidl::encoding::DefaultFuchsiaResourceDialect
2291                        );
2292                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2293                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2294                        Ok(MlmeRequest::ListMinstrelPeers {
2295                            responder: MlmeListMinstrelPeersResponder {
2296                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2297                                tx_id: header.tx_id,
2298                            },
2299                        })
2300                    }
2301                    0x2f688b1245323f4b => {
2302                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2303                        let mut req = fidl::new_empty!(
2304                            MlmeGetMinstrelStatsRequest,
2305                            fidl::encoding::DefaultFuchsiaResourceDialect
2306                        );
2307                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeGetMinstrelStatsRequest>(&header, _body_bytes, handles, &mut req)?;
2308                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2309                        Ok(MlmeRequest::GetMinstrelStats {
2310                            req: req.req,
2311
2312                            responder: MlmeGetMinstrelStatsResponder {
2313                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2314                                tx_id: header.tx_id,
2315                            },
2316                        })
2317                    }
2318                    0x23b369ed5749ee69 => {
2319                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2320                        let mut req = fidl::new_empty!(
2321                            MlmeStartCaptureFramesRequest,
2322                            fidl::encoding::DefaultFuchsiaResourceDialect
2323                        );
2324                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartCaptureFramesRequest>(&header, _body_bytes, handles, &mut req)?;
2325                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2326                        Ok(MlmeRequest::StartCaptureFrames {
2327                            req: req.req,
2328
2329                            responder: MlmeStartCaptureFramesResponder {
2330                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2331                                tx_id: header.tx_id,
2332                            },
2333                        })
2334                    }
2335                    0x2f1aebbc68bf7c54 => {
2336                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2337                        let mut req = fidl::new_empty!(
2338                            fidl::encoding::EmptyPayload,
2339                            fidl::encoding::DefaultFuchsiaResourceDialect
2340                        );
2341                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2342                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2343                        Ok(MlmeRequest::StopCaptureFrames { control_handle })
2344                    }
2345                    0x28477bd2f7a5ab0c => {
2346                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2347                        let mut req = fidl::new_empty!(
2348                            MlmeSaeHandshakeRespRequest,
2349                            fidl::encoding::DefaultFuchsiaResourceDialect
2350                        );
2351                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSaeHandshakeRespRequest>(&header, _body_bytes, handles, &mut req)?;
2352                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2353                        Ok(MlmeRequest::SaeHandshakeResp { resp: req.resp, control_handle })
2354                    }
2355                    0x7700c0d536733d8c => {
2356                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2357                        let mut req = fidl::new_empty!(
2358                            MlmeSaeFrameTxRequest,
2359                            fidl::encoding::DefaultFuchsiaResourceDialect
2360                        );
2361                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSaeFrameTxRequest>(&header, _body_bytes, handles, &mut req)?;
2362                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2363                        Ok(MlmeRequest::SaeFrameTx { frame: req.frame, control_handle })
2364                    }
2365                    0xef4851f6088fede => {
2366                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2367                        let mut req = fidl::new_empty!(
2368                            fidl::encoding::EmptyPayload,
2369                            fidl::encoding::DefaultFuchsiaResourceDialect
2370                        );
2371                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2372                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2373                        Ok(MlmeRequest::WmmStatusReq { control_handle })
2374                    }
2375                    0x7aea59787cfd385a => {
2376                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2377                        let mut req = fidl::new_empty!(
2378                            MlmeFinalizeAssociationReqRequest,
2379                            fidl::encoding::DefaultFuchsiaResourceDialect
2380                        );
2381                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeFinalizeAssociationReqRequest>(&header, _body_bytes, handles, &mut req)?;
2382                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2383                        Ok(MlmeRequest::FinalizeAssociationReq {
2384                            negotiated_capabilities: req.negotiated_capabilities,
2385
2386                            control_handle,
2387                        })
2388                    }
2389                    _ => Err(fidl::Error::UnknownOrdinal {
2390                        ordinal: header.ordinal,
2391                        protocol_name: <MlmeMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2392                    }),
2393                }))
2394            },
2395        )
2396    }
2397}
2398
2399#[derive(Debug)]
2400pub enum MlmeRequest {
2401    StartScan {
2402        req: ScanRequest,
2403        control_handle: MlmeControlHandle,
2404    },
2405    ConnectReq {
2406        req: ConnectRequest,
2407        control_handle: MlmeControlHandle,
2408    },
2409    ReconnectReq {
2410        req: ReconnectRequest,
2411        control_handle: MlmeControlHandle,
2412    },
2413    /// Initiate a roam attempt (SME-initiated).
2414    RoamReq {
2415        req: RoamRequest,
2416        control_handle: MlmeControlHandle,
2417    },
2418    AuthenticateResp {
2419        resp: AuthenticateResponse,
2420        control_handle: MlmeControlHandle,
2421    },
2422    DeauthenticateReq {
2423        req: DeauthenticateRequest,
2424        control_handle: MlmeControlHandle,
2425    },
2426    AssociateResp {
2427        resp: AssociateResponse,
2428        control_handle: MlmeControlHandle,
2429    },
2430    DisassociateReq {
2431        req: DisassociateRequest,
2432        control_handle: MlmeControlHandle,
2433    },
2434    ResetReq {
2435        req: ResetRequest,
2436        control_handle: MlmeControlHandle,
2437    },
2438    StartReq {
2439        req: StartRequest,
2440        control_handle: MlmeControlHandle,
2441    },
2442    StopReq {
2443        req: StopRequest,
2444        control_handle: MlmeControlHandle,
2445    },
2446    SetKeysReq {
2447        req: SetKeysRequest,
2448        control_handle: MlmeControlHandle,
2449    },
2450    DeleteKeysReq {
2451        req: DeleteKeysRequest,
2452        control_handle: MlmeControlHandle,
2453    },
2454    EapolReq {
2455        req: EapolRequest,
2456        control_handle: MlmeControlHandle,
2457    },
2458    SetControlledPort {
2459        req: SetControlledPortRequest,
2460        control_handle: MlmeControlHandle,
2461    },
2462    QueryDeviceInfo {
2463        responder: MlmeQueryDeviceInfoResponder,
2464    },
2465    QueryDiscoverySupport {
2466        responder: MlmeQueryDiscoverySupportResponder,
2467    },
2468    QueryMacSublayerSupport {
2469        responder: MlmeQueryMacSublayerSupportResponder,
2470    },
2471    QuerySecuritySupport {
2472        responder: MlmeQuerySecuritySupportResponder,
2473    },
2474    QuerySpectrumManagementSupport {
2475        responder: MlmeQuerySpectrumManagementSupportResponder,
2476    },
2477    QueryTelemetrySupport {
2478        responder: MlmeQueryTelemetrySupportResponder,
2479    },
2480    GetIfaceStats {
2481        responder: MlmeGetIfaceStatsResponder,
2482    },
2483    GetIfaceHistogramStats {
2484        responder: MlmeGetIfaceHistogramStatsResponder,
2485    },
2486    ListMinstrelPeers {
2487        responder: MlmeListMinstrelPeersResponder,
2488    },
2489    GetMinstrelStats {
2490        req: MinstrelStatsRequest,
2491        responder: MlmeGetMinstrelStatsResponder,
2492    },
2493    StartCaptureFrames {
2494        req: StartCaptureFramesRequest,
2495        responder: MlmeStartCaptureFramesResponder,
2496    },
2497    StopCaptureFrames {
2498        control_handle: MlmeControlHandle,
2499    },
2500    /// Notifies that SAE authentication is completed.
2501    SaeHandshakeResp {
2502        resp: SaeHandshakeResponse,
2503        control_handle: MlmeControlHandle,
2504    },
2505    /// Transmits SAE frame (if SME is managing SAE authentication).
2506    SaeFrameTx {
2507        frame: SaeFrame,
2508        control_handle: MlmeControlHandle,
2509    },
2510    WmmStatusReq {
2511        control_handle: MlmeControlHandle,
2512    },
2513    FinalizeAssociationReq {
2514        negotiated_capabilities: NegotiatedCapabilities,
2515        control_handle: MlmeControlHandle,
2516    },
2517}
2518
2519impl MlmeRequest {
2520    #[allow(irrefutable_let_patterns)]
2521    pub fn into_start_scan(self) -> Option<(ScanRequest, MlmeControlHandle)> {
2522        if let MlmeRequest::StartScan { req, control_handle } = self {
2523            Some((req, control_handle))
2524        } else {
2525            None
2526        }
2527    }
2528
2529    #[allow(irrefutable_let_patterns)]
2530    pub fn into_connect_req(self) -> Option<(ConnectRequest, MlmeControlHandle)> {
2531        if let MlmeRequest::ConnectReq { req, control_handle } = self {
2532            Some((req, control_handle))
2533        } else {
2534            None
2535        }
2536    }
2537
2538    #[allow(irrefutable_let_patterns)]
2539    pub fn into_reconnect_req(self) -> Option<(ReconnectRequest, MlmeControlHandle)> {
2540        if let MlmeRequest::ReconnectReq { req, control_handle } = self {
2541            Some((req, control_handle))
2542        } else {
2543            None
2544        }
2545    }
2546
2547    #[allow(irrefutable_let_patterns)]
2548    pub fn into_roam_req(self) -> Option<(RoamRequest, MlmeControlHandle)> {
2549        if let MlmeRequest::RoamReq { req, control_handle } = self {
2550            Some((req, control_handle))
2551        } else {
2552            None
2553        }
2554    }
2555
2556    #[allow(irrefutable_let_patterns)]
2557    pub fn into_authenticate_resp(self) -> Option<(AuthenticateResponse, MlmeControlHandle)> {
2558        if let MlmeRequest::AuthenticateResp { resp, control_handle } = self {
2559            Some((resp, control_handle))
2560        } else {
2561            None
2562        }
2563    }
2564
2565    #[allow(irrefutable_let_patterns)]
2566    pub fn into_deauthenticate_req(self) -> Option<(DeauthenticateRequest, MlmeControlHandle)> {
2567        if let MlmeRequest::DeauthenticateReq { req, control_handle } = self {
2568            Some((req, control_handle))
2569        } else {
2570            None
2571        }
2572    }
2573
2574    #[allow(irrefutable_let_patterns)]
2575    pub fn into_associate_resp(self) -> Option<(AssociateResponse, MlmeControlHandle)> {
2576        if let MlmeRequest::AssociateResp { resp, control_handle } = self {
2577            Some((resp, control_handle))
2578        } else {
2579            None
2580        }
2581    }
2582
2583    #[allow(irrefutable_let_patterns)]
2584    pub fn into_disassociate_req(self) -> Option<(DisassociateRequest, MlmeControlHandle)> {
2585        if let MlmeRequest::DisassociateReq { req, control_handle } = self {
2586            Some((req, control_handle))
2587        } else {
2588            None
2589        }
2590    }
2591
2592    #[allow(irrefutable_let_patterns)]
2593    pub fn into_reset_req(self) -> Option<(ResetRequest, MlmeControlHandle)> {
2594        if let MlmeRequest::ResetReq { req, control_handle } = self {
2595            Some((req, control_handle))
2596        } else {
2597            None
2598        }
2599    }
2600
2601    #[allow(irrefutable_let_patterns)]
2602    pub fn into_start_req(self) -> Option<(StartRequest, MlmeControlHandle)> {
2603        if let MlmeRequest::StartReq { req, control_handle } = self {
2604            Some((req, control_handle))
2605        } else {
2606            None
2607        }
2608    }
2609
2610    #[allow(irrefutable_let_patterns)]
2611    pub fn into_stop_req(self) -> Option<(StopRequest, MlmeControlHandle)> {
2612        if let MlmeRequest::StopReq { req, control_handle } = self {
2613            Some((req, control_handle))
2614        } else {
2615            None
2616        }
2617    }
2618
2619    #[allow(irrefutable_let_patterns)]
2620    pub fn into_set_keys_req(self) -> Option<(SetKeysRequest, MlmeControlHandle)> {
2621        if let MlmeRequest::SetKeysReq { req, control_handle } = self {
2622            Some((req, control_handle))
2623        } else {
2624            None
2625        }
2626    }
2627
2628    #[allow(irrefutable_let_patterns)]
2629    pub fn into_delete_keys_req(self) -> Option<(DeleteKeysRequest, MlmeControlHandle)> {
2630        if let MlmeRequest::DeleteKeysReq { req, control_handle } = self {
2631            Some((req, control_handle))
2632        } else {
2633            None
2634        }
2635    }
2636
2637    #[allow(irrefutable_let_patterns)]
2638    pub fn into_eapol_req(self) -> Option<(EapolRequest, MlmeControlHandle)> {
2639        if let MlmeRequest::EapolReq { req, control_handle } = self {
2640            Some((req, control_handle))
2641        } else {
2642            None
2643        }
2644    }
2645
2646    #[allow(irrefutable_let_patterns)]
2647    pub fn into_set_controlled_port(self) -> Option<(SetControlledPortRequest, MlmeControlHandle)> {
2648        if let MlmeRequest::SetControlledPort { req, control_handle } = self {
2649            Some((req, control_handle))
2650        } else {
2651            None
2652        }
2653    }
2654
2655    #[allow(irrefutable_let_patterns)]
2656    pub fn into_query_device_info(self) -> Option<(MlmeQueryDeviceInfoResponder)> {
2657        if let MlmeRequest::QueryDeviceInfo { responder } = self {
2658            Some((responder))
2659        } else {
2660            None
2661        }
2662    }
2663
2664    #[allow(irrefutable_let_patterns)]
2665    pub fn into_query_discovery_support(self) -> Option<(MlmeQueryDiscoverySupportResponder)> {
2666        if let MlmeRequest::QueryDiscoverySupport { responder } = self {
2667            Some((responder))
2668        } else {
2669            None
2670        }
2671    }
2672
2673    #[allow(irrefutable_let_patterns)]
2674    pub fn into_query_mac_sublayer_support(self) -> Option<(MlmeQueryMacSublayerSupportResponder)> {
2675        if let MlmeRequest::QueryMacSublayerSupport { responder } = self {
2676            Some((responder))
2677        } else {
2678            None
2679        }
2680    }
2681
2682    #[allow(irrefutable_let_patterns)]
2683    pub fn into_query_security_support(self) -> Option<(MlmeQuerySecuritySupportResponder)> {
2684        if let MlmeRequest::QuerySecuritySupport { responder } = self {
2685            Some((responder))
2686        } else {
2687            None
2688        }
2689    }
2690
2691    #[allow(irrefutable_let_patterns)]
2692    pub fn into_query_spectrum_management_support(
2693        self,
2694    ) -> Option<(MlmeQuerySpectrumManagementSupportResponder)> {
2695        if let MlmeRequest::QuerySpectrumManagementSupport { responder } = self {
2696            Some((responder))
2697        } else {
2698            None
2699        }
2700    }
2701
2702    #[allow(irrefutable_let_patterns)]
2703    pub fn into_query_telemetry_support(self) -> Option<(MlmeQueryTelemetrySupportResponder)> {
2704        if let MlmeRequest::QueryTelemetrySupport { responder } = self {
2705            Some((responder))
2706        } else {
2707            None
2708        }
2709    }
2710
2711    #[allow(irrefutable_let_patterns)]
2712    pub fn into_get_iface_stats(self) -> Option<(MlmeGetIfaceStatsResponder)> {
2713        if let MlmeRequest::GetIfaceStats { responder } = self {
2714            Some((responder))
2715        } else {
2716            None
2717        }
2718    }
2719
2720    #[allow(irrefutable_let_patterns)]
2721    pub fn into_get_iface_histogram_stats(self) -> Option<(MlmeGetIfaceHistogramStatsResponder)> {
2722        if let MlmeRequest::GetIfaceHistogramStats { responder } = self {
2723            Some((responder))
2724        } else {
2725            None
2726        }
2727    }
2728
2729    #[allow(irrefutable_let_patterns)]
2730    pub fn into_list_minstrel_peers(self) -> Option<(MlmeListMinstrelPeersResponder)> {
2731        if let MlmeRequest::ListMinstrelPeers { responder } = self {
2732            Some((responder))
2733        } else {
2734            None
2735        }
2736    }
2737
2738    #[allow(irrefutable_let_patterns)]
2739    pub fn into_get_minstrel_stats(
2740        self,
2741    ) -> Option<(MinstrelStatsRequest, MlmeGetMinstrelStatsResponder)> {
2742        if let MlmeRequest::GetMinstrelStats { req, responder } = self {
2743            Some((req, responder))
2744        } else {
2745            None
2746        }
2747    }
2748
2749    #[allow(irrefutable_let_patterns)]
2750    pub fn into_start_capture_frames(
2751        self,
2752    ) -> Option<(StartCaptureFramesRequest, MlmeStartCaptureFramesResponder)> {
2753        if let MlmeRequest::StartCaptureFrames { req, responder } = self {
2754            Some((req, responder))
2755        } else {
2756            None
2757        }
2758    }
2759
2760    #[allow(irrefutable_let_patterns)]
2761    pub fn into_stop_capture_frames(self) -> Option<(MlmeControlHandle)> {
2762        if let MlmeRequest::StopCaptureFrames { control_handle } = self {
2763            Some((control_handle))
2764        } else {
2765            None
2766        }
2767    }
2768
2769    #[allow(irrefutable_let_patterns)]
2770    pub fn into_sae_handshake_resp(self) -> Option<(SaeHandshakeResponse, MlmeControlHandle)> {
2771        if let MlmeRequest::SaeHandshakeResp { resp, control_handle } = self {
2772            Some((resp, control_handle))
2773        } else {
2774            None
2775        }
2776    }
2777
2778    #[allow(irrefutable_let_patterns)]
2779    pub fn into_sae_frame_tx(self) -> Option<(SaeFrame, MlmeControlHandle)> {
2780        if let MlmeRequest::SaeFrameTx { frame, control_handle } = self {
2781            Some((frame, control_handle))
2782        } else {
2783            None
2784        }
2785    }
2786
2787    #[allow(irrefutable_let_patterns)]
2788    pub fn into_wmm_status_req(self) -> Option<(MlmeControlHandle)> {
2789        if let MlmeRequest::WmmStatusReq { control_handle } = self {
2790            Some((control_handle))
2791        } else {
2792            None
2793        }
2794    }
2795
2796    #[allow(irrefutable_let_patterns)]
2797    pub fn into_finalize_association_req(
2798        self,
2799    ) -> Option<(NegotiatedCapabilities, MlmeControlHandle)> {
2800        if let MlmeRequest::FinalizeAssociationReq { negotiated_capabilities, control_handle } =
2801            self
2802        {
2803            Some((negotiated_capabilities, control_handle))
2804        } else {
2805            None
2806        }
2807    }
2808
2809    /// Name of the method defined in FIDL
2810    pub fn method_name(&self) -> &'static str {
2811        match *self {
2812            MlmeRequest::StartScan { .. } => "start_scan",
2813            MlmeRequest::ConnectReq { .. } => "connect_req",
2814            MlmeRequest::ReconnectReq { .. } => "reconnect_req",
2815            MlmeRequest::RoamReq { .. } => "roam_req",
2816            MlmeRequest::AuthenticateResp { .. } => "authenticate_resp",
2817            MlmeRequest::DeauthenticateReq { .. } => "deauthenticate_req",
2818            MlmeRequest::AssociateResp { .. } => "associate_resp",
2819            MlmeRequest::DisassociateReq { .. } => "disassociate_req",
2820            MlmeRequest::ResetReq { .. } => "reset_req",
2821            MlmeRequest::StartReq { .. } => "start_req",
2822            MlmeRequest::StopReq { .. } => "stop_req",
2823            MlmeRequest::SetKeysReq { .. } => "set_keys_req",
2824            MlmeRequest::DeleteKeysReq { .. } => "delete_keys_req",
2825            MlmeRequest::EapolReq { .. } => "eapol_req",
2826            MlmeRequest::SetControlledPort { .. } => "set_controlled_port",
2827            MlmeRequest::QueryDeviceInfo { .. } => "query_device_info",
2828            MlmeRequest::QueryDiscoverySupport { .. } => "query_discovery_support",
2829            MlmeRequest::QueryMacSublayerSupport { .. } => "query_mac_sublayer_support",
2830            MlmeRequest::QuerySecuritySupport { .. } => "query_security_support",
2831            MlmeRequest::QuerySpectrumManagementSupport { .. } => {
2832                "query_spectrum_management_support"
2833            }
2834            MlmeRequest::QueryTelemetrySupport { .. } => "query_telemetry_support",
2835            MlmeRequest::GetIfaceStats { .. } => "get_iface_stats",
2836            MlmeRequest::GetIfaceHistogramStats { .. } => "get_iface_histogram_stats",
2837            MlmeRequest::ListMinstrelPeers { .. } => "list_minstrel_peers",
2838            MlmeRequest::GetMinstrelStats { .. } => "get_minstrel_stats",
2839            MlmeRequest::StartCaptureFrames { .. } => "start_capture_frames",
2840            MlmeRequest::StopCaptureFrames { .. } => "stop_capture_frames",
2841            MlmeRequest::SaeHandshakeResp { .. } => "sae_handshake_resp",
2842            MlmeRequest::SaeFrameTx { .. } => "sae_frame_tx",
2843            MlmeRequest::WmmStatusReq { .. } => "wmm_status_req",
2844            MlmeRequest::FinalizeAssociationReq { .. } => "finalize_association_req",
2845        }
2846    }
2847}
2848
2849#[derive(Debug, Clone)]
2850pub struct MlmeControlHandle {
2851    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2852}
2853
2854impl fidl::endpoints::ControlHandle for MlmeControlHandle {
2855    fn shutdown(&self) {
2856        self.inner.shutdown()
2857    }
2858    fn shutdown_with_epitaph(&self, status: zx_status::Status) {
2859        self.inner.shutdown_with_epitaph(status)
2860    }
2861
2862    fn is_closed(&self) -> bool {
2863        self.inner.channel().is_closed()
2864    }
2865    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
2866        self.inner.channel().on_closed()
2867    }
2868
2869    #[cfg(target_os = "fuchsia")]
2870    fn signal_peer(
2871        &self,
2872        clear_mask: zx::Signals,
2873        set_mask: zx::Signals,
2874    ) -> Result<(), zx_status::Status> {
2875        use fidl::Peered;
2876        self.inner.channel().signal_peer(clear_mask, set_mask)
2877    }
2878}
2879
2880impl MlmeControlHandle {
2881    pub fn send_on_scan_result(&self, mut result: &ScanResult) -> Result<(), fidl::Error> {
2882        self.inner.send::<MlmeOnScanResultRequest>(
2883            (result,),
2884            0,
2885            0x681af7466a75074d,
2886            fidl::encoding::DynamicFlags::empty(),
2887        )
2888    }
2889
2890    pub fn send_on_scan_end(&self, mut end: &ScanEnd) -> Result<(), fidl::Error> {
2891        self.inner.send::<MlmeOnScanEndRequest>(
2892            (end,),
2893            0,
2894            0x7f2702d253e7ca59,
2895            fidl::encoding::DynamicFlags::empty(),
2896        )
2897    }
2898
2899    pub fn send_connect_conf(&self, mut resp: &ConnectConfirm) -> Result<(), fidl::Error> {
2900        self.inner.send::<MlmeConnectConfRequest>(
2901            (resp,),
2902            0,
2903            0x77b27623279b981e,
2904            fidl::encoding::DynamicFlags::empty(),
2905        )
2906    }
2907
2908    pub fn send_roam_conf(&self, mut conf: &RoamConfirm) -> Result<(), fidl::Error> {
2909        self.inner.send::<MlmeRoamConfRequest>(
2910            (conf,),
2911            0,
2912            0x3f608034faa054bc,
2913            fidl::encoding::DynamicFlags::empty(),
2914        )
2915    }
2916
2917    pub fn send_roam_start_ind(&self, mut ind: &RoamStartIndication) -> Result<(), fidl::Error> {
2918        self.inner.send::<MlmeRoamStartIndRequest>(
2919            (ind,),
2920            0,
2921            0x270a1ec78672d094,
2922            fidl::encoding::DynamicFlags::empty(),
2923        )
2924    }
2925
2926    pub fn send_roam_result_ind(&self, mut ind: &RoamResultIndication) -> Result<(), fidl::Error> {
2927        self.inner.send::<MlmeRoamResultIndRequest>(
2928            (ind,),
2929            0,
2930            0x26d074364fc84865,
2931            fidl::encoding::DynamicFlags::empty(),
2932        )
2933    }
2934
2935    pub fn send_authenticate_ind(
2936        &self,
2937        mut ind: &AuthenticateIndication,
2938    ) -> Result<(), fidl::Error> {
2939        self.inner.send::<MlmeAuthenticateIndRequest>(
2940            (ind,),
2941            0,
2942            0x460f49ae891adbe9,
2943            fidl::encoding::DynamicFlags::empty(),
2944        )
2945    }
2946
2947    pub fn send_deauthenticate_conf(
2948        &self,
2949        mut resp: &DeauthenticateConfirm,
2950    ) -> Result<(), fidl::Error> {
2951        self.inner.send::<MlmeDeauthenticateConfRequest>(
2952            (resp,),
2953            0,
2954            0x3b44debc21b88c8c,
2955            fidl::encoding::DynamicFlags::empty(),
2956        )
2957    }
2958
2959    pub fn send_deauthenticate_ind(
2960        &self,
2961        mut ind: &DeauthenticateIndication,
2962    ) -> Result<(), fidl::Error> {
2963        self.inner.send::<MlmeDeauthenticateIndRequest>(
2964            (ind,),
2965            0,
2966            0x7ee0889b326da1d7,
2967            fidl::encoding::DynamicFlags::empty(),
2968        )
2969    }
2970
2971    pub fn send_associate_ind(&self, mut ind: &AssociateIndication) -> Result<(), fidl::Error> {
2972        self.inner.send::<MlmeAssociateIndRequest>(
2973            (ind,),
2974            0,
2975            0x6a86f20e3063dd63,
2976            fidl::encoding::DynamicFlags::empty(),
2977        )
2978    }
2979
2980    pub fn send_disassociate_conf(
2981        &self,
2982        mut resp: &DisassociateConfirm,
2983    ) -> Result<(), fidl::Error> {
2984        self.inner.send::<MlmeDisassociateConfRequest>(
2985            (resp,),
2986            0,
2987            0x61345fbce732a28d,
2988            fidl::encoding::DynamicFlags::empty(),
2989        )
2990    }
2991
2992    pub fn send_disassociate_ind(
2993        &self,
2994        mut ind: &DisassociateIndication,
2995    ) -> Result<(), fidl::Error> {
2996        self.inner.send::<MlmeDisassociateIndRequest>(
2997            (ind,),
2998            0,
2999            0x77ac0ebf387c1f35,
3000            fidl::encoding::DynamicFlags::empty(),
3001        )
3002    }
3003
3004    pub fn send_start_conf(&self, mut resp: &StartConfirm) -> Result<(), fidl::Error> {
3005        self.inner.send::<MlmeStartConfRequest>(
3006            (resp,),
3007            0,
3008            0x15ea6cdf3b8382b3,
3009            fidl::encoding::DynamicFlags::empty(),
3010        )
3011    }
3012
3013    pub fn send_stop_conf(&self, mut resp: &StopConfirm) -> Result<(), fidl::Error> {
3014        self.inner.send::<MlmeStopConfRequest>(
3015            (resp,),
3016            0,
3017            0x50b426ef4a84a2df,
3018            fidl::encoding::DynamicFlags::empty(),
3019        )
3020    }
3021
3022    pub fn send_set_keys_conf(&self, mut conf: &SetKeysConfirm) -> Result<(), fidl::Error> {
3023        self.inner.send::<MlmeSetKeysConfRequest>(
3024            (conf,),
3025            0,
3026            0x5bafb3a8d4039380,
3027            fidl::encoding::DynamicFlags::empty(),
3028        )
3029    }
3030
3031    pub fn send_eapol_conf(&self, mut resp: &EapolConfirm) -> Result<(), fidl::Error> {
3032        self.inner.send::<MlmeEapolConfRequest>(
3033            (resp,),
3034            0,
3035            0x6ffa21f4ee73ce64,
3036            fidl::encoding::DynamicFlags::empty(),
3037        )
3038    }
3039
3040    pub fn send_signal_report(
3041        &self,
3042        mut ind: &fidl_fuchsia_wlan_internal::SignalReportIndication,
3043    ) -> Result<(), fidl::Error> {
3044        self.inner.send::<MlmeSignalReportRequest>(
3045            (ind,),
3046            0,
3047            0x48f32a876aa53d8f,
3048            fidl::encoding::DynamicFlags::empty(),
3049        )
3050    }
3051
3052    pub fn send_eapol_ind(&self, mut ind: &EapolIndication) -> Result<(), fidl::Error> {
3053        self.inner.send::<MlmeEapolIndRequest>(
3054            (ind,),
3055            0,
3056            0x7038dca46a3142fc,
3057            fidl::encoding::DynamicFlags::empty(),
3058        )
3059    }
3060
3061    pub fn send_relay_captured_frame(
3062        &self,
3063        mut result: &CapturedFrameResult,
3064    ) -> Result<(), fidl::Error> {
3065        self.inner.send::<MlmeRelayCapturedFrameRequest>(
3066            (result,),
3067            0,
3068            0x6f00a6f3cff9b1f5,
3069            fidl::encoding::DynamicFlags::empty(),
3070        )
3071    }
3072
3073    pub fn send_on_channel_switched(
3074        &self,
3075        mut info: &fidl_fuchsia_wlan_internal::ChannelSwitchInfo,
3076    ) -> Result<(), fidl::Error> {
3077        self.inner.send::<MlmeOnChannelSwitchedRequest>(
3078            (info,),
3079            0,
3080            0x581750594e4c0c1,
3081            fidl::encoding::DynamicFlags::empty(),
3082        )
3083    }
3084
3085    pub fn send_on_pmk_available(&self, mut info: &PmkInfo) -> Result<(), fidl::Error> {
3086        self.inner.send::<MlmeOnPmkAvailableRequest>(
3087            (info,),
3088            0,
3089            0x1314fc2c79643f90,
3090            fidl::encoding::DynamicFlags::empty(),
3091        )
3092    }
3093
3094    pub fn send_on_sae_handshake_ind(
3095        &self,
3096        mut ind: &SaeHandshakeIndication,
3097    ) -> Result<(), fidl::Error> {
3098        self.inner.send::<MlmeOnSaeHandshakeIndRequest>(
3099            (ind,),
3100            0,
3101            0x6308b10e18986d7e,
3102            fidl::encoding::DynamicFlags::empty(),
3103        )
3104    }
3105
3106    pub fn send_on_sae_frame_rx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
3107        self.inner.send::<MlmeOnSaeFrameRxRequest>(
3108            (frame,),
3109            0,
3110            0x4ebf51c86ef5f3cd,
3111            fidl::encoding::DynamicFlags::empty(),
3112        )
3113    }
3114
3115    pub fn send_on_wmm_status_resp(
3116        &self,
3117        mut status: i32,
3118        mut resp: &fidl_fuchsia_wlan_internal::WmmStatusResponse,
3119    ) -> Result<(), fidl::Error> {
3120        self.inner.send::<MlmeOnWmmStatusRespRequest>(
3121            (status, resp),
3122            0,
3123            0x53f056b432e7b5cb,
3124            fidl::encoding::DynamicFlags::empty(),
3125        )
3126    }
3127}
3128
3129#[must_use = "FIDL methods require a response to be sent"]
3130#[derive(Debug)]
3131pub struct MlmeQueryDeviceInfoResponder {
3132    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3133    tx_id: u32,
3134}
3135
3136/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3137/// if the responder is dropped without sending a response, so that the client
3138/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3139impl std::ops::Drop for MlmeQueryDeviceInfoResponder {
3140    fn drop(&mut self) {
3141        self.control_handle.shutdown();
3142        // Safety: drops once, never accessed again
3143        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3144    }
3145}
3146
3147impl fidl::endpoints::Responder for MlmeQueryDeviceInfoResponder {
3148    type ControlHandle = MlmeControlHandle;
3149
3150    fn control_handle(&self) -> &MlmeControlHandle {
3151        &self.control_handle
3152    }
3153
3154    fn drop_without_shutdown(mut self) {
3155        // Safety: drops once, never accessed again due to mem::forget
3156        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3157        // Prevent Drop from running (which would shut down the channel)
3158        std::mem::forget(self);
3159    }
3160}
3161
3162impl MlmeQueryDeviceInfoResponder {
3163    /// Sends a response to the FIDL transaction.
3164    ///
3165    /// Sets the channel to shutdown if an error occurs.
3166    pub fn send(self, mut info: &DeviceInfo) -> Result<(), fidl::Error> {
3167        let _result = self.send_raw(info);
3168        if _result.is_err() {
3169            self.control_handle.shutdown();
3170        }
3171        self.drop_without_shutdown();
3172        _result
3173    }
3174
3175    /// Similar to "send" but does not shutdown the channel if an error occurs.
3176    pub fn send_no_shutdown_on_err(self, mut info: &DeviceInfo) -> Result<(), fidl::Error> {
3177        let _result = self.send_raw(info);
3178        self.drop_without_shutdown();
3179        _result
3180    }
3181
3182    fn send_raw(&self, mut info: &DeviceInfo) -> Result<(), fidl::Error> {
3183        self.control_handle.inner.send::<MlmeQueryDeviceInfoResponse>(
3184            (info,),
3185            self.tx_id,
3186            0x6ee3e7f63f2b7bc0,
3187            fidl::encoding::DynamicFlags::empty(),
3188        )
3189    }
3190}
3191
3192#[must_use = "FIDL methods require a response to be sent"]
3193#[derive(Debug)]
3194pub struct MlmeQueryDiscoverySupportResponder {
3195    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3196    tx_id: u32,
3197}
3198
3199/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3200/// if the responder is dropped without sending a response, so that the client
3201/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3202impl std::ops::Drop for MlmeQueryDiscoverySupportResponder {
3203    fn drop(&mut self) {
3204        self.control_handle.shutdown();
3205        // Safety: drops once, never accessed again
3206        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3207    }
3208}
3209
3210impl fidl::endpoints::Responder for MlmeQueryDiscoverySupportResponder {
3211    type ControlHandle = MlmeControlHandle;
3212
3213    fn control_handle(&self) -> &MlmeControlHandle {
3214        &self.control_handle
3215    }
3216
3217    fn drop_without_shutdown(mut self) {
3218        // Safety: drops once, never accessed again due to mem::forget
3219        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3220        // Prevent Drop from running (which would shut down the channel)
3221        std::mem::forget(self);
3222    }
3223}
3224
3225impl MlmeQueryDiscoverySupportResponder {
3226    /// Sends a response to the FIDL transaction.
3227    ///
3228    /// Sets the channel to shutdown if an error occurs.
3229    pub fn send(
3230        self,
3231        mut resp: &fidl_fuchsia_wlan_common::DiscoverySupport,
3232    ) -> Result<(), fidl::Error> {
3233        let _result = self.send_raw(resp);
3234        if _result.is_err() {
3235            self.control_handle.shutdown();
3236        }
3237        self.drop_without_shutdown();
3238        _result
3239    }
3240
3241    /// Similar to "send" but does not shutdown the channel if an error occurs.
3242    pub fn send_no_shutdown_on_err(
3243        self,
3244        mut resp: &fidl_fuchsia_wlan_common::DiscoverySupport,
3245    ) -> Result<(), fidl::Error> {
3246        let _result = self.send_raw(resp);
3247        self.drop_without_shutdown();
3248        _result
3249    }
3250
3251    fn send_raw(
3252        &self,
3253        mut resp: &fidl_fuchsia_wlan_common::DiscoverySupport,
3254    ) -> Result<(), fidl::Error> {
3255        self.control_handle.inner.send::<MlmeQueryDiscoverySupportResponse>(
3256            (resp,),
3257            self.tx_id,
3258            0x4ac57b8eee721a2,
3259            fidl::encoding::DynamicFlags::empty(),
3260        )
3261    }
3262}
3263
3264#[must_use = "FIDL methods require a response to be sent"]
3265#[derive(Debug)]
3266pub struct MlmeQueryMacSublayerSupportResponder {
3267    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3268    tx_id: u32,
3269}
3270
3271/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3272/// if the responder is dropped without sending a response, so that the client
3273/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3274impl std::ops::Drop for MlmeQueryMacSublayerSupportResponder {
3275    fn drop(&mut self) {
3276        self.control_handle.shutdown();
3277        // Safety: drops once, never accessed again
3278        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3279    }
3280}
3281
3282impl fidl::endpoints::Responder for MlmeQueryMacSublayerSupportResponder {
3283    type ControlHandle = MlmeControlHandle;
3284
3285    fn control_handle(&self) -> &MlmeControlHandle {
3286        &self.control_handle
3287    }
3288
3289    fn drop_without_shutdown(mut self) {
3290        // Safety: drops once, never accessed again due to mem::forget
3291        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3292        // Prevent Drop from running (which would shut down the channel)
3293        std::mem::forget(self);
3294    }
3295}
3296
3297impl MlmeQueryMacSublayerSupportResponder {
3298    /// Sends a response to the FIDL transaction.
3299    ///
3300    /// Sets the channel to shutdown if an error occurs.
3301    pub fn send(
3302        self,
3303        mut resp: &fidl_fuchsia_wlan_common::MacSublayerSupport,
3304    ) -> Result<(), fidl::Error> {
3305        let _result = self.send_raw(resp);
3306        if _result.is_err() {
3307            self.control_handle.shutdown();
3308        }
3309        self.drop_without_shutdown();
3310        _result
3311    }
3312
3313    /// Similar to "send" but does not shutdown the channel if an error occurs.
3314    pub fn send_no_shutdown_on_err(
3315        self,
3316        mut resp: &fidl_fuchsia_wlan_common::MacSublayerSupport,
3317    ) -> Result<(), fidl::Error> {
3318        let _result = self.send_raw(resp);
3319        self.drop_without_shutdown();
3320        _result
3321    }
3322
3323    fn send_raw(
3324        &self,
3325        mut resp: &fidl_fuchsia_wlan_common::MacSublayerSupport,
3326    ) -> Result<(), fidl::Error> {
3327        self.control_handle.inner.send::<MlmeQueryMacSublayerSupportResponse>(
3328            (resp,),
3329            self.tx_id,
3330            0x70d23f3b08382854,
3331            fidl::encoding::DynamicFlags::empty(),
3332        )
3333    }
3334}
3335
3336#[must_use = "FIDL methods require a response to be sent"]
3337#[derive(Debug)]
3338pub struct MlmeQuerySecuritySupportResponder {
3339    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3340    tx_id: u32,
3341}
3342
3343/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3344/// if the responder is dropped without sending a response, so that the client
3345/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3346impl std::ops::Drop for MlmeQuerySecuritySupportResponder {
3347    fn drop(&mut self) {
3348        self.control_handle.shutdown();
3349        // Safety: drops once, never accessed again
3350        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3351    }
3352}
3353
3354impl fidl::endpoints::Responder for MlmeQuerySecuritySupportResponder {
3355    type ControlHandle = MlmeControlHandle;
3356
3357    fn control_handle(&self) -> &MlmeControlHandle {
3358        &self.control_handle
3359    }
3360
3361    fn drop_without_shutdown(mut self) {
3362        // Safety: drops once, never accessed again due to mem::forget
3363        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3364        // Prevent Drop from running (which would shut down the channel)
3365        std::mem::forget(self);
3366    }
3367}
3368
3369impl MlmeQuerySecuritySupportResponder {
3370    /// Sends a response to the FIDL transaction.
3371    ///
3372    /// Sets the channel to shutdown if an error occurs.
3373    pub fn send(
3374        self,
3375        mut resp: &fidl_fuchsia_wlan_common::SecuritySupport,
3376    ) -> Result<(), fidl::Error> {
3377        let _result = self.send_raw(resp);
3378        if _result.is_err() {
3379            self.control_handle.shutdown();
3380        }
3381        self.drop_without_shutdown();
3382        _result
3383    }
3384
3385    /// Similar to "send" but does not shutdown the channel if an error occurs.
3386    pub fn send_no_shutdown_on_err(
3387        self,
3388        mut resp: &fidl_fuchsia_wlan_common::SecuritySupport,
3389    ) -> Result<(), fidl::Error> {
3390        let _result = self.send_raw(resp);
3391        self.drop_without_shutdown();
3392        _result
3393    }
3394
3395    fn send_raw(
3396        &self,
3397        mut resp: &fidl_fuchsia_wlan_common::SecuritySupport,
3398    ) -> Result<(), fidl::Error> {
3399        self.control_handle.inner.send::<MlmeQuerySecuritySupportResponse>(
3400            (resp,),
3401            self.tx_id,
3402            0x2512eb3424620151,
3403            fidl::encoding::DynamicFlags::empty(),
3404        )
3405    }
3406}
3407
3408#[must_use = "FIDL methods require a response to be sent"]
3409#[derive(Debug)]
3410pub struct MlmeQuerySpectrumManagementSupportResponder {
3411    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3412    tx_id: u32,
3413}
3414
3415/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3416/// if the responder is dropped without sending a response, so that the client
3417/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3418impl std::ops::Drop for MlmeQuerySpectrumManagementSupportResponder {
3419    fn drop(&mut self) {
3420        self.control_handle.shutdown();
3421        // Safety: drops once, never accessed again
3422        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3423    }
3424}
3425
3426impl fidl::endpoints::Responder for MlmeQuerySpectrumManagementSupportResponder {
3427    type ControlHandle = MlmeControlHandle;
3428
3429    fn control_handle(&self) -> &MlmeControlHandle {
3430        &self.control_handle
3431    }
3432
3433    fn drop_without_shutdown(mut self) {
3434        // Safety: drops once, never accessed again due to mem::forget
3435        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3436        // Prevent Drop from running (which would shut down the channel)
3437        std::mem::forget(self);
3438    }
3439}
3440
3441impl MlmeQuerySpectrumManagementSupportResponder {
3442    /// Sends a response to the FIDL transaction.
3443    ///
3444    /// Sets the channel to shutdown if an error occurs.
3445    pub fn send(
3446        self,
3447        mut resp: &fidl_fuchsia_wlan_common::SpectrumManagementSupport,
3448    ) -> Result<(), fidl::Error> {
3449        let _result = self.send_raw(resp);
3450        if _result.is_err() {
3451            self.control_handle.shutdown();
3452        }
3453        self.drop_without_shutdown();
3454        _result
3455    }
3456
3457    /// Similar to "send" but does not shutdown the channel if an error occurs.
3458    pub fn send_no_shutdown_on_err(
3459        self,
3460        mut resp: &fidl_fuchsia_wlan_common::SpectrumManagementSupport,
3461    ) -> Result<(), fidl::Error> {
3462        let _result = self.send_raw(resp);
3463        self.drop_without_shutdown();
3464        _result
3465    }
3466
3467    fn send_raw(
3468        &self,
3469        mut resp: &fidl_fuchsia_wlan_common::SpectrumManagementSupport,
3470    ) -> Result<(), fidl::Error> {
3471        self.control_handle.inner.send::<MlmeQuerySpectrumManagementSupportResponse>(
3472            (resp,),
3473            self.tx_id,
3474            0x28ed024e9d883010,
3475            fidl::encoding::DynamicFlags::empty(),
3476        )
3477    }
3478}
3479
3480#[must_use = "FIDL methods require a response to be sent"]
3481#[derive(Debug)]
3482pub struct MlmeQueryTelemetrySupportResponder {
3483    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3484    tx_id: u32,
3485}
3486
3487/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3488/// if the responder is dropped without sending a response, so that the client
3489/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3490impl std::ops::Drop for MlmeQueryTelemetrySupportResponder {
3491    fn drop(&mut self) {
3492        self.control_handle.shutdown();
3493        // Safety: drops once, never accessed again
3494        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3495    }
3496}
3497
3498impl fidl::endpoints::Responder for MlmeQueryTelemetrySupportResponder {
3499    type ControlHandle = MlmeControlHandle;
3500
3501    fn control_handle(&self) -> &MlmeControlHandle {
3502        &self.control_handle
3503    }
3504
3505    fn drop_without_shutdown(mut self) {
3506        // Safety: drops once, never accessed again due to mem::forget
3507        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3508        // Prevent Drop from running (which would shut down the channel)
3509        std::mem::forget(self);
3510    }
3511}
3512
3513impl MlmeQueryTelemetrySupportResponder {
3514    /// Sends a response to the FIDL transaction.
3515    ///
3516    /// Sets the channel to shutdown if an error occurs.
3517    pub fn send(
3518        self,
3519        mut result: Result<&fidl_fuchsia_wlan_stats::TelemetrySupport, i32>,
3520    ) -> Result<(), fidl::Error> {
3521        let _result = self.send_raw(result);
3522        if _result.is_err() {
3523            self.control_handle.shutdown();
3524        }
3525        self.drop_without_shutdown();
3526        _result
3527    }
3528
3529    /// Similar to "send" but does not shutdown the channel if an error occurs.
3530    pub fn send_no_shutdown_on_err(
3531        self,
3532        mut result: Result<&fidl_fuchsia_wlan_stats::TelemetrySupport, i32>,
3533    ) -> Result<(), fidl::Error> {
3534        let _result = self.send_raw(result);
3535        self.drop_without_shutdown();
3536        _result
3537    }
3538
3539    fn send_raw(
3540        &self,
3541        mut result: Result<&fidl_fuchsia_wlan_stats::TelemetrySupport, i32>,
3542    ) -> Result<(), fidl::Error> {
3543        self.control_handle
3544            .inner
3545            .send::<fidl::encoding::ResultType<MlmeQueryTelemetrySupportResponse, i32>>(
3546                result.map(|resp| (resp,)),
3547                self.tx_id,
3548                0x1598879b70332c99,
3549                fidl::encoding::DynamicFlags::empty(),
3550            )
3551    }
3552}
3553
3554#[must_use = "FIDL methods require a response to be sent"]
3555#[derive(Debug)]
3556pub struct MlmeGetIfaceStatsResponder {
3557    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3558    tx_id: u32,
3559}
3560
3561/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3562/// if the responder is dropped without sending a response, so that the client
3563/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3564impl std::ops::Drop for MlmeGetIfaceStatsResponder {
3565    fn drop(&mut self) {
3566        self.control_handle.shutdown();
3567        // Safety: drops once, never accessed again
3568        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3569    }
3570}
3571
3572impl fidl::endpoints::Responder for MlmeGetIfaceStatsResponder {
3573    type ControlHandle = MlmeControlHandle;
3574
3575    fn control_handle(&self) -> &MlmeControlHandle {
3576        &self.control_handle
3577    }
3578
3579    fn drop_without_shutdown(mut self) {
3580        // Safety: drops once, never accessed again due to mem::forget
3581        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3582        // Prevent Drop from running (which would shut down the channel)
3583        std::mem::forget(self);
3584    }
3585}
3586
3587impl MlmeGetIfaceStatsResponder {
3588    /// Sends a response to the FIDL transaction.
3589    ///
3590    /// Sets the channel to shutdown if an error occurs.
3591    pub fn send(self, mut resp: &GetIfaceStatsResponse) -> Result<(), fidl::Error> {
3592        let _result = self.send_raw(resp);
3593        if _result.is_err() {
3594            self.control_handle.shutdown();
3595        }
3596        self.drop_without_shutdown();
3597        _result
3598    }
3599
3600    /// Similar to "send" but does not shutdown the channel if an error occurs.
3601    pub fn send_no_shutdown_on_err(
3602        self,
3603        mut resp: &GetIfaceStatsResponse,
3604    ) -> Result<(), fidl::Error> {
3605        let _result = self.send_raw(resp);
3606        self.drop_without_shutdown();
3607        _result
3608    }
3609
3610    fn send_raw(&self, mut resp: &GetIfaceStatsResponse) -> Result<(), fidl::Error> {
3611        self.control_handle.inner.send::<MlmeGetIfaceStatsResponse>(
3612            (resp,),
3613            self.tx_id,
3614            0xede1a8342d1b211,
3615            fidl::encoding::DynamicFlags::empty(),
3616        )
3617    }
3618}
3619
3620#[must_use = "FIDL methods require a response to be sent"]
3621#[derive(Debug)]
3622pub struct MlmeGetIfaceHistogramStatsResponder {
3623    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3624    tx_id: u32,
3625}
3626
3627/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3628/// if the responder is dropped without sending a response, so that the client
3629/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3630impl std::ops::Drop for MlmeGetIfaceHistogramStatsResponder {
3631    fn drop(&mut self) {
3632        self.control_handle.shutdown();
3633        // Safety: drops once, never accessed again
3634        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3635    }
3636}
3637
3638impl fidl::endpoints::Responder for MlmeGetIfaceHistogramStatsResponder {
3639    type ControlHandle = MlmeControlHandle;
3640
3641    fn control_handle(&self) -> &MlmeControlHandle {
3642        &self.control_handle
3643    }
3644
3645    fn drop_without_shutdown(mut self) {
3646        // Safety: drops once, never accessed again due to mem::forget
3647        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3648        // Prevent Drop from running (which would shut down the channel)
3649        std::mem::forget(self);
3650    }
3651}
3652
3653impl MlmeGetIfaceHistogramStatsResponder {
3654    /// Sends a response to the FIDL transaction.
3655    ///
3656    /// Sets the channel to shutdown if an error occurs.
3657    pub fn send(self, mut resp: &GetIfaceHistogramStatsResponse) -> Result<(), fidl::Error> {
3658        let _result = self.send_raw(resp);
3659        if _result.is_err() {
3660            self.control_handle.shutdown();
3661        }
3662        self.drop_without_shutdown();
3663        _result
3664    }
3665
3666    /// Similar to "send" but does not shutdown the channel if an error occurs.
3667    pub fn send_no_shutdown_on_err(
3668        self,
3669        mut resp: &GetIfaceHistogramStatsResponse,
3670    ) -> Result<(), fidl::Error> {
3671        let _result = self.send_raw(resp);
3672        self.drop_without_shutdown();
3673        _result
3674    }
3675
3676    fn send_raw(&self, mut resp: &GetIfaceHistogramStatsResponse) -> Result<(), fidl::Error> {
3677        self.control_handle.inner.send::<MlmeGetIfaceHistogramStatsResponse>(
3678            (resp,),
3679            self.tx_id,
3680            0x1979c9d3449f8675,
3681            fidl::encoding::DynamicFlags::empty(),
3682        )
3683    }
3684}
3685
3686#[must_use = "FIDL methods require a response to be sent"]
3687#[derive(Debug)]
3688pub struct MlmeListMinstrelPeersResponder {
3689    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3690    tx_id: u32,
3691}
3692
3693/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3694/// if the responder is dropped without sending a response, so that the client
3695/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3696impl std::ops::Drop for MlmeListMinstrelPeersResponder {
3697    fn drop(&mut self) {
3698        self.control_handle.shutdown();
3699        // Safety: drops once, never accessed again
3700        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3701    }
3702}
3703
3704impl fidl::endpoints::Responder for MlmeListMinstrelPeersResponder {
3705    type ControlHandle = MlmeControlHandle;
3706
3707    fn control_handle(&self) -> &MlmeControlHandle {
3708        &self.control_handle
3709    }
3710
3711    fn drop_without_shutdown(mut self) {
3712        // Safety: drops once, never accessed again due to mem::forget
3713        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3714        // Prevent Drop from running (which would shut down the channel)
3715        std::mem::forget(self);
3716    }
3717}
3718
3719impl MlmeListMinstrelPeersResponder {
3720    /// Sends a response to the FIDL transaction.
3721    ///
3722    /// Sets the channel to shutdown if an error occurs.
3723    pub fn send(self, mut resp: &MinstrelListResponse) -> Result<(), fidl::Error> {
3724        let _result = self.send_raw(resp);
3725        if _result.is_err() {
3726            self.control_handle.shutdown();
3727        }
3728        self.drop_without_shutdown();
3729        _result
3730    }
3731
3732    /// Similar to "send" but does not shutdown the channel if an error occurs.
3733    pub fn send_no_shutdown_on_err(
3734        self,
3735        mut resp: &MinstrelListResponse,
3736    ) -> Result<(), fidl::Error> {
3737        let _result = self.send_raw(resp);
3738        self.drop_without_shutdown();
3739        _result
3740    }
3741
3742    fn send_raw(&self, mut resp: &MinstrelListResponse) -> Result<(), fidl::Error> {
3743        self.control_handle.inner.send::<MlmeListMinstrelPeersResponse>(
3744            (resp,),
3745            self.tx_id,
3746            0x4ac5d1e66fe1ffd5,
3747            fidl::encoding::DynamicFlags::empty(),
3748        )
3749    }
3750}
3751
3752#[must_use = "FIDL methods require a response to be sent"]
3753#[derive(Debug)]
3754pub struct MlmeGetMinstrelStatsResponder {
3755    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3756    tx_id: u32,
3757}
3758
3759/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3760/// if the responder is dropped without sending a response, so that the client
3761/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3762impl std::ops::Drop for MlmeGetMinstrelStatsResponder {
3763    fn drop(&mut self) {
3764        self.control_handle.shutdown();
3765        // Safety: drops once, never accessed again
3766        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3767    }
3768}
3769
3770impl fidl::endpoints::Responder for MlmeGetMinstrelStatsResponder {
3771    type ControlHandle = MlmeControlHandle;
3772
3773    fn control_handle(&self) -> &MlmeControlHandle {
3774        &self.control_handle
3775    }
3776
3777    fn drop_without_shutdown(mut self) {
3778        // Safety: drops once, never accessed again due to mem::forget
3779        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3780        // Prevent Drop from running (which would shut down the channel)
3781        std::mem::forget(self);
3782    }
3783}
3784
3785impl MlmeGetMinstrelStatsResponder {
3786    /// Sends a response to the FIDL transaction.
3787    ///
3788    /// Sets the channel to shutdown if an error occurs.
3789    pub fn send(self, mut resp: &MinstrelStatsResponse) -> Result<(), fidl::Error> {
3790        let _result = self.send_raw(resp);
3791        if _result.is_err() {
3792            self.control_handle.shutdown();
3793        }
3794        self.drop_without_shutdown();
3795        _result
3796    }
3797
3798    /// Similar to "send" but does not shutdown the channel if an error occurs.
3799    pub fn send_no_shutdown_on_err(
3800        self,
3801        mut resp: &MinstrelStatsResponse,
3802    ) -> Result<(), fidl::Error> {
3803        let _result = self.send_raw(resp);
3804        self.drop_without_shutdown();
3805        _result
3806    }
3807
3808    fn send_raw(&self, mut resp: &MinstrelStatsResponse) -> Result<(), fidl::Error> {
3809        self.control_handle.inner.send::<MlmeGetMinstrelStatsResponse>(
3810            (resp,),
3811            self.tx_id,
3812            0x2f688b1245323f4b,
3813            fidl::encoding::DynamicFlags::empty(),
3814        )
3815    }
3816}
3817
3818#[must_use = "FIDL methods require a response to be sent"]
3819#[derive(Debug)]
3820pub struct MlmeStartCaptureFramesResponder {
3821    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3822    tx_id: u32,
3823}
3824
3825/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3826/// if the responder is dropped without sending a response, so that the client
3827/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3828impl std::ops::Drop for MlmeStartCaptureFramesResponder {
3829    fn drop(&mut self) {
3830        self.control_handle.shutdown();
3831        // Safety: drops once, never accessed again
3832        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3833    }
3834}
3835
3836impl fidl::endpoints::Responder for MlmeStartCaptureFramesResponder {
3837    type ControlHandle = MlmeControlHandle;
3838
3839    fn control_handle(&self) -> &MlmeControlHandle {
3840        &self.control_handle
3841    }
3842
3843    fn drop_without_shutdown(mut self) {
3844        // Safety: drops once, never accessed again due to mem::forget
3845        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3846        // Prevent Drop from running (which would shut down the channel)
3847        std::mem::forget(self);
3848    }
3849}
3850
3851impl MlmeStartCaptureFramesResponder {
3852    /// Sends a response to the FIDL transaction.
3853    ///
3854    /// Sets the channel to shutdown if an error occurs.
3855    pub fn send(self, mut resp: &StartCaptureFramesResponse) -> Result<(), fidl::Error> {
3856        let _result = self.send_raw(resp);
3857        if _result.is_err() {
3858            self.control_handle.shutdown();
3859        }
3860        self.drop_without_shutdown();
3861        _result
3862    }
3863
3864    /// Similar to "send" but does not shutdown the channel if an error occurs.
3865    pub fn send_no_shutdown_on_err(
3866        self,
3867        mut resp: &StartCaptureFramesResponse,
3868    ) -> Result<(), fidl::Error> {
3869        let _result = self.send_raw(resp);
3870        self.drop_without_shutdown();
3871        _result
3872    }
3873
3874    fn send_raw(&self, mut resp: &StartCaptureFramesResponse) -> Result<(), fidl::Error> {
3875        self.control_handle.inner.send::<MlmeStartCaptureFramesResponse>(
3876            (resp,),
3877            self.tx_id,
3878            0x23b369ed5749ee69,
3879            fidl::encoding::DynamicFlags::empty(),
3880        )
3881    }
3882}
3883
3884mod internal {
3885    use super::*;
3886
3887    impl fidl::encoding::ResourceTypeMarker for ConnectorConnectRequest {
3888        type Borrowed<'a> = &'a mut Self;
3889        fn take_or_borrow<'a>(
3890            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
3891        ) -> Self::Borrowed<'a> {
3892            value
3893        }
3894    }
3895
3896    unsafe impl fidl::encoding::TypeMarker for ConnectorConnectRequest {
3897        type Owned = Self;
3898
3899        #[inline(always)]
3900        fn inline_align(_context: fidl::encoding::Context) -> usize {
3901            4
3902        }
3903
3904        #[inline(always)]
3905        fn inline_size(_context: fidl::encoding::Context) -> usize {
3906            4
3907        }
3908    }
3909
3910    unsafe impl
3911        fidl::encoding::Encode<
3912            ConnectorConnectRequest,
3913            fidl::encoding::DefaultFuchsiaResourceDialect,
3914        > for &mut ConnectorConnectRequest
3915    {
3916        #[inline]
3917        unsafe fn encode(
3918            self,
3919            encoder: &mut fidl::encoding::Encoder<
3920                '_,
3921                fidl::encoding::DefaultFuchsiaResourceDialect,
3922            >,
3923            offset: usize,
3924            _depth: fidl::encoding::Depth,
3925        ) -> fidl::Result<()> {
3926            encoder.debug_check_bounds::<ConnectorConnectRequest>(offset);
3927            // Delegate to tuple encoding.
3928            fidl::encoding::Encode::<ConnectorConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
3929                (
3930                    <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.request),
3931                ),
3932                encoder, offset, _depth
3933            )
3934        }
3935    }
3936    unsafe impl<
3937            T0: fidl::encoding::Encode<
3938                fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>>,
3939                fidl::encoding::DefaultFuchsiaResourceDialect,
3940            >,
3941        >
3942        fidl::encoding::Encode<
3943            ConnectorConnectRequest,
3944            fidl::encoding::DefaultFuchsiaResourceDialect,
3945        > for (T0,)
3946    {
3947        #[inline]
3948        unsafe fn encode(
3949            self,
3950            encoder: &mut fidl::encoding::Encoder<
3951                '_,
3952                fidl::encoding::DefaultFuchsiaResourceDialect,
3953            >,
3954            offset: usize,
3955            depth: fidl::encoding::Depth,
3956        ) -> fidl::Result<()> {
3957            encoder.debug_check_bounds::<ConnectorConnectRequest>(offset);
3958            // Zero out padding regions. There's no need to apply masks
3959            // because the unmasked parts will be overwritten by fields.
3960            // Write the fields.
3961            self.0.encode(encoder, offset + 0, depth)?;
3962            Ok(())
3963        }
3964    }
3965
3966    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
3967        for ConnectorConnectRequest
3968    {
3969        #[inline(always)]
3970        fn new_empty() -> Self {
3971            Self {
3972                request: fidl::new_empty!(
3973                    fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>>,
3974                    fidl::encoding::DefaultFuchsiaResourceDialect
3975                ),
3976            }
3977        }
3978
3979        #[inline]
3980        unsafe fn decode(
3981            &mut self,
3982            decoder: &mut fidl::encoding::Decoder<
3983                '_,
3984                fidl::encoding::DefaultFuchsiaResourceDialect,
3985            >,
3986            offset: usize,
3987            _depth: fidl::encoding::Depth,
3988        ) -> fidl::Result<()> {
3989            decoder.debug_check_bounds::<Self>(offset);
3990            // Verify that padding bytes are zero.
3991            fidl::decode!(
3992                fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>>,
3993                fidl::encoding::DefaultFuchsiaResourceDialect,
3994                &mut self.request,
3995                decoder,
3996                offset + 0,
3997                _depth
3998            )?;
3999            Ok(())
4000        }
4001    }
4002}