Skip to main content

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        Self { client: fidl::client::sync::Client::new(channel) }
65    }
66
67    pub fn into_channel(self) -> fidl::Channel {
68        self.client.into_channel()
69    }
70
71    /// Waits until an event arrives and returns it. It is safe for other
72    /// threads to make concurrent requests while waiting for an event.
73    pub fn wait_for_event(
74        &self,
75        deadline: zx::MonotonicInstant,
76    ) -> Result<ConnectorEvent, fidl::Error> {
77        ConnectorEvent::decode(self.client.wait_for_event::<ConnectorMarker>(deadline)?)
78    }
79
80    pub fn r#connect(
81        &self,
82        mut request: fidl::endpoints::ServerEnd<MlmeMarker>,
83    ) -> Result<(), fidl::Error> {
84        self.client.send::<ConnectorConnectRequest>(
85            (request,),
86            0x42131859717af962,
87            fidl::encoding::DynamicFlags::empty(),
88        )
89    }
90}
91
92#[cfg(target_os = "fuchsia")]
93impl From<ConnectorSynchronousProxy> for zx::NullableHandle {
94    fn from(value: ConnectorSynchronousProxy) -> Self {
95        value.into_channel().into()
96    }
97}
98
99#[cfg(target_os = "fuchsia")]
100impl From<fidl::Channel> for ConnectorSynchronousProxy {
101    fn from(value: fidl::Channel) -> Self {
102        Self::new(value)
103    }
104}
105
106#[cfg(target_os = "fuchsia")]
107impl fidl::endpoints::FromClient for ConnectorSynchronousProxy {
108    type Protocol = ConnectorMarker;
109
110    fn from_client(value: fidl::endpoints::ClientEnd<ConnectorMarker>) -> Self {
111        Self::new(value.into_channel())
112    }
113}
114
115#[derive(Debug, Clone)]
116pub struct ConnectorProxy {
117    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
118}
119
120impl fidl::endpoints::Proxy for ConnectorProxy {
121    type Protocol = ConnectorMarker;
122
123    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
124        Self::new(inner)
125    }
126
127    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
128        self.client.into_channel().map_err(|client| Self { client })
129    }
130
131    fn as_channel(&self) -> &::fidl::AsyncChannel {
132        self.client.as_channel()
133    }
134}
135
136impl ConnectorProxy {
137    /// Create a new Proxy for fuchsia.wlan.mlme/Connector.
138    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
139        let protocol_name = <ConnectorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
140        Self { client: fidl::client::Client::new(channel, protocol_name) }
141    }
142
143    /// Get a Stream of events from the remote end of the protocol.
144    ///
145    /// # Panics
146    ///
147    /// Panics if the event stream was already taken.
148    pub fn take_event_stream(&self) -> ConnectorEventStream {
149        ConnectorEventStream { event_receiver: self.client.take_event_receiver() }
150    }
151
152    pub fn r#connect(
153        &self,
154        mut request: fidl::endpoints::ServerEnd<MlmeMarker>,
155    ) -> Result<(), fidl::Error> {
156        ConnectorProxyInterface::r#connect(self, request)
157    }
158}
159
160impl ConnectorProxyInterface for ConnectorProxy {
161    fn r#connect(
162        &self,
163        mut request: fidl::endpoints::ServerEnd<MlmeMarker>,
164    ) -> Result<(), fidl::Error> {
165        self.client.send::<ConnectorConnectRequest>(
166            (request,),
167            0x42131859717af962,
168            fidl::encoding::DynamicFlags::empty(),
169        )
170    }
171}
172
173pub struct ConnectorEventStream {
174    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
175}
176
177impl std::marker::Unpin for ConnectorEventStream {}
178
179impl futures::stream::FusedStream for ConnectorEventStream {
180    fn is_terminated(&self) -> bool {
181        self.event_receiver.is_terminated()
182    }
183}
184
185impl futures::Stream for ConnectorEventStream {
186    type Item = Result<ConnectorEvent, fidl::Error>;
187
188    fn poll_next(
189        mut self: std::pin::Pin<&mut Self>,
190        cx: &mut std::task::Context<'_>,
191    ) -> std::task::Poll<Option<Self::Item>> {
192        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
193            &mut self.event_receiver,
194            cx
195        )?) {
196            Some(buf) => std::task::Poll::Ready(Some(ConnectorEvent::decode(buf))),
197            None => std::task::Poll::Ready(None),
198        }
199    }
200}
201
202#[derive(Debug)]
203pub enum ConnectorEvent {}
204
205impl ConnectorEvent {
206    /// Decodes a message buffer as a [`ConnectorEvent`].
207    fn decode(
208        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
209    ) -> Result<ConnectorEvent, fidl::Error> {
210        let (bytes, _handles) = buf.split_mut();
211        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
212        debug_assert_eq!(tx_header.tx_id, 0);
213        match tx_header.ordinal {
214            _ => Err(fidl::Error::UnknownOrdinal {
215                ordinal: tx_header.ordinal,
216                protocol_name: <ConnectorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
217            }),
218        }
219    }
220}
221
222/// A Stream of incoming requests for fuchsia.wlan.mlme/Connector.
223pub struct ConnectorRequestStream {
224    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
225    is_terminated: bool,
226}
227
228impl std::marker::Unpin for ConnectorRequestStream {}
229
230impl futures::stream::FusedStream for ConnectorRequestStream {
231    fn is_terminated(&self) -> bool {
232        self.is_terminated
233    }
234}
235
236impl fidl::endpoints::RequestStream for ConnectorRequestStream {
237    type Protocol = ConnectorMarker;
238    type ControlHandle = ConnectorControlHandle;
239
240    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
241        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
242    }
243
244    fn control_handle(&self) -> Self::ControlHandle {
245        ConnectorControlHandle { inner: self.inner.clone() }
246    }
247
248    fn into_inner(
249        self,
250    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
251    {
252        (self.inner, self.is_terminated)
253    }
254
255    fn from_inner(
256        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
257        is_terminated: bool,
258    ) -> Self {
259        Self { inner, is_terminated }
260    }
261}
262
263impl futures::Stream for ConnectorRequestStream {
264    type Item = Result<ConnectorRequest, fidl::Error>;
265
266    fn poll_next(
267        mut self: std::pin::Pin<&mut Self>,
268        cx: &mut std::task::Context<'_>,
269    ) -> std::task::Poll<Option<Self::Item>> {
270        let this = &mut *self;
271        if this.inner.check_shutdown(cx) {
272            this.is_terminated = true;
273            return std::task::Poll::Ready(None);
274        }
275        if this.is_terminated {
276            panic!("polled ConnectorRequestStream after completion");
277        }
278        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
279            |bytes, handles| {
280                match this.inner.channel().read_etc(cx, bytes, handles) {
281                    std::task::Poll::Ready(Ok(())) => {}
282                    std::task::Poll::Pending => return std::task::Poll::Pending,
283                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
284                        this.is_terminated = true;
285                        return std::task::Poll::Ready(None);
286                    }
287                    std::task::Poll::Ready(Err(e)) => {
288                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
289                            e.into(),
290                        ))));
291                    }
292                }
293
294                // A message has been received from the channel
295                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
296
297                std::task::Poll::Ready(Some(match header.ordinal {
298                    0x42131859717af962 => {
299                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
300                        let mut req = fidl::new_empty!(
301                            ConnectorConnectRequest,
302                            fidl::encoding::DefaultFuchsiaResourceDialect
303                        );
304                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<ConnectorConnectRequest>(&header, _body_bytes, handles, &mut req)?;
305                        let control_handle = ConnectorControlHandle { inner: this.inner.clone() };
306                        Ok(ConnectorRequest::Connect { request: req.request, control_handle })
307                    }
308                    _ => Err(fidl::Error::UnknownOrdinal {
309                        ordinal: header.ordinal,
310                        protocol_name:
311                            <ConnectorMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
312                    }),
313                }))
314            },
315        )
316    }
317}
318
319/// This protocol is used to connect to the interface's underlying MLME.
320#[derive(Debug)]
321pub enum ConnectorRequest {
322    Connect {
323        request: fidl::endpoints::ServerEnd<MlmeMarker>,
324        control_handle: ConnectorControlHandle,
325    },
326}
327
328impl ConnectorRequest {
329    #[allow(irrefutable_let_patterns)]
330    pub fn into_connect(
331        self,
332    ) -> Option<(fidl::endpoints::ServerEnd<MlmeMarker>, ConnectorControlHandle)> {
333        if let ConnectorRequest::Connect { request, control_handle } = self {
334            Some((request, control_handle))
335        } else {
336            None
337        }
338    }
339
340    /// Name of the method defined in FIDL
341    pub fn method_name(&self) -> &'static str {
342        match *self {
343            ConnectorRequest::Connect { .. } => "connect",
344        }
345    }
346}
347
348#[derive(Debug, Clone)]
349pub struct ConnectorControlHandle {
350    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
351}
352
353impl ConnectorControlHandle {
354    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
355        self.inner.shutdown_with_epitaph(status.into())
356    }
357}
358
359impl fidl::endpoints::ControlHandle for ConnectorControlHandle {
360    fn shutdown(&self) {
361        self.inner.shutdown()
362    }
363
364    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
365        self.inner.shutdown_with_epitaph(status)
366    }
367
368    fn is_closed(&self) -> bool {
369        self.inner.channel().is_closed()
370    }
371    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
372        self.inner.channel().on_closed()
373    }
374
375    #[cfg(target_os = "fuchsia")]
376    fn signal_peer(
377        &self,
378        clear_mask: zx::Signals,
379        set_mask: zx::Signals,
380    ) -> Result<(), zx_status::Status> {
381        use fidl::Peered;
382        self.inner.channel().signal_peer(clear_mask, set_mask)
383    }
384}
385
386impl ConnectorControlHandle {}
387
388#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
389pub struct MlmeMarker;
390
391impl fidl::endpoints::ProtocolMarker for MlmeMarker {
392    type Proxy = MlmeProxy;
393    type RequestStream = MlmeRequestStream;
394    #[cfg(target_os = "fuchsia")]
395    type SynchronousProxy = MlmeSynchronousProxy;
396
397    const DEBUG_NAME: &'static str = "(anonymous) Mlme";
398}
399pub type MlmeStartScheduledScanResult = Result<(), i32>;
400pub type MlmeStopScheduledScanResult = Result<(), i32>;
401pub type MlmeGetScheduledScanEnabledResult = Result<Vec<u64>, i32>;
402pub type MlmeQueryTelemetrySupportResult = Result<fidl_fuchsia_wlan_stats::TelemetrySupport, i32>;
403pub type MlmeGetSignalReportResult = Result<fidl_fuchsia_wlan_stats::SignalReport, i32>;
404pub type MlmeSetMacAddressResult = Result<(), i32>;
405pub type MlmeInstallApfPacketFilterResult = Result<(), i32>;
406pub type MlmeReadApfPacketFilterDataResult = Result<Vec<u8>, i32>;
407pub type MlmeSetApfPacketFilterEnabledResult = Result<(), i32>;
408pub type MlmeGetApfPacketFilterEnabledResult = Result<bool, i32>;
409pub type MlmeStartRssiMonitorResult = Result<(), i32>;
410
411pub trait MlmeProxyInterface: Send + Sync {
412    fn r#start_scan(&self, req: &ScanRequest) -> Result<(), fidl::Error>;
413    type StartScheduledScanResponseFut: std::future::Future<Output = Result<MlmeStartScheduledScanResult, fidl::Error>>
414        + Send;
415    fn r#start_scheduled_scan(
416        &self,
417        txn_id: u64,
418        req: &fidl_fuchsia_wlan_common::ScheduledScanRequest,
419    ) -> Self::StartScheduledScanResponseFut;
420    type StopScheduledScanResponseFut: std::future::Future<Output = Result<MlmeStopScheduledScanResult, fidl::Error>>
421        + Send;
422    fn r#stop_scheduled_scan(&self, txn_id: u64) -> Self::StopScheduledScanResponseFut;
423    type GetScheduledScanEnabledResponseFut: std::future::Future<Output = Result<MlmeGetScheduledScanEnabledResult, fidl::Error>>
424        + Send;
425    fn r#get_scheduled_scan_enabled(&self) -> Self::GetScheduledScanEnabledResponseFut;
426    fn r#connect_req(&self, req: &ConnectRequest) -> Result<(), fidl::Error>;
427    fn r#reconnect_req(&self, req: &ReconnectRequest) -> Result<(), fidl::Error>;
428    fn r#roam_req(&self, req: &RoamRequest) -> Result<(), fidl::Error>;
429    fn r#authenticate_resp(&self, resp: &AuthenticateResponse) -> Result<(), fidl::Error>;
430    fn r#deauthenticate_req(&self, req: &DeauthenticateRequest) -> Result<(), fidl::Error>;
431    fn r#associate_resp(&self, resp: &AssociateResponse) -> Result<(), fidl::Error>;
432    fn r#disassociate_req(&self, req: &DisassociateRequest) -> Result<(), fidl::Error>;
433    fn r#reset_req(&self, req: &ResetRequest) -> Result<(), fidl::Error>;
434    fn r#start_req(&self, req: &StartRequest) -> Result<(), fidl::Error>;
435    fn r#stop_req(&self, req: &StopRequest) -> Result<(), fidl::Error>;
436    fn r#set_keys_req(&self, req: &SetKeysRequest) -> Result<(), fidl::Error>;
437    fn r#delete_keys_req(&self, req: &DeleteKeysRequest) -> Result<(), fidl::Error>;
438    fn r#eapol_req(&self, req: &EapolRequest) -> Result<(), fidl::Error>;
439    fn r#set_controlled_port(&self, req: &SetControlledPortRequest) -> Result<(), fidl::Error>;
440    type QueryDeviceInfoResponseFut: std::future::Future<Output = Result<DeviceInfo, fidl::Error>>
441        + Send;
442    fn r#query_device_info(&self) -> Self::QueryDeviceInfoResponseFut;
443    type QueryTelemetrySupportResponseFut: std::future::Future<Output = Result<MlmeQueryTelemetrySupportResult, fidl::Error>>
444        + Send;
445    fn r#query_telemetry_support(&self) -> Self::QueryTelemetrySupportResponseFut;
446    type GetIfaceStatsResponseFut: std::future::Future<Output = Result<GetIfaceStatsResponse, fidl::Error>>
447        + Send;
448    fn r#get_iface_stats(&self) -> Self::GetIfaceStatsResponseFut;
449    type GetIfaceHistogramStatsResponseFut: std::future::Future<Output = Result<GetIfaceHistogramStatsResponse, fidl::Error>>
450        + Send;
451    fn r#get_iface_histogram_stats(&self) -> Self::GetIfaceHistogramStatsResponseFut;
452    type GetSignalReportResponseFut: std::future::Future<Output = Result<MlmeGetSignalReportResult, fidl::Error>>
453        + Send;
454    fn r#get_signal_report(&self) -> Self::GetSignalReportResponseFut;
455    type ListMinstrelPeersResponseFut: std::future::Future<Output = Result<MinstrelListResponse, fidl::Error>>
456        + Send;
457    fn r#list_minstrel_peers(&self) -> Self::ListMinstrelPeersResponseFut;
458    type GetMinstrelStatsResponseFut: std::future::Future<Output = Result<MinstrelStatsResponse, fidl::Error>>
459        + Send;
460    fn r#get_minstrel_stats(&self, req: &MinstrelStatsRequest)
461    -> Self::GetMinstrelStatsResponseFut;
462    type StartCaptureFramesResponseFut: std::future::Future<Output = Result<StartCaptureFramesResponse, fidl::Error>>
463        + Send;
464    fn r#start_capture_frames(
465        &self,
466        req: &StartCaptureFramesRequest,
467    ) -> Self::StartCaptureFramesResponseFut;
468    fn r#stop_capture_frames(&self) -> Result<(), fidl::Error>;
469    fn r#sae_handshake_resp(&self, resp: &SaeHandshakeResponse) -> Result<(), fidl::Error>;
470    fn r#sae_frame_tx(&self, frame: &SaeFrame) -> Result<(), fidl::Error>;
471    fn r#wmm_status_req(&self) -> Result<(), fidl::Error>;
472    fn r#finalize_association_req(
473        &self,
474        negotiated_capabilities: &NegotiatedCapabilities,
475    ) -> Result<(), fidl::Error>;
476    type SetMacAddressResponseFut: std::future::Future<Output = Result<MlmeSetMacAddressResult, fidl::Error>>
477        + Send;
478    fn r#set_mac_address(&self, mac_addr: &[u8; 6]) -> Self::SetMacAddressResponseFut;
479    type InstallApfPacketFilterResponseFut: std::future::Future<Output = Result<MlmeInstallApfPacketFilterResult, fidl::Error>>
480        + Send;
481    fn r#install_apf_packet_filter(
482        &self,
483        program: &[u8],
484    ) -> Self::InstallApfPacketFilterResponseFut;
485    type ReadApfPacketFilterDataResponseFut: std::future::Future<Output = Result<MlmeReadApfPacketFilterDataResult, fidl::Error>>
486        + Send;
487    fn r#read_apf_packet_filter_data(&self) -> Self::ReadApfPacketFilterDataResponseFut;
488    type SetApfPacketFilterEnabledResponseFut: std::future::Future<Output = Result<MlmeSetApfPacketFilterEnabledResult, fidl::Error>>
489        + Send;
490    fn r#set_apf_packet_filter_enabled(
491        &self,
492        enabled: bool,
493    ) -> Self::SetApfPacketFilterEnabledResponseFut;
494    type GetApfPacketFilterEnabledResponseFut: std::future::Future<Output = Result<MlmeGetApfPacketFilterEnabledResult, fidl::Error>>
495        + Send;
496    fn r#get_apf_packet_filter_enabled(&self) -> Self::GetApfPacketFilterEnabledResponseFut;
497    type StartRssiMonitorResponseFut: std::future::Future<Output = Result<MlmeStartRssiMonitorResult, fidl::Error>>
498        + Send;
499    fn r#start_rssi_monitor(
500        &self,
501        min_rssi_dbm: i8,
502        max_rssi_dbm: i8,
503    ) -> Self::StartRssiMonitorResponseFut;
504}
505#[derive(Debug)]
506#[cfg(target_os = "fuchsia")]
507pub struct MlmeSynchronousProxy {
508    client: fidl::client::sync::Client,
509}
510
511#[cfg(target_os = "fuchsia")]
512impl fidl::endpoints::SynchronousProxy for MlmeSynchronousProxy {
513    type Proxy = MlmeProxy;
514    type Protocol = MlmeMarker;
515
516    fn from_channel(inner: fidl::Channel) -> Self {
517        Self::new(inner)
518    }
519
520    fn into_channel(self) -> fidl::Channel {
521        self.client.into_channel()
522    }
523
524    fn as_channel(&self) -> &fidl::Channel {
525        self.client.as_channel()
526    }
527}
528
529#[cfg(target_os = "fuchsia")]
530impl MlmeSynchronousProxy {
531    pub fn new(channel: fidl::Channel) -> Self {
532        Self { client: fidl::client::sync::Client::new(channel) }
533    }
534
535    pub fn into_channel(self) -> fidl::Channel {
536        self.client.into_channel()
537    }
538
539    /// Waits until an event arrives and returns it. It is safe for other
540    /// threads to make concurrent requests while waiting for an event.
541    pub fn wait_for_event(&self, deadline: zx::MonotonicInstant) -> Result<MlmeEvent, fidl::Error> {
542        MlmeEvent::decode(self.client.wait_for_event::<MlmeMarker>(deadline)?)
543    }
544
545    pub fn r#start_scan(&self, mut req: &ScanRequest) -> Result<(), fidl::Error> {
546        self.client.send::<MlmeStartScanRequest>(
547            (req,),
548            0x342cc5ec6a957479,
549            fidl::encoding::DynamicFlags::empty(),
550        )
551    }
552
553    /// Starts scheduled scanning.
554    pub fn r#start_scheduled_scan(
555        &self,
556        mut txn_id: u64,
557        mut req: &fidl_fuchsia_wlan_common::ScheduledScanRequest,
558        ___deadline: zx::MonotonicInstant,
559    ) -> Result<MlmeStartScheduledScanResult, fidl::Error> {
560        let _response = self.client.send_query::<
561            MlmeStartScheduledScanRequest,
562            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
563            MlmeMarker,
564        >(
565            (txn_id, req,),
566            0x7fff163af4620212,
567            fidl::encoding::DynamicFlags::empty(),
568            ___deadline,
569        )?;
570        Ok(_response.map(|x| x))
571    }
572
573    /// Stops scheduled scanning.
574    pub fn r#stop_scheduled_scan(
575        &self,
576        mut txn_id: u64,
577        ___deadline: zx::MonotonicInstant,
578    ) -> Result<MlmeStopScheduledScanResult, fidl::Error> {
579        let _response = self.client.send_query::<
580            MlmeStopScheduledScanRequest,
581            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
582            MlmeMarker,
583        >(
584            (txn_id,),
585            0x5fbc466f3daa4dd9,
586            fidl::encoding::DynamicFlags::empty(),
587            ___deadline,
588        )?;
589        Ok(_response.map(|x| x))
590    }
591
592    /// Returns the transaction IDs of any currently active scheduled scans.
593    pub fn r#get_scheduled_scan_enabled(
594        &self,
595        ___deadline: zx::MonotonicInstant,
596    ) -> Result<MlmeGetScheduledScanEnabledResult, fidl::Error> {
597        let _response = self.client.send_query::<
598            fidl::encoding::EmptyPayload,
599            fidl::encoding::ResultType<MlmeGetScheduledScanEnabledResponse, i32>,
600            MlmeMarker,
601        >(
602            (),
603            0x1ecc6a7fe7f9fcff,
604            fidl::encoding::DynamicFlags::empty(),
605            ___deadline,
606        )?;
607        Ok(_response.map(|x| x.active_txn_ids))
608    }
609
610    pub fn r#connect_req(&self, mut req: &ConnectRequest) -> Result<(), fidl::Error> {
611        self.client.send::<MlmeConnectReqRequest>(
612            (req,),
613            0x31153dc85f8f64c,
614            fidl::encoding::DynamicFlags::empty(),
615        )
616    }
617
618    pub fn r#reconnect_req(&self, mut req: &ReconnectRequest) -> Result<(), fidl::Error> {
619        self.client.send::<MlmeReconnectReqRequest>(
620            (req,),
621            0x74e0f1bd758b6b78,
622            fidl::encoding::DynamicFlags::empty(),
623        )
624    }
625
626    /// Initiate a roam attempt (SME-initiated).
627    pub fn r#roam_req(&self, mut req: &RoamRequest) -> Result<(), fidl::Error> {
628        self.client.send::<MlmeRoamReqRequest>(
629            (req,),
630            0x3ba163eadf7dba45,
631            fidl::encoding::DynamicFlags::empty(),
632        )
633    }
634
635    pub fn r#authenticate_resp(&self, mut resp: &AuthenticateResponse) -> Result<(), fidl::Error> {
636        self.client.send::<MlmeAuthenticateRespRequest>(
637            (resp,),
638            0x26108aade2fdd2f4,
639            fidl::encoding::DynamicFlags::empty(),
640        )
641    }
642
643    pub fn r#deauthenticate_req(&self, mut req: &DeauthenticateRequest) -> Result<(), fidl::Error> {
644        self.client.send::<MlmeDeauthenticateReqRequest>(
645            (req,),
646            0x228983b200de5d12,
647            fidl::encoding::DynamicFlags::empty(),
648        )
649    }
650
651    pub fn r#associate_resp(&self, mut resp: &AssociateResponse) -> Result<(), fidl::Error> {
652        self.client.send::<MlmeAssociateRespRequest>(
653            (resp,),
654            0x70244dbd652ed6d9,
655            fidl::encoding::DynamicFlags::empty(),
656        )
657    }
658
659    pub fn r#disassociate_req(&self, mut req: &DisassociateRequest) -> Result<(), fidl::Error> {
660        self.client.send::<MlmeDisassociateReqRequest>(
661            (req,),
662            0x5765807f1387d764,
663            fidl::encoding::DynamicFlags::empty(),
664        )
665    }
666
667    pub fn r#reset_req(&self, mut req: &ResetRequest) -> Result<(), fidl::Error> {
668        self.client.send::<MlmeResetReqRequest>(
669            (req,),
670            0x780b98c58a286b9f,
671            fidl::encoding::DynamicFlags::empty(),
672        )
673    }
674
675    pub fn r#start_req(&self, mut req: &StartRequest) -> Result<(), fidl::Error> {
676        self.client.send::<MlmeStartReqRequest>(
677            (req,),
678            0x5d95885f8053654,
679            fidl::encoding::DynamicFlags::empty(),
680        )
681    }
682
683    pub fn r#stop_req(&self, mut req: &StopRequest) -> Result<(), fidl::Error> {
684        self.client.send::<MlmeStopReqRequest>(
685            (req,),
686            0x27b9a2ab04a2c79f,
687            fidl::encoding::DynamicFlags::empty(),
688        )
689    }
690
691    pub fn r#set_keys_req(&self, mut req: &SetKeysRequest) -> Result<(), fidl::Error> {
692        self.client.send::<MlmeSetKeysReqRequest>(
693            (req,),
694            0x6b30a07fd3a11a79,
695            fidl::encoding::DynamicFlags::empty(),
696        )
697    }
698
699    pub fn r#delete_keys_req(&self, mut req: &DeleteKeysRequest) -> Result<(), fidl::Error> {
700        self.client.send::<MlmeDeleteKeysReqRequest>(
701            (req,),
702            0x1e3524d20d190c8f,
703            fidl::encoding::DynamicFlags::empty(),
704        )
705    }
706
707    pub fn r#eapol_req(&self, mut req: &EapolRequest) -> Result<(), fidl::Error> {
708        self.client.send::<MlmeEapolReqRequest>(
709            (req,),
710            0xc3c096924704d4,
711            fidl::encoding::DynamicFlags::empty(),
712        )
713    }
714
715    pub fn r#set_controlled_port(
716        &self,
717        mut req: &SetControlledPortRequest,
718    ) -> Result<(), fidl::Error> {
719        self.client.send::<MlmeSetControlledPortRequest>(
720            (req,),
721            0x4e47065668890c8d,
722            fidl::encoding::DynamicFlags::empty(),
723        )
724    }
725
726    pub fn r#query_device_info(
727        &self,
728        ___deadline: zx::MonotonicInstant,
729    ) -> Result<DeviceInfo, fidl::Error> {
730        let _response = self
731            .client
732            .send_query::<fidl::encoding::EmptyPayload, MlmeQueryDeviceInfoResponse, MlmeMarker>(
733                (),
734                0x6ee3e7f63f2b7bc0,
735                fidl::encoding::DynamicFlags::empty(),
736                ___deadline,
737            )?;
738        Ok(_response.info)
739    }
740
741    pub fn r#query_telemetry_support(
742        &self,
743        ___deadline: zx::MonotonicInstant,
744    ) -> Result<MlmeQueryTelemetrySupportResult, fidl::Error> {
745        let _response = self.client.send_query::<
746            fidl::encoding::EmptyPayload,
747            fidl::encoding::ResultType<MlmeQueryTelemetrySupportResponse, i32>,
748            MlmeMarker,
749        >(
750            (),
751            0x1598879b70332c99,
752            fidl::encoding::DynamicFlags::empty(),
753            ___deadline,
754        )?;
755        Ok(_response.map(|x| x.resp))
756    }
757
758    pub fn r#get_iface_stats(
759        &self,
760        ___deadline: zx::MonotonicInstant,
761    ) -> Result<GetIfaceStatsResponse, fidl::Error> {
762        let _response = self
763            .client
764            .send_query::<fidl::encoding::EmptyPayload, MlmeGetIfaceStatsResponse, MlmeMarker>(
765                (),
766                0xede1a8342d1b211,
767                fidl::encoding::DynamicFlags::empty(),
768                ___deadline,
769            )?;
770        Ok(_response.resp)
771    }
772
773    pub fn r#get_iface_histogram_stats(
774        &self,
775        ___deadline: zx::MonotonicInstant,
776    ) -> Result<GetIfaceHistogramStatsResponse, fidl::Error> {
777        let _response = self.client.send_query::<
778            fidl::encoding::EmptyPayload,
779            MlmeGetIfaceHistogramStatsResponse,
780            MlmeMarker,
781        >(
782            (),
783            0x1979c9d3449f8675,
784            fidl::encoding::DynamicFlags::empty(),
785            ___deadline,
786        )?;
787        Ok(_response.resp)
788    }
789
790    pub fn r#get_signal_report(
791        &self,
792        ___deadline: zx::MonotonicInstant,
793    ) -> Result<MlmeGetSignalReportResult, fidl::Error> {
794        let _response = self.client.send_query::<
795            fidl::encoding::EmptyPayload,
796            fidl::encoding::ResultType<MlmeGetSignalReportResponse, i32>,
797            MlmeMarker,
798        >(
799            (),
800            0x7e47e7ebe92acec9,
801            fidl::encoding::DynamicFlags::empty(),
802            ___deadline,
803        )?;
804        Ok(_response.map(|x| x.resp))
805    }
806
807    pub fn r#list_minstrel_peers(
808        &self,
809        ___deadline: zx::MonotonicInstant,
810    ) -> Result<MinstrelListResponse, fidl::Error> {
811        let _response = self
812            .client
813            .send_query::<fidl::encoding::EmptyPayload, MlmeListMinstrelPeersResponse, MlmeMarker>(
814                (),
815                0x4ac5d1e66fe1ffd5,
816                fidl::encoding::DynamicFlags::empty(),
817                ___deadline,
818            )?;
819        Ok(_response.resp)
820    }
821
822    pub fn r#get_minstrel_stats(
823        &self,
824        mut req: &MinstrelStatsRequest,
825        ___deadline: zx::MonotonicInstant,
826    ) -> Result<MinstrelStatsResponse, fidl::Error> {
827        let _response = self
828            .client
829            .send_query::<MlmeGetMinstrelStatsRequest, MlmeGetMinstrelStatsResponse, MlmeMarker>(
830                (req,),
831                0x2f688b1245323f4b,
832                fidl::encoding::DynamicFlags::empty(),
833                ___deadline,
834            )?;
835        Ok(_response.resp)
836    }
837
838    pub fn r#start_capture_frames(
839        &self,
840        mut req: &StartCaptureFramesRequest,
841        ___deadline: zx::MonotonicInstant,
842    ) -> Result<StartCaptureFramesResponse, fidl::Error> {
843        let _response = self.client.send_query::<
844            MlmeStartCaptureFramesRequest,
845            MlmeStartCaptureFramesResponse,
846            MlmeMarker,
847        >(
848            (req,),
849            0x23b369ed5749ee69,
850            fidl::encoding::DynamicFlags::empty(),
851            ___deadline,
852        )?;
853        Ok(_response.resp)
854    }
855
856    pub fn r#stop_capture_frames(&self) -> Result<(), fidl::Error> {
857        self.client.send::<fidl::encoding::EmptyPayload>(
858            (),
859            0x2f1aebbc68bf7c54,
860            fidl::encoding::DynamicFlags::empty(),
861        )
862    }
863
864    /// Notifies that SAE authentication is completed.
865    pub fn r#sae_handshake_resp(&self, mut resp: &SaeHandshakeResponse) -> Result<(), fidl::Error> {
866        self.client.send::<MlmeSaeHandshakeRespRequest>(
867            (resp,),
868            0x28477bd2f7a5ab0c,
869            fidl::encoding::DynamicFlags::empty(),
870        )
871    }
872
873    /// Transmits SAE frame (if SME is managing SAE authentication).
874    pub fn r#sae_frame_tx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
875        self.client.send::<MlmeSaeFrameTxRequest>(
876            (frame,),
877            0x7700c0d536733d8c,
878            fidl::encoding::DynamicFlags::empty(),
879        )
880    }
881
882    pub fn r#wmm_status_req(&self) -> Result<(), fidl::Error> {
883        self.client.send::<fidl::encoding::EmptyPayload>(
884            (),
885            0xef4851f6088fede,
886            fidl::encoding::DynamicFlags::empty(),
887        )
888    }
889
890    pub fn r#finalize_association_req(
891        &self,
892        mut negotiated_capabilities: &NegotiatedCapabilities,
893    ) -> Result<(), fidl::Error> {
894        self.client.send::<MlmeFinalizeAssociationReqRequest>(
895            (negotiated_capabilities,),
896            0x7aea59787cfd385a,
897            fidl::encoding::DynamicFlags::empty(),
898        )
899    }
900
901    pub fn r#set_mac_address(
902        &self,
903        mut mac_addr: &[u8; 6],
904        ___deadline: zx::MonotonicInstant,
905    ) -> Result<MlmeSetMacAddressResult, fidl::Error> {
906        let _response = self.client.send_query::<
907            MlmeSetMacAddressRequest,
908            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
909            MlmeMarker,
910        >(
911            (mac_addr,),
912            0x476999f9bb27afe1,
913            fidl::encoding::DynamicFlags::empty(),
914            ___deadline,
915        )?;
916        Ok(_response.map(|x| x))
917    }
918
919    pub fn r#install_apf_packet_filter(
920        &self,
921        mut program: &[u8],
922        ___deadline: zx::MonotonicInstant,
923    ) -> Result<MlmeInstallApfPacketFilterResult, fidl::Error> {
924        let _response = self.client.send_query::<
925            MlmeInstallApfPacketFilterRequest,
926            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
927            MlmeMarker,
928        >(
929            (program,),
930            0x267565b4916c825b,
931            fidl::encoding::DynamicFlags::empty(),
932            ___deadline,
933        )?;
934        Ok(_response.map(|x| x))
935    }
936
937    pub fn r#read_apf_packet_filter_data(
938        &self,
939        ___deadline: zx::MonotonicInstant,
940    ) -> Result<MlmeReadApfPacketFilterDataResult, fidl::Error> {
941        let _response = self.client.send_query::<
942            fidl::encoding::EmptyPayload,
943            fidl::encoding::ResultType<MlmeReadApfPacketFilterDataResponse, i32>,
944            MlmeMarker,
945        >(
946            (),
947            0x6040d744f1b2cb61,
948            fidl::encoding::DynamicFlags::empty(),
949            ___deadline,
950        )?;
951        Ok(_response.map(|x| x.memory))
952    }
953
954    pub fn r#set_apf_packet_filter_enabled(
955        &self,
956        mut enabled: bool,
957        ___deadline: zx::MonotonicInstant,
958    ) -> Result<MlmeSetApfPacketFilterEnabledResult, fidl::Error> {
959        let _response = self.client.send_query::<
960            MlmeSetApfPacketFilterEnabledRequest,
961            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
962            MlmeMarker,
963        >(
964            (enabled,),
965            0x6d99bdca77076aea,
966            fidl::encoding::DynamicFlags::empty(),
967            ___deadline,
968        )?;
969        Ok(_response.map(|x| x))
970    }
971
972    pub fn r#get_apf_packet_filter_enabled(
973        &self,
974        ___deadline: zx::MonotonicInstant,
975    ) -> Result<MlmeGetApfPacketFilterEnabledResult, fidl::Error> {
976        let _response = self.client.send_query::<
977            fidl::encoding::EmptyPayload,
978            fidl::encoding::ResultType<MlmeGetApfPacketFilterEnabledResponse, i32>,
979            MlmeMarker,
980        >(
981            (),
982            0x1df408bc154be1e4,
983            fidl::encoding::DynamicFlags::empty(),
984            ___deadline,
985        )?;
986        Ok(_response.map(|x| x.enabled))
987    }
988
989    pub fn r#start_rssi_monitor(
990        &self,
991        mut min_rssi_dbm: i8,
992        mut max_rssi_dbm: i8,
993        ___deadline: zx::MonotonicInstant,
994    ) -> Result<MlmeStartRssiMonitorResult, fidl::Error> {
995        let _response = self.client.send_query::<
996            MlmeStartRssiMonitorRequest,
997            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
998            MlmeMarker,
999        >(
1000            (min_rssi_dbm, max_rssi_dbm,),
1001            0x542a970415b1d912,
1002            fidl::encoding::DynamicFlags::empty(),
1003            ___deadline,
1004        )?;
1005        Ok(_response.map(|x| x))
1006    }
1007}
1008
1009#[cfg(target_os = "fuchsia")]
1010impl From<MlmeSynchronousProxy> for zx::NullableHandle {
1011    fn from(value: MlmeSynchronousProxy) -> Self {
1012        value.into_channel().into()
1013    }
1014}
1015
1016#[cfg(target_os = "fuchsia")]
1017impl From<fidl::Channel> for MlmeSynchronousProxy {
1018    fn from(value: fidl::Channel) -> Self {
1019        Self::new(value)
1020    }
1021}
1022
1023#[cfg(target_os = "fuchsia")]
1024impl fidl::endpoints::FromClient for MlmeSynchronousProxy {
1025    type Protocol = MlmeMarker;
1026
1027    fn from_client(value: fidl::endpoints::ClientEnd<MlmeMarker>) -> Self {
1028        Self::new(value.into_channel())
1029    }
1030}
1031
1032#[derive(Debug, Clone)]
1033pub struct MlmeProxy {
1034    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
1035}
1036
1037impl fidl::endpoints::Proxy for MlmeProxy {
1038    type Protocol = MlmeMarker;
1039
1040    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
1041        Self::new(inner)
1042    }
1043
1044    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
1045        self.client.into_channel().map_err(|client| Self { client })
1046    }
1047
1048    fn as_channel(&self) -> &::fidl::AsyncChannel {
1049        self.client.as_channel()
1050    }
1051}
1052
1053impl MlmeProxy {
1054    /// Create a new Proxy for fuchsia.wlan.mlme/MLME.
1055    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1056        let protocol_name = <MlmeMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1057        Self { client: fidl::client::Client::new(channel, protocol_name) }
1058    }
1059
1060    /// Get a Stream of events from the remote end of the protocol.
1061    ///
1062    /// # Panics
1063    ///
1064    /// Panics if the event stream was already taken.
1065    pub fn take_event_stream(&self) -> MlmeEventStream {
1066        MlmeEventStream { event_receiver: self.client.take_event_receiver() }
1067    }
1068
1069    pub fn r#start_scan(&self, mut req: &ScanRequest) -> Result<(), fidl::Error> {
1070        MlmeProxyInterface::r#start_scan(self, req)
1071    }
1072
1073    /// Starts scheduled scanning.
1074    pub fn r#start_scheduled_scan(
1075        &self,
1076        mut txn_id: u64,
1077        mut req: &fidl_fuchsia_wlan_common::ScheduledScanRequest,
1078    ) -> fidl::client::QueryResponseFut<
1079        MlmeStartScheduledScanResult,
1080        fidl::encoding::DefaultFuchsiaResourceDialect,
1081    > {
1082        MlmeProxyInterface::r#start_scheduled_scan(self, txn_id, req)
1083    }
1084
1085    /// Stops scheduled scanning.
1086    pub fn r#stop_scheduled_scan(
1087        &self,
1088        mut txn_id: u64,
1089    ) -> fidl::client::QueryResponseFut<
1090        MlmeStopScheduledScanResult,
1091        fidl::encoding::DefaultFuchsiaResourceDialect,
1092    > {
1093        MlmeProxyInterface::r#stop_scheduled_scan(self, txn_id)
1094    }
1095
1096    /// Returns the transaction IDs of any currently active scheduled scans.
1097    pub fn r#get_scheduled_scan_enabled(
1098        &self,
1099    ) -> fidl::client::QueryResponseFut<
1100        MlmeGetScheduledScanEnabledResult,
1101        fidl::encoding::DefaultFuchsiaResourceDialect,
1102    > {
1103        MlmeProxyInterface::r#get_scheduled_scan_enabled(self)
1104    }
1105
1106    pub fn r#connect_req(&self, mut req: &ConnectRequest) -> Result<(), fidl::Error> {
1107        MlmeProxyInterface::r#connect_req(self, req)
1108    }
1109
1110    pub fn r#reconnect_req(&self, mut req: &ReconnectRequest) -> Result<(), fidl::Error> {
1111        MlmeProxyInterface::r#reconnect_req(self, req)
1112    }
1113
1114    /// Initiate a roam attempt (SME-initiated).
1115    pub fn r#roam_req(&self, mut req: &RoamRequest) -> Result<(), fidl::Error> {
1116        MlmeProxyInterface::r#roam_req(self, req)
1117    }
1118
1119    pub fn r#authenticate_resp(&self, mut resp: &AuthenticateResponse) -> Result<(), fidl::Error> {
1120        MlmeProxyInterface::r#authenticate_resp(self, resp)
1121    }
1122
1123    pub fn r#deauthenticate_req(&self, mut req: &DeauthenticateRequest) -> Result<(), fidl::Error> {
1124        MlmeProxyInterface::r#deauthenticate_req(self, req)
1125    }
1126
1127    pub fn r#associate_resp(&self, mut resp: &AssociateResponse) -> Result<(), fidl::Error> {
1128        MlmeProxyInterface::r#associate_resp(self, resp)
1129    }
1130
1131    pub fn r#disassociate_req(&self, mut req: &DisassociateRequest) -> Result<(), fidl::Error> {
1132        MlmeProxyInterface::r#disassociate_req(self, req)
1133    }
1134
1135    pub fn r#reset_req(&self, mut req: &ResetRequest) -> Result<(), fidl::Error> {
1136        MlmeProxyInterface::r#reset_req(self, req)
1137    }
1138
1139    pub fn r#start_req(&self, mut req: &StartRequest) -> Result<(), fidl::Error> {
1140        MlmeProxyInterface::r#start_req(self, req)
1141    }
1142
1143    pub fn r#stop_req(&self, mut req: &StopRequest) -> Result<(), fidl::Error> {
1144        MlmeProxyInterface::r#stop_req(self, req)
1145    }
1146
1147    pub fn r#set_keys_req(&self, mut req: &SetKeysRequest) -> Result<(), fidl::Error> {
1148        MlmeProxyInterface::r#set_keys_req(self, req)
1149    }
1150
1151    pub fn r#delete_keys_req(&self, mut req: &DeleteKeysRequest) -> Result<(), fidl::Error> {
1152        MlmeProxyInterface::r#delete_keys_req(self, req)
1153    }
1154
1155    pub fn r#eapol_req(&self, mut req: &EapolRequest) -> Result<(), fidl::Error> {
1156        MlmeProxyInterface::r#eapol_req(self, req)
1157    }
1158
1159    pub fn r#set_controlled_port(
1160        &self,
1161        mut req: &SetControlledPortRequest,
1162    ) -> Result<(), fidl::Error> {
1163        MlmeProxyInterface::r#set_controlled_port(self, req)
1164    }
1165
1166    pub fn r#query_device_info(
1167        &self,
1168    ) -> fidl::client::QueryResponseFut<DeviceInfo, fidl::encoding::DefaultFuchsiaResourceDialect>
1169    {
1170        MlmeProxyInterface::r#query_device_info(self)
1171    }
1172
1173    pub fn r#query_telemetry_support(
1174        &self,
1175    ) -> fidl::client::QueryResponseFut<
1176        MlmeQueryTelemetrySupportResult,
1177        fidl::encoding::DefaultFuchsiaResourceDialect,
1178    > {
1179        MlmeProxyInterface::r#query_telemetry_support(self)
1180    }
1181
1182    pub fn r#get_iface_stats(
1183        &self,
1184    ) -> fidl::client::QueryResponseFut<
1185        GetIfaceStatsResponse,
1186        fidl::encoding::DefaultFuchsiaResourceDialect,
1187    > {
1188        MlmeProxyInterface::r#get_iface_stats(self)
1189    }
1190
1191    pub fn r#get_iface_histogram_stats(
1192        &self,
1193    ) -> fidl::client::QueryResponseFut<
1194        GetIfaceHistogramStatsResponse,
1195        fidl::encoding::DefaultFuchsiaResourceDialect,
1196    > {
1197        MlmeProxyInterface::r#get_iface_histogram_stats(self)
1198    }
1199
1200    pub fn r#get_signal_report(
1201        &self,
1202    ) -> fidl::client::QueryResponseFut<
1203        MlmeGetSignalReportResult,
1204        fidl::encoding::DefaultFuchsiaResourceDialect,
1205    > {
1206        MlmeProxyInterface::r#get_signal_report(self)
1207    }
1208
1209    pub fn r#list_minstrel_peers(
1210        &self,
1211    ) -> fidl::client::QueryResponseFut<
1212        MinstrelListResponse,
1213        fidl::encoding::DefaultFuchsiaResourceDialect,
1214    > {
1215        MlmeProxyInterface::r#list_minstrel_peers(self)
1216    }
1217
1218    pub fn r#get_minstrel_stats(
1219        &self,
1220        mut req: &MinstrelStatsRequest,
1221    ) -> fidl::client::QueryResponseFut<
1222        MinstrelStatsResponse,
1223        fidl::encoding::DefaultFuchsiaResourceDialect,
1224    > {
1225        MlmeProxyInterface::r#get_minstrel_stats(self, req)
1226    }
1227
1228    pub fn r#start_capture_frames(
1229        &self,
1230        mut req: &StartCaptureFramesRequest,
1231    ) -> fidl::client::QueryResponseFut<
1232        StartCaptureFramesResponse,
1233        fidl::encoding::DefaultFuchsiaResourceDialect,
1234    > {
1235        MlmeProxyInterface::r#start_capture_frames(self, req)
1236    }
1237
1238    pub fn r#stop_capture_frames(&self) -> Result<(), fidl::Error> {
1239        MlmeProxyInterface::r#stop_capture_frames(self)
1240    }
1241
1242    /// Notifies that SAE authentication is completed.
1243    pub fn r#sae_handshake_resp(&self, mut resp: &SaeHandshakeResponse) -> Result<(), fidl::Error> {
1244        MlmeProxyInterface::r#sae_handshake_resp(self, resp)
1245    }
1246
1247    /// Transmits SAE frame (if SME is managing SAE authentication).
1248    pub fn r#sae_frame_tx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
1249        MlmeProxyInterface::r#sae_frame_tx(self, frame)
1250    }
1251
1252    pub fn r#wmm_status_req(&self) -> Result<(), fidl::Error> {
1253        MlmeProxyInterface::r#wmm_status_req(self)
1254    }
1255
1256    pub fn r#finalize_association_req(
1257        &self,
1258        mut negotiated_capabilities: &NegotiatedCapabilities,
1259    ) -> Result<(), fidl::Error> {
1260        MlmeProxyInterface::r#finalize_association_req(self, negotiated_capabilities)
1261    }
1262
1263    pub fn r#set_mac_address(
1264        &self,
1265        mut mac_addr: &[u8; 6],
1266    ) -> fidl::client::QueryResponseFut<
1267        MlmeSetMacAddressResult,
1268        fidl::encoding::DefaultFuchsiaResourceDialect,
1269    > {
1270        MlmeProxyInterface::r#set_mac_address(self, mac_addr)
1271    }
1272
1273    pub fn r#install_apf_packet_filter(
1274        &self,
1275        mut program: &[u8],
1276    ) -> fidl::client::QueryResponseFut<
1277        MlmeInstallApfPacketFilterResult,
1278        fidl::encoding::DefaultFuchsiaResourceDialect,
1279    > {
1280        MlmeProxyInterface::r#install_apf_packet_filter(self, program)
1281    }
1282
1283    pub fn r#read_apf_packet_filter_data(
1284        &self,
1285    ) -> fidl::client::QueryResponseFut<
1286        MlmeReadApfPacketFilterDataResult,
1287        fidl::encoding::DefaultFuchsiaResourceDialect,
1288    > {
1289        MlmeProxyInterface::r#read_apf_packet_filter_data(self)
1290    }
1291
1292    pub fn r#set_apf_packet_filter_enabled(
1293        &self,
1294        mut enabled: bool,
1295    ) -> fidl::client::QueryResponseFut<
1296        MlmeSetApfPacketFilterEnabledResult,
1297        fidl::encoding::DefaultFuchsiaResourceDialect,
1298    > {
1299        MlmeProxyInterface::r#set_apf_packet_filter_enabled(self, enabled)
1300    }
1301
1302    pub fn r#get_apf_packet_filter_enabled(
1303        &self,
1304    ) -> fidl::client::QueryResponseFut<
1305        MlmeGetApfPacketFilterEnabledResult,
1306        fidl::encoding::DefaultFuchsiaResourceDialect,
1307    > {
1308        MlmeProxyInterface::r#get_apf_packet_filter_enabled(self)
1309    }
1310
1311    pub fn r#start_rssi_monitor(
1312        &self,
1313        mut min_rssi_dbm: i8,
1314        mut max_rssi_dbm: i8,
1315    ) -> fidl::client::QueryResponseFut<
1316        MlmeStartRssiMonitorResult,
1317        fidl::encoding::DefaultFuchsiaResourceDialect,
1318    > {
1319        MlmeProxyInterface::r#start_rssi_monitor(self, min_rssi_dbm, max_rssi_dbm)
1320    }
1321}
1322
1323impl MlmeProxyInterface for MlmeProxy {
1324    fn r#start_scan(&self, mut req: &ScanRequest) -> Result<(), fidl::Error> {
1325        self.client.send::<MlmeStartScanRequest>(
1326            (req,),
1327            0x342cc5ec6a957479,
1328            fidl::encoding::DynamicFlags::empty(),
1329        )
1330    }
1331
1332    type StartScheduledScanResponseFut = fidl::client::QueryResponseFut<
1333        MlmeStartScheduledScanResult,
1334        fidl::encoding::DefaultFuchsiaResourceDialect,
1335    >;
1336    fn r#start_scheduled_scan(
1337        &self,
1338        mut txn_id: u64,
1339        mut req: &fidl_fuchsia_wlan_common::ScheduledScanRequest,
1340    ) -> Self::StartScheduledScanResponseFut {
1341        fn _decode(
1342            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1343        ) -> Result<MlmeStartScheduledScanResult, fidl::Error> {
1344            let _response = fidl::client::decode_transaction_body::<
1345                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
1346                fidl::encoding::DefaultFuchsiaResourceDialect,
1347                0x7fff163af4620212,
1348            >(_buf?)?;
1349            Ok(_response.map(|x| x))
1350        }
1351        self.client
1352            .send_query_and_decode::<MlmeStartScheduledScanRequest, MlmeStartScheduledScanResult>(
1353                (txn_id, req),
1354                0x7fff163af4620212,
1355                fidl::encoding::DynamicFlags::empty(),
1356                _decode,
1357            )
1358    }
1359
1360    type StopScheduledScanResponseFut = fidl::client::QueryResponseFut<
1361        MlmeStopScheduledScanResult,
1362        fidl::encoding::DefaultFuchsiaResourceDialect,
1363    >;
1364    fn r#stop_scheduled_scan(&self, mut txn_id: u64) -> Self::StopScheduledScanResponseFut {
1365        fn _decode(
1366            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1367        ) -> Result<MlmeStopScheduledScanResult, fidl::Error> {
1368            let _response = fidl::client::decode_transaction_body::<
1369                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
1370                fidl::encoding::DefaultFuchsiaResourceDialect,
1371                0x5fbc466f3daa4dd9,
1372            >(_buf?)?;
1373            Ok(_response.map(|x| x))
1374        }
1375        self.client
1376            .send_query_and_decode::<MlmeStopScheduledScanRequest, MlmeStopScheduledScanResult>(
1377                (txn_id,),
1378                0x5fbc466f3daa4dd9,
1379                fidl::encoding::DynamicFlags::empty(),
1380                _decode,
1381            )
1382    }
1383
1384    type GetScheduledScanEnabledResponseFut = fidl::client::QueryResponseFut<
1385        MlmeGetScheduledScanEnabledResult,
1386        fidl::encoding::DefaultFuchsiaResourceDialect,
1387    >;
1388    fn r#get_scheduled_scan_enabled(&self) -> Self::GetScheduledScanEnabledResponseFut {
1389        fn _decode(
1390            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1391        ) -> Result<MlmeGetScheduledScanEnabledResult, fidl::Error> {
1392            let _response = fidl::client::decode_transaction_body::<
1393                fidl::encoding::ResultType<MlmeGetScheduledScanEnabledResponse, i32>,
1394                fidl::encoding::DefaultFuchsiaResourceDialect,
1395                0x1ecc6a7fe7f9fcff,
1396            >(_buf?)?;
1397            Ok(_response.map(|x| x.active_txn_ids))
1398        }
1399        self.client.send_query_and_decode::<
1400            fidl::encoding::EmptyPayload,
1401            MlmeGetScheduledScanEnabledResult,
1402        >(
1403            (),
1404            0x1ecc6a7fe7f9fcff,
1405            fidl::encoding::DynamicFlags::empty(),
1406            _decode,
1407        )
1408    }
1409
1410    fn r#connect_req(&self, mut req: &ConnectRequest) -> Result<(), fidl::Error> {
1411        self.client.send::<MlmeConnectReqRequest>(
1412            (req,),
1413            0x31153dc85f8f64c,
1414            fidl::encoding::DynamicFlags::empty(),
1415        )
1416    }
1417
1418    fn r#reconnect_req(&self, mut req: &ReconnectRequest) -> Result<(), fidl::Error> {
1419        self.client.send::<MlmeReconnectReqRequest>(
1420            (req,),
1421            0x74e0f1bd758b6b78,
1422            fidl::encoding::DynamicFlags::empty(),
1423        )
1424    }
1425
1426    fn r#roam_req(&self, mut req: &RoamRequest) -> Result<(), fidl::Error> {
1427        self.client.send::<MlmeRoamReqRequest>(
1428            (req,),
1429            0x3ba163eadf7dba45,
1430            fidl::encoding::DynamicFlags::empty(),
1431        )
1432    }
1433
1434    fn r#authenticate_resp(&self, mut resp: &AuthenticateResponse) -> Result<(), fidl::Error> {
1435        self.client.send::<MlmeAuthenticateRespRequest>(
1436            (resp,),
1437            0x26108aade2fdd2f4,
1438            fidl::encoding::DynamicFlags::empty(),
1439        )
1440    }
1441
1442    fn r#deauthenticate_req(&self, mut req: &DeauthenticateRequest) -> Result<(), fidl::Error> {
1443        self.client.send::<MlmeDeauthenticateReqRequest>(
1444            (req,),
1445            0x228983b200de5d12,
1446            fidl::encoding::DynamicFlags::empty(),
1447        )
1448    }
1449
1450    fn r#associate_resp(&self, mut resp: &AssociateResponse) -> Result<(), fidl::Error> {
1451        self.client.send::<MlmeAssociateRespRequest>(
1452            (resp,),
1453            0x70244dbd652ed6d9,
1454            fidl::encoding::DynamicFlags::empty(),
1455        )
1456    }
1457
1458    fn r#disassociate_req(&self, mut req: &DisassociateRequest) -> Result<(), fidl::Error> {
1459        self.client.send::<MlmeDisassociateReqRequest>(
1460            (req,),
1461            0x5765807f1387d764,
1462            fidl::encoding::DynamicFlags::empty(),
1463        )
1464    }
1465
1466    fn r#reset_req(&self, mut req: &ResetRequest) -> Result<(), fidl::Error> {
1467        self.client.send::<MlmeResetReqRequest>(
1468            (req,),
1469            0x780b98c58a286b9f,
1470            fidl::encoding::DynamicFlags::empty(),
1471        )
1472    }
1473
1474    fn r#start_req(&self, mut req: &StartRequest) -> Result<(), fidl::Error> {
1475        self.client.send::<MlmeStartReqRequest>(
1476            (req,),
1477            0x5d95885f8053654,
1478            fidl::encoding::DynamicFlags::empty(),
1479        )
1480    }
1481
1482    fn r#stop_req(&self, mut req: &StopRequest) -> Result<(), fidl::Error> {
1483        self.client.send::<MlmeStopReqRequest>(
1484            (req,),
1485            0x27b9a2ab04a2c79f,
1486            fidl::encoding::DynamicFlags::empty(),
1487        )
1488    }
1489
1490    fn r#set_keys_req(&self, mut req: &SetKeysRequest) -> Result<(), fidl::Error> {
1491        self.client.send::<MlmeSetKeysReqRequest>(
1492            (req,),
1493            0x6b30a07fd3a11a79,
1494            fidl::encoding::DynamicFlags::empty(),
1495        )
1496    }
1497
1498    fn r#delete_keys_req(&self, mut req: &DeleteKeysRequest) -> Result<(), fidl::Error> {
1499        self.client.send::<MlmeDeleteKeysReqRequest>(
1500            (req,),
1501            0x1e3524d20d190c8f,
1502            fidl::encoding::DynamicFlags::empty(),
1503        )
1504    }
1505
1506    fn r#eapol_req(&self, mut req: &EapolRequest) -> Result<(), fidl::Error> {
1507        self.client.send::<MlmeEapolReqRequest>(
1508            (req,),
1509            0xc3c096924704d4,
1510            fidl::encoding::DynamicFlags::empty(),
1511        )
1512    }
1513
1514    fn r#set_controlled_port(&self, mut req: &SetControlledPortRequest) -> Result<(), fidl::Error> {
1515        self.client.send::<MlmeSetControlledPortRequest>(
1516            (req,),
1517            0x4e47065668890c8d,
1518            fidl::encoding::DynamicFlags::empty(),
1519        )
1520    }
1521
1522    type QueryDeviceInfoResponseFut =
1523        fidl::client::QueryResponseFut<DeviceInfo, fidl::encoding::DefaultFuchsiaResourceDialect>;
1524    fn r#query_device_info(&self) -> Self::QueryDeviceInfoResponseFut {
1525        fn _decode(
1526            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1527        ) -> Result<DeviceInfo, fidl::Error> {
1528            let _response = fidl::client::decode_transaction_body::<
1529                MlmeQueryDeviceInfoResponse,
1530                fidl::encoding::DefaultFuchsiaResourceDialect,
1531                0x6ee3e7f63f2b7bc0,
1532            >(_buf?)?;
1533            Ok(_response.info)
1534        }
1535        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, DeviceInfo>(
1536            (),
1537            0x6ee3e7f63f2b7bc0,
1538            fidl::encoding::DynamicFlags::empty(),
1539            _decode,
1540        )
1541    }
1542
1543    type QueryTelemetrySupportResponseFut = fidl::client::QueryResponseFut<
1544        MlmeQueryTelemetrySupportResult,
1545        fidl::encoding::DefaultFuchsiaResourceDialect,
1546    >;
1547    fn r#query_telemetry_support(&self) -> Self::QueryTelemetrySupportResponseFut {
1548        fn _decode(
1549            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1550        ) -> Result<MlmeQueryTelemetrySupportResult, fidl::Error> {
1551            let _response = fidl::client::decode_transaction_body::<
1552                fidl::encoding::ResultType<MlmeQueryTelemetrySupportResponse, i32>,
1553                fidl::encoding::DefaultFuchsiaResourceDialect,
1554                0x1598879b70332c99,
1555            >(_buf?)?;
1556            Ok(_response.map(|x| x.resp))
1557        }
1558        self.client
1559            .send_query_and_decode::<fidl::encoding::EmptyPayload, MlmeQueryTelemetrySupportResult>(
1560                (),
1561                0x1598879b70332c99,
1562                fidl::encoding::DynamicFlags::empty(),
1563                _decode,
1564            )
1565    }
1566
1567    type GetIfaceStatsResponseFut = fidl::client::QueryResponseFut<
1568        GetIfaceStatsResponse,
1569        fidl::encoding::DefaultFuchsiaResourceDialect,
1570    >;
1571    fn r#get_iface_stats(&self) -> Self::GetIfaceStatsResponseFut {
1572        fn _decode(
1573            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1574        ) -> Result<GetIfaceStatsResponse, fidl::Error> {
1575            let _response = fidl::client::decode_transaction_body::<
1576                MlmeGetIfaceStatsResponse,
1577                fidl::encoding::DefaultFuchsiaResourceDialect,
1578                0xede1a8342d1b211,
1579            >(_buf?)?;
1580            Ok(_response.resp)
1581        }
1582        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, GetIfaceStatsResponse>(
1583            (),
1584            0xede1a8342d1b211,
1585            fidl::encoding::DynamicFlags::empty(),
1586            _decode,
1587        )
1588    }
1589
1590    type GetIfaceHistogramStatsResponseFut = fidl::client::QueryResponseFut<
1591        GetIfaceHistogramStatsResponse,
1592        fidl::encoding::DefaultFuchsiaResourceDialect,
1593    >;
1594    fn r#get_iface_histogram_stats(&self) -> Self::GetIfaceHistogramStatsResponseFut {
1595        fn _decode(
1596            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1597        ) -> Result<GetIfaceHistogramStatsResponse, fidl::Error> {
1598            let _response = fidl::client::decode_transaction_body::<
1599                MlmeGetIfaceHistogramStatsResponse,
1600                fidl::encoding::DefaultFuchsiaResourceDialect,
1601                0x1979c9d3449f8675,
1602            >(_buf?)?;
1603            Ok(_response.resp)
1604        }
1605        self.client
1606            .send_query_and_decode::<fidl::encoding::EmptyPayload, GetIfaceHistogramStatsResponse>(
1607                (),
1608                0x1979c9d3449f8675,
1609                fidl::encoding::DynamicFlags::empty(),
1610                _decode,
1611            )
1612    }
1613
1614    type GetSignalReportResponseFut = fidl::client::QueryResponseFut<
1615        MlmeGetSignalReportResult,
1616        fidl::encoding::DefaultFuchsiaResourceDialect,
1617    >;
1618    fn r#get_signal_report(&self) -> Self::GetSignalReportResponseFut {
1619        fn _decode(
1620            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1621        ) -> Result<MlmeGetSignalReportResult, fidl::Error> {
1622            let _response = fidl::client::decode_transaction_body::<
1623                fidl::encoding::ResultType<MlmeGetSignalReportResponse, i32>,
1624                fidl::encoding::DefaultFuchsiaResourceDialect,
1625                0x7e47e7ebe92acec9,
1626            >(_buf?)?;
1627            Ok(_response.map(|x| x.resp))
1628        }
1629        self.client
1630            .send_query_and_decode::<fidl::encoding::EmptyPayload, MlmeGetSignalReportResult>(
1631                (),
1632                0x7e47e7ebe92acec9,
1633                fidl::encoding::DynamicFlags::empty(),
1634                _decode,
1635            )
1636    }
1637
1638    type ListMinstrelPeersResponseFut = fidl::client::QueryResponseFut<
1639        MinstrelListResponse,
1640        fidl::encoding::DefaultFuchsiaResourceDialect,
1641    >;
1642    fn r#list_minstrel_peers(&self) -> Self::ListMinstrelPeersResponseFut {
1643        fn _decode(
1644            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1645        ) -> Result<MinstrelListResponse, fidl::Error> {
1646            let _response = fidl::client::decode_transaction_body::<
1647                MlmeListMinstrelPeersResponse,
1648                fidl::encoding::DefaultFuchsiaResourceDialect,
1649                0x4ac5d1e66fe1ffd5,
1650            >(_buf?)?;
1651            Ok(_response.resp)
1652        }
1653        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, MinstrelListResponse>(
1654            (),
1655            0x4ac5d1e66fe1ffd5,
1656            fidl::encoding::DynamicFlags::empty(),
1657            _decode,
1658        )
1659    }
1660
1661    type GetMinstrelStatsResponseFut = fidl::client::QueryResponseFut<
1662        MinstrelStatsResponse,
1663        fidl::encoding::DefaultFuchsiaResourceDialect,
1664    >;
1665    fn r#get_minstrel_stats(
1666        &self,
1667        mut req: &MinstrelStatsRequest,
1668    ) -> Self::GetMinstrelStatsResponseFut {
1669        fn _decode(
1670            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1671        ) -> Result<MinstrelStatsResponse, fidl::Error> {
1672            let _response = fidl::client::decode_transaction_body::<
1673                MlmeGetMinstrelStatsResponse,
1674                fidl::encoding::DefaultFuchsiaResourceDialect,
1675                0x2f688b1245323f4b,
1676            >(_buf?)?;
1677            Ok(_response.resp)
1678        }
1679        self.client.send_query_and_decode::<MlmeGetMinstrelStatsRequest, MinstrelStatsResponse>(
1680            (req,),
1681            0x2f688b1245323f4b,
1682            fidl::encoding::DynamicFlags::empty(),
1683            _decode,
1684        )
1685    }
1686
1687    type StartCaptureFramesResponseFut = fidl::client::QueryResponseFut<
1688        StartCaptureFramesResponse,
1689        fidl::encoding::DefaultFuchsiaResourceDialect,
1690    >;
1691    fn r#start_capture_frames(
1692        &self,
1693        mut req: &StartCaptureFramesRequest,
1694    ) -> Self::StartCaptureFramesResponseFut {
1695        fn _decode(
1696            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1697        ) -> Result<StartCaptureFramesResponse, fidl::Error> {
1698            let _response = fidl::client::decode_transaction_body::<
1699                MlmeStartCaptureFramesResponse,
1700                fidl::encoding::DefaultFuchsiaResourceDialect,
1701                0x23b369ed5749ee69,
1702            >(_buf?)?;
1703            Ok(_response.resp)
1704        }
1705        self.client
1706            .send_query_and_decode::<MlmeStartCaptureFramesRequest, StartCaptureFramesResponse>(
1707                (req,),
1708                0x23b369ed5749ee69,
1709                fidl::encoding::DynamicFlags::empty(),
1710                _decode,
1711            )
1712    }
1713
1714    fn r#stop_capture_frames(&self) -> Result<(), fidl::Error> {
1715        self.client.send::<fidl::encoding::EmptyPayload>(
1716            (),
1717            0x2f1aebbc68bf7c54,
1718            fidl::encoding::DynamicFlags::empty(),
1719        )
1720    }
1721
1722    fn r#sae_handshake_resp(&self, mut resp: &SaeHandshakeResponse) -> Result<(), fidl::Error> {
1723        self.client.send::<MlmeSaeHandshakeRespRequest>(
1724            (resp,),
1725            0x28477bd2f7a5ab0c,
1726            fidl::encoding::DynamicFlags::empty(),
1727        )
1728    }
1729
1730    fn r#sae_frame_tx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
1731        self.client.send::<MlmeSaeFrameTxRequest>(
1732            (frame,),
1733            0x7700c0d536733d8c,
1734            fidl::encoding::DynamicFlags::empty(),
1735        )
1736    }
1737
1738    fn r#wmm_status_req(&self) -> Result<(), fidl::Error> {
1739        self.client.send::<fidl::encoding::EmptyPayload>(
1740            (),
1741            0xef4851f6088fede,
1742            fidl::encoding::DynamicFlags::empty(),
1743        )
1744    }
1745
1746    fn r#finalize_association_req(
1747        &self,
1748        mut negotiated_capabilities: &NegotiatedCapabilities,
1749    ) -> Result<(), fidl::Error> {
1750        self.client.send::<MlmeFinalizeAssociationReqRequest>(
1751            (negotiated_capabilities,),
1752            0x7aea59787cfd385a,
1753            fidl::encoding::DynamicFlags::empty(),
1754        )
1755    }
1756
1757    type SetMacAddressResponseFut = fidl::client::QueryResponseFut<
1758        MlmeSetMacAddressResult,
1759        fidl::encoding::DefaultFuchsiaResourceDialect,
1760    >;
1761    fn r#set_mac_address(&self, mut mac_addr: &[u8; 6]) -> Self::SetMacAddressResponseFut {
1762        fn _decode(
1763            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1764        ) -> Result<MlmeSetMacAddressResult, fidl::Error> {
1765            let _response = fidl::client::decode_transaction_body::<
1766                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
1767                fidl::encoding::DefaultFuchsiaResourceDialect,
1768                0x476999f9bb27afe1,
1769            >(_buf?)?;
1770            Ok(_response.map(|x| x))
1771        }
1772        self.client.send_query_and_decode::<MlmeSetMacAddressRequest, MlmeSetMacAddressResult>(
1773            (mac_addr,),
1774            0x476999f9bb27afe1,
1775            fidl::encoding::DynamicFlags::empty(),
1776            _decode,
1777        )
1778    }
1779
1780    type InstallApfPacketFilterResponseFut = fidl::client::QueryResponseFut<
1781        MlmeInstallApfPacketFilterResult,
1782        fidl::encoding::DefaultFuchsiaResourceDialect,
1783    >;
1784    fn r#install_apf_packet_filter(
1785        &self,
1786        mut program: &[u8],
1787    ) -> Self::InstallApfPacketFilterResponseFut {
1788        fn _decode(
1789            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1790        ) -> Result<MlmeInstallApfPacketFilterResult, fidl::Error> {
1791            let _response = fidl::client::decode_transaction_body::<
1792                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
1793                fidl::encoding::DefaultFuchsiaResourceDialect,
1794                0x267565b4916c825b,
1795            >(_buf?)?;
1796            Ok(_response.map(|x| x))
1797        }
1798        self.client.send_query_and_decode::<
1799            MlmeInstallApfPacketFilterRequest,
1800            MlmeInstallApfPacketFilterResult,
1801        >(
1802            (program,),
1803            0x267565b4916c825b,
1804            fidl::encoding::DynamicFlags::empty(),
1805            _decode,
1806        )
1807    }
1808
1809    type ReadApfPacketFilterDataResponseFut = fidl::client::QueryResponseFut<
1810        MlmeReadApfPacketFilterDataResult,
1811        fidl::encoding::DefaultFuchsiaResourceDialect,
1812    >;
1813    fn r#read_apf_packet_filter_data(&self) -> Self::ReadApfPacketFilterDataResponseFut {
1814        fn _decode(
1815            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1816        ) -> Result<MlmeReadApfPacketFilterDataResult, fidl::Error> {
1817            let _response = fidl::client::decode_transaction_body::<
1818                fidl::encoding::ResultType<MlmeReadApfPacketFilterDataResponse, i32>,
1819                fidl::encoding::DefaultFuchsiaResourceDialect,
1820                0x6040d744f1b2cb61,
1821            >(_buf?)?;
1822            Ok(_response.map(|x| x.memory))
1823        }
1824        self.client.send_query_and_decode::<
1825            fidl::encoding::EmptyPayload,
1826            MlmeReadApfPacketFilterDataResult,
1827        >(
1828            (),
1829            0x6040d744f1b2cb61,
1830            fidl::encoding::DynamicFlags::empty(),
1831            _decode,
1832        )
1833    }
1834
1835    type SetApfPacketFilterEnabledResponseFut = fidl::client::QueryResponseFut<
1836        MlmeSetApfPacketFilterEnabledResult,
1837        fidl::encoding::DefaultFuchsiaResourceDialect,
1838    >;
1839    fn r#set_apf_packet_filter_enabled(
1840        &self,
1841        mut enabled: bool,
1842    ) -> Self::SetApfPacketFilterEnabledResponseFut {
1843        fn _decode(
1844            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1845        ) -> Result<MlmeSetApfPacketFilterEnabledResult, fidl::Error> {
1846            let _response = fidl::client::decode_transaction_body::<
1847                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
1848                fidl::encoding::DefaultFuchsiaResourceDialect,
1849                0x6d99bdca77076aea,
1850            >(_buf?)?;
1851            Ok(_response.map(|x| x))
1852        }
1853        self.client.send_query_and_decode::<
1854            MlmeSetApfPacketFilterEnabledRequest,
1855            MlmeSetApfPacketFilterEnabledResult,
1856        >(
1857            (enabled,),
1858            0x6d99bdca77076aea,
1859            fidl::encoding::DynamicFlags::empty(),
1860            _decode,
1861        )
1862    }
1863
1864    type GetApfPacketFilterEnabledResponseFut = fidl::client::QueryResponseFut<
1865        MlmeGetApfPacketFilterEnabledResult,
1866        fidl::encoding::DefaultFuchsiaResourceDialect,
1867    >;
1868    fn r#get_apf_packet_filter_enabled(&self) -> Self::GetApfPacketFilterEnabledResponseFut {
1869        fn _decode(
1870            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1871        ) -> Result<MlmeGetApfPacketFilterEnabledResult, fidl::Error> {
1872            let _response = fidl::client::decode_transaction_body::<
1873                fidl::encoding::ResultType<MlmeGetApfPacketFilterEnabledResponse, i32>,
1874                fidl::encoding::DefaultFuchsiaResourceDialect,
1875                0x1df408bc154be1e4,
1876            >(_buf?)?;
1877            Ok(_response.map(|x| x.enabled))
1878        }
1879        self.client.send_query_and_decode::<
1880            fidl::encoding::EmptyPayload,
1881            MlmeGetApfPacketFilterEnabledResult,
1882        >(
1883            (),
1884            0x1df408bc154be1e4,
1885            fidl::encoding::DynamicFlags::empty(),
1886            _decode,
1887        )
1888    }
1889
1890    type StartRssiMonitorResponseFut = fidl::client::QueryResponseFut<
1891        MlmeStartRssiMonitorResult,
1892        fidl::encoding::DefaultFuchsiaResourceDialect,
1893    >;
1894    fn r#start_rssi_monitor(
1895        &self,
1896        mut min_rssi_dbm: i8,
1897        mut max_rssi_dbm: i8,
1898    ) -> Self::StartRssiMonitorResponseFut {
1899        fn _decode(
1900            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1901        ) -> Result<MlmeStartRssiMonitorResult, fidl::Error> {
1902            let _response = fidl::client::decode_transaction_body::<
1903                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
1904                fidl::encoding::DefaultFuchsiaResourceDialect,
1905                0x542a970415b1d912,
1906            >(_buf?)?;
1907            Ok(_response.map(|x| x))
1908        }
1909        self.client
1910            .send_query_and_decode::<MlmeStartRssiMonitorRequest, MlmeStartRssiMonitorResult>(
1911                (min_rssi_dbm, max_rssi_dbm),
1912                0x542a970415b1d912,
1913                fidl::encoding::DynamicFlags::empty(),
1914                _decode,
1915            )
1916    }
1917}
1918
1919pub struct MlmeEventStream {
1920    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
1921}
1922
1923impl std::marker::Unpin for MlmeEventStream {}
1924
1925impl futures::stream::FusedStream for MlmeEventStream {
1926    fn is_terminated(&self) -> bool {
1927        self.event_receiver.is_terminated()
1928    }
1929}
1930
1931impl futures::Stream for MlmeEventStream {
1932    type Item = Result<MlmeEvent, fidl::Error>;
1933
1934    fn poll_next(
1935        mut self: std::pin::Pin<&mut Self>,
1936        cx: &mut std::task::Context<'_>,
1937    ) -> std::task::Poll<Option<Self::Item>> {
1938        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
1939            &mut self.event_receiver,
1940            cx
1941        )?) {
1942            Some(buf) => std::task::Poll::Ready(Some(MlmeEvent::decode(buf))),
1943            None => std::task::Poll::Ready(None),
1944        }
1945    }
1946}
1947
1948#[derive(Debug)]
1949pub enum MlmeEvent {
1950    OnScanResult { result: ScanResult },
1951    OnScanEnd { end: ScanEnd },
1952    OnScheduledScanMatchesAvailable { txn_id: u64 },
1953    OnScheduledScanStoppedByFirmware { txn_id: u64 },
1954    ConnectConf { resp: ConnectConfirm },
1955    RoamConf { conf: RoamConfirm },
1956    RoamStartInd { ind: RoamStartIndication },
1957    RoamResultInd { ind: RoamResultIndication },
1958    AuthenticateInd { ind: AuthenticateIndication },
1959    DeauthenticateConf { resp: DeauthenticateConfirm },
1960    DeauthenticateInd { ind: DeauthenticateIndication },
1961    AssociateInd { ind: AssociateIndication },
1962    DisassociateConf { resp: DisassociateConfirm },
1963    DisassociateInd { ind: DisassociateIndication },
1964    StartConf { resp: StartConfirm },
1965    StopConf { resp: StopConfirm },
1966    SetKeysConf { conf: SetKeysConfirm },
1967    EapolConf { resp: EapolConfirm },
1968    SignalReport { ind: fidl_fuchsia_wlan_internal::SignalReportIndication },
1969    OnRssiThresholdBreached { cur_rssi_dbm: i8 },
1970    EapolInd { ind: EapolIndication },
1971    RelayCapturedFrame { result: CapturedFrameResult },
1972    OnChannelSwitched { info: fidl_fuchsia_wlan_internal::ChannelSwitchInfo },
1973    OnPmkAvailable { info: PmkInfo },
1974    OnSaeHandshakeInd { ind: SaeHandshakeIndication },
1975    OnSaeFrameRx { frame: SaeFrame },
1976    OnWmmStatusResp { status: i32, resp: fidl_fuchsia_wlan_internal::WmmStatusResponse },
1977}
1978
1979impl MlmeEvent {
1980    #[allow(irrefutable_let_patterns)]
1981    pub fn into_on_scan_result(self) -> Option<ScanResult> {
1982        if let MlmeEvent::OnScanResult { result } = self { Some((result)) } else { None }
1983    }
1984    #[allow(irrefutable_let_patterns)]
1985    pub fn into_on_scan_end(self) -> Option<ScanEnd> {
1986        if let MlmeEvent::OnScanEnd { end } = self { Some((end)) } else { None }
1987    }
1988    #[allow(irrefutable_let_patterns)]
1989    pub fn into_on_scheduled_scan_matches_available(self) -> Option<u64> {
1990        if let MlmeEvent::OnScheduledScanMatchesAvailable { txn_id } = self {
1991            Some((txn_id))
1992        } else {
1993            None
1994        }
1995    }
1996    #[allow(irrefutable_let_patterns)]
1997    pub fn into_on_scheduled_scan_stopped_by_firmware(self) -> Option<u64> {
1998        if let MlmeEvent::OnScheduledScanStoppedByFirmware { txn_id } = self {
1999            Some((txn_id))
2000        } else {
2001            None
2002        }
2003    }
2004    #[allow(irrefutable_let_patterns)]
2005    pub fn into_connect_conf(self) -> Option<ConnectConfirm> {
2006        if let MlmeEvent::ConnectConf { resp } = self { Some((resp)) } else { None }
2007    }
2008    #[allow(irrefutable_let_patterns)]
2009    pub fn into_roam_conf(self) -> Option<RoamConfirm> {
2010        if let MlmeEvent::RoamConf { conf } = self { Some((conf)) } else { None }
2011    }
2012    #[allow(irrefutable_let_patterns)]
2013    pub fn into_roam_start_ind(self) -> Option<RoamStartIndication> {
2014        if let MlmeEvent::RoamStartInd { ind } = self { Some((ind)) } else { None }
2015    }
2016    #[allow(irrefutable_let_patterns)]
2017    pub fn into_roam_result_ind(self) -> Option<RoamResultIndication> {
2018        if let MlmeEvent::RoamResultInd { ind } = self { Some((ind)) } else { None }
2019    }
2020    #[allow(irrefutable_let_patterns)]
2021    pub fn into_authenticate_ind(self) -> Option<AuthenticateIndication> {
2022        if let MlmeEvent::AuthenticateInd { ind } = self { Some((ind)) } else { None }
2023    }
2024    #[allow(irrefutable_let_patterns)]
2025    pub fn into_deauthenticate_conf(self) -> Option<DeauthenticateConfirm> {
2026        if let MlmeEvent::DeauthenticateConf { resp } = self { Some((resp)) } else { None }
2027    }
2028    #[allow(irrefutable_let_patterns)]
2029    pub fn into_deauthenticate_ind(self) -> Option<DeauthenticateIndication> {
2030        if let MlmeEvent::DeauthenticateInd { ind } = self { Some((ind)) } else { None }
2031    }
2032    #[allow(irrefutable_let_patterns)]
2033    pub fn into_associate_ind(self) -> Option<AssociateIndication> {
2034        if let MlmeEvent::AssociateInd { ind } = self { Some((ind)) } else { None }
2035    }
2036    #[allow(irrefutable_let_patterns)]
2037    pub fn into_disassociate_conf(self) -> Option<DisassociateConfirm> {
2038        if let MlmeEvent::DisassociateConf { resp } = self { Some((resp)) } else { None }
2039    }
2040    #[allow(irrefutable_let_patterns)]
2041    pub fn into_disassociate_ind(self) -> Option<DisassociateIndication> {
2042        if let MlmeEvent::DisassociateInd { ind } = self { Some((ind)) } else { None }
2043    }
2044    #[allow(irrefutable_let_patterns)]
2045    pub fn into_start_conf(self) -> Option<StartConfirm> {
2046        if let MlmeEvent::StartConf { resp } = self { Some((resp)) } else { None }
2047    }
2048    #[allow(irrefutable_let_patterns)]
2049    pub fn into_stop_conf(self) -> Option<StopConfirm> {
2050        if let MlmeEvent::StopConf { resp } = self { Some((resp)) } else { None }
2051    }
2052    #[allow(irrefutable_let_patterns)]
2053    pub fn into_set_keys_conf(self) -> Option<SetKeysConfirm> {
2054        if let MlmeEvent::SetKeysConf { conf } = self { Some((conf)) } else { None }
2055    }
2056    #[allow(irrefutable_let_patterns)]
2057    pub fn into_eapol_conf(self) -> Option<EapolConfirm> {
2058        if let MlmeEvent::EapolConf { resp } = self { Some((resp)) } else { None }
2059    }
2060    #[allow(irrefutable_let_patterns)]
2061    pub fn into_signal_report(self) -> Option<fidl_fuchsia_wlan_internal::SignalReportIndication> {
2062        if let MlmeEvent::SignalReport { ind } = self { Some((ind)) } else { None }
2063    }
2064    #[allow(irrefutable_let_patterns)]
2065    pub fn into_on_rssi_threshold_breached(self) -> Option<i8> {
2066        if let MlmeEvent::OnRssiThresholdBreached { cur_rssi_dbm } = self {
2067            Some((cur_rssi_dbm))
2068        } else {
2069            None
2070        }
2071    }
2072    #[allow(irrefutable_let_patterns)]
2073    pub fn into_eapol_ind(self) -> Option<EapolIndication> {
2074        if let MlmeEvent::EapolInd { ind } = self { Some((ind)) } else { None }
2075    }
2076    #[allow(irrefutable_let_patterns)]
2077    pub fn into_relay_captured_frame(self) -> Option<CapturedFrameResult> {
2078        if let MlmeEvent::RelayCapturedFrame { result } = self { Some((result)) } else { None }
2079    }
2080    #[allow(irrefutable_let_patterns)]
2081    pub fn into_on_channel_switched(self) -> Option<fidl_fuchsia_wlan_internal::ChannelSwitchInfo> {
2082        if let MlmeEvent::OnChannelSwitched { info } = self { Some((info)) } else { None }
2083    }
2084    #[allow(irrefutable_let_patterns)]
2085    pub fn into_on_pmk_available(self) -> Option<PmkInfo> {
2086        if let MlmeEvent::OnPmkAvailable { info } = self { Some((info)) } else { None }
2087    }
2088    #[allow(irrefutable_let_patterns)]
2089    pub fn into_on_sae_handshake_ind(self) -> Option<SaeHandshakeIndication> {
2090        if let MlmeEvent::OnSaeHandshakeInd { ind } = self { Some((ind)) } else { None }
2091    }
2092    #[allow(irrefutable_let_patterns)]
2093    pub fn into_on_sae_frame_rx(self) -> Option<SaeFrame> {
2094        if let MlmeEvent::OnSaeFrameRx { frame } = self { Some((frame)) } else { None }
2095    }
2096    #[allow(irrefutable_let_patterns)]
2097    pub fn into_on_wmm_status_resp(
2098        self,
2099    ) -> Option<(i32, fidl_fuchsia_wlan_internal::WmmStatusResponse)> {
2100        if let MlmeEvent::OnWmmStatusResp { status, resp } = self {
2101            Some((status, resp))
2102        } else {
2103            None
2104        }
2105    }
2106
2107    /// Decodes a message buffer as a [`MlmeEvent`].
2108    fn decode(
2109        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2110    ) -> Result<MlmeEvent, fidl::Error> {
2111        let (bytes, _handles) = buf.split_mut();
2112        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2113        debug_assert_eq!(tx_header.tx_id, 0);
2114        match tx_header.ordinal {
2115            0x681af7466a75074d => {
2116                let mut out = fidl::new_empty!(
2117                    MlmeOnScanResultRequest,
2118                    fidl::encoding::DefaultFuchsiaResourceDialect
2119                );
2120                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnScanResultRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2121                Ok((MlmeEvent::OnScanResult { result: out.result }))
2122            }
2123            0x7f2702d253e7ca59 => {
2124                let mut out = fidl::new_empty!(
2125                    MlmeOnScanEndRequest,
2126                    fidl::encoding::DefaultFuchsiaResourceDialect
2127                );
2128                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnScanEndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2129                Ok((MlmeEvent::OnScanEnd { end: out.end }))
2130            }
2131            0x3d915df5108ec4e1 => {
2132                let mut out = fidl::new_empty!(
2133                    MlmeOnScheduledScanMatchesAvailableRequest,
2134                    fidl::encoding::DefaultFuchsiaResourceDialect
2135                );
2136                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnScheduledScanMatchesAvailableRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2137                Ok((MlmeEvent::OnScheduledScanMatchesAvailable { txn_id: out.txn_id }))
2138            }
2139            0x4c2cb4b145163fd0 => {
2140                let mut out = fidl::new_empty!(
2141                    MlmeOnScheduledScanStoppedByFirmwareRequest,
2142                    fidl::encoding::DefaultFuchsiaResourceDialect
2143                );
2144                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnScheduledScanStoppedByFirmwareRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2145                Ok((MlmeEvent::OnScheduledScanStoppedByFirmware { txn_id: out.txn_id }))
2146            }
2147            0x77b27623279b981e => {
2148                let mut out = fidl::new_empty!(
2149                    MlmeConnectConfRequest,
2150                    fidl::encoding::DefaultFuchsiaResourceDialect
2151                );
2152                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeConnectConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2153                Ok((MlmeEvent::ConnectConf { resp: out.resp }))
2154            }
2155            0x3f608034faa054bc => {
2156                let mut out = fidl::new_empty!(
2157                    MlmeRoamConfRequest,
2158                    fidl::encoding::DefaultFuchsiaResourceDialect
2159                );
2160                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2161                Ok((MlmeEvent::RoamConf { conf: out.conf }))
2162            }
2163            0x270a1ec78672d094 => {
2164                let mut out = fidl::new_empty!(
2165                    MlmeRoamStartIndRequest,
2166                    fidl::encoding::DefaultFuchsiaResourceDialect
2167                );
2168                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamStartIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2169                Ok((MlmeEvent::RoamStartInd { ind: out.ind }))
2170            }
2171            0x26d074364fc84865 => {
2172                let mut out = fidl::new_empty!(
2173                    MlmeRoamResultIndRequest,
2174                    fidl::encoding::DefaultFuchsiaResourceDialect
2175                );
2176                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamResultIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2177                Ok((MlmeEvent::RoamResultInd { ind: out.ind }))
2178            }
2179            0x460f49ae891adbe9 => {
2180                let mut out = fidl::new_empty!(
2181                    MlmeAuthenticateIndRequest,
2182                    fidl::encoding::DefaultFuchsiaResourceDialect
2183                );
2184                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAuthenticateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2185                Ok((MlmeEvent::AuthenticateInd { ind: out.ind }))
2186            }
2187            0x3b44debc21b88c8c => {
2188                let mut out = fidl::new_empty!(
2189                    MlmeDeauthenticateConfRequest,
2190                    fidl::encoding::DefaultFuchsiaResourceDialect
2191                );
2192                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeauthenticateConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2193                Ok((MlmeEvent::DeauthenticateConf { resp: out.resp }))
2194            }
2195            0x7ee0889b326da1d7 => {
2196                let mut out = fidl::new_empty!(
2197                    MlmeDeauthenticateIndRequest,
2198                    fidl::encoding::DefaultFuchsiaResourceDialect
2199                );
2200                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeauthenticateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2201                Ok((MlmeEvent::DeauthenticateInd { ind: out.ind }))
2202            }
2203            0x6a86f20e3063dd63 => {
2204                let mut out = fidl::new_empty!(
2205                    MlmeAssociateIndRequest,
2206                    fidl::encoding::DefaultFuchsiaResourceDialect
2207                );
2208                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAssociateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2209                Ok((MlmeEvent::AssociateInd { ind: out.ind }))
2210            }
2211            0x61345fbce732a28d => {
2212                let mut out = fidl::new_empty!(
2213                    MlmeDisassociateConfRequest,
2214                    fidl::encoding::DefaultFuchsiaResourceDialect
2215                );
2216                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDisassociateConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2217                Ok((MlmeEvent::DisassociateConf { resp: out.resp }))
2218            }
2219            0x77ac0ebf387c1f35 => {
2220                let mut out = fidl::new_empty!(
2221                    MlmeDisassociateIndRequest,
2222                    fidl::encoding::DefaultFuchsiaResourceDialect
2223                );
2224                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDisassociateIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2225                Ok((MlmeEvent::DisassociateInd { ind: out.ind }))
2226            }
2227            0x15ea6cdf3b8382b3 => {
2228                let mut out = fidl::new_empty!(
2229                    MlmeStartConfRequest,
2230                    fidl::encoding::DefaultFuchsiaResourceDialect
2231                );
2232                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2233                Ok((MlmeEvent::StartConf { resp: out.resp }))
2234            }
2235            0x50b426ef4a84a2df => {
2236                let mut out = fidl::new_empty!(
2237                    MlmeStopConfRequest,
2238                    fidl::encoding::DefaultFuchsiaResourceDialect
2239                );
2240                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStopConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2241                Ok((MlmeEvent::StopConf { resp: out.resp }))
2242            }
2243            0x5bafb3a8d4039380 => {
2244                let mut out = fidl::new_empty!(
2245                    MlmeSetKeysConfRequest,
2246                    fidl::encoding::DefaultFuchsiaResourceDialect
2247                );
2248                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetKeysConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2249                Ok((MlmeEvent::SetKeysConf { conf: out.conf }))
2250            }
2251            0x6ffa21f4ee73ce64 => {
2252                let mut out = fidl::new_empty!(
2253                    MlmeEapolConfRequest,
2254                    fidl::encoding::DefaultFuchsiaResourceDialect
2255                );
2256                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeEapolConfRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2257                Ok((MlmeEvent::EapolConf { resp: out.resp }))
2258            }
2259            0x48f32a876aa53d8f => {
2260                let mut out = fidl::new_empty!(
2261                    MlmeSignalReportRequest,
2262                    fidl::encoding::DefaultFuchsiaResourceDialect
2263                );
2264                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSignalReportRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2265                Ok((MlmeEvent::SignalReport { ind: out.ind }))
2266            }
2267            0x5803e9572d8c8f => {
2268                let mut out = fidl::new_empty!(
2269                    MlmeOnRssiThresholdBreachedRequest,
2270                    fidl::encoding::DefaultFuchsiaResourceDialect
2271                );
2272                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnRssiThresholdBreachedRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2273                Ok((MlmeEvent::OnRssiThresholdBreached { cur_rssi_dbm: out.cur_rssi_dbm }))
2274            }
2275            0x7038dca46a3142fc => {
2276                let mut out = fidl::new_empty!(
2277                    MlmeEapolIndRequest,
2278                    fidl::encoding::DefaultFuchsiaResourceDialect
2279                );
2280                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeEapolIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2281                Ok((MlmeEvent::EapolInd { ind: out.ind }))
2282            }
2283            0x6f00a6f3cff9b1f5 => {
2284                let mut out = fidl::new_empty!(
2285                    MlmeRelayCapturedFrameRequest,
2286                    fidl::encoding::DefaultFuchsiaResourceDialect
2287                );
2288                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRelayCapturedFrameRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2289                Ok((MlmeEvent::RelayCapturedFrame { result: out.result }))
2290            }
2291            0x581750594e4c0c1 => {
2292                let mut out = fidl::new_empty!(
2293                    MlmeOnChannelSwitchedRequest,
2294                    fidl::encoding::DefaultFuchsiaResourceDialect
2295                );
2296                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnChannelSwitchedRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2297                Ok((MlmeEvent::OnChannelSwitched { info: out.info }))
2298            }
2299            0x1314fc2c79643f90 => {
2300                let mut out = fidl::new_empty!(
2301                    MlmeOnPmkAvailableRequest,
2302                    fidl::encoding::DefaultFuchsiaResourceDialect
2303                );
2304                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnPmkAvailableRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2305                Ok((MlmeEvent::OnPmkAvailable { info: out.info }))
2306            }
2307            0x6308b10e18986d7e => {
2308                let mut out = fidl::new_empty!(
2309                    MlmeOnSaeHandshakeIndRequest,
2310                    fidl::encoding::DefaultFuchsiaResourceDialect
2311                );
2312                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnSaeHandshakeIndRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2313                Ok((MlmeEvent::OnSaeHandshakeInd { ind: out.ind }))
2314            }
2315            0x4ebf51c86ef5f3cd => {
2316                let mut out = fidl::new_empty!(
2317                    MlmeOnSaeFrameRxRequest,
2318                    fidl::encoding::DefaultFuchsiaResourceDialect
2319                );
2320                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnSaeFrameRxRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2321                Ok((MlmeEvent::OnSaeFrameRx { frame: out.frame }))
2322            }
2323            0x53f056b432e7b5cb => {
2324                let mut out = fidl::new_empty!(
2325                    MlmeOnWmmStatusRespRequest,
2326                    fidl::encoding::DefaultFuchsiaResourceDialect
2327                );
2328                fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeOnWmmStatusRespRequest>(&tx_header, _body_bytes, _handles, &mut out)?;
2329                Ok((MlmeEvent::OnWmmStatusResp { status: out.status, resp: out.resp }))
2330            }
2331            _ => Err(fidl::Error::UnknownOrdinal {
2332                ordinal: tx_header.ordinal,
2333                protocol_name: <MlmeMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2334            }),
2335        }
2336    }
2337}
2338
2339/// A Stream of incoming requests for fuchsia.wlan.mlme/MLME.
2340pub struct MlmeRequestStream {
2341    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2342    is_terminated: bool,
2343}
2344
2345impl std::marker::Unpin for MlmeRequestStream {}
2346
2347impl futures::stream::FusedStream for MlmeRequestStream {
2348    fn is_terminated(&self) -> bool {
2349        self.is_terminated
2350    }
2351}
2352
2353impl fidl::endpoints::RequestStream for MlmeRequestStream {
2354    type Protocol = MlmeMarker;
2355    type ControlHandle = MlmeControlHandle;
2356
2357    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2358        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2359    }
2360
2361    fn control_handle(&self) -> Self::ControlHandle {
2362        MlmeControlHandle { inner: self.inner.clone() }
2363    }
2364
2365    fn into_inner(
2366        self,
2367    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2368    {
2369        (self.inner, self.is_terminated)
2370    }
2371
2372    fn from_inner(
2373        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2374        is_terminated: bool,
2375    ) -> Self {
2376        Self { inner, is_terminated }
2377    }
2378}
2379
2380impl futures::Stream for MlmeRequestStream {
2381    type Item = Result<MlmeRequest, fidl::Error>;
2382
2383    fn poll_next(
2384        mut self: std::pin::Pin<&mut Self>,
2385        cx: &mut std::task::Context<'_>,
2386    ) -> std::task::Poll<Option<Self::Item>> {
2387        let this = &mut *self;
2388        if this.inner.check_shutdown(cx) {
2389            this.is_terminated = true;
2390            return std::task::Poll::Ready(None);
2391        }
2392        if this.is_terminated {
2393            panic!("polled MlmeRequestStream after completion");
2394        }
2395        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2396            |bytes, handles| {
2397                match this.inner.channel().read_etc(cx, bytes, handles) {
2398                    std::task::Poll::Ready(Ok(())) => {}
2399                    std::task::Poll::Pending => return std::task::Poll::Pending,
2400                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2401                        this.is_terminated = true;
2402                        return std::task::Poll::Ready(None);
2403                    }
2404                    std::task::Poll::Ready(Err(e)) => {
2405                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2406                            e.into(),
2407                        ))));
2408                    }
2409                }
2410
2411                // A message has been received from the channel
2412                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2413
2414                std::task::Poll::Ready(Some(match header.ordinal {
2415                    0x342cc5ec6a957479 => {
2416                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2417                        let mut req = fidl::new_empty!(
2418                            MlmeStartScanRequest,
2419                            fidl::encoding::DefaultFuchsiaResourceDialect
2420                        );
2421                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartScanRequest>(&header, _body_bytes, handles, &mut req)?;
2422                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2423                        Ok(MlmeRequest::StartScan { req: req.req, control_handle })
2424                    }
2425                    0x7fff163af4620212 => {
2426                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2427                        let mut req = fidl::new_empty!(
2428                            MlmeStartScheduledScanRequest,
2429                            fidl::encoding::DefaultFuchsiaResourceDialect
2430                        );
2431                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartScheduledScanRequest>(&header, _body_bytes, handles, &mut req)?;
2432                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2433                        Ok(MlmeRequest::StartScheduledScan {
2434                            txn_id: req.txn_id,
2435                            req: req.req,
2436
2437                            responder: MlmeStartScheduledScanResponder {
2438                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2439                                tx_id: header.tx_id,
2440                            },
2441                        })
2442                    }
2443                    0x5fbc466f3daa4dd9 => {
2444                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2445                        let mut req = fidl::new_empty!(
2446                            MlmeStopScheduledScanRequest,
2447                            fidl::encoding::DefaultFuchsiaResourceDialect
2448                        );
2449                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStopScheduledScanRequest>(&header, _body_bytes, handles, &mut req)?;
2450                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2451                        Ok(MlmeRequest::StopScheduledScan {
2452                            txn_id: req.txn_id,
2453
2454                            responder: MlmeStopScheduledScanResponder {
2455                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2456                                tx_id: header.tx_id,
2457                            },
2458                        })
2459                    }
2460                    0x1ecc6a7fe7f9fcff => {
2461                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2462                        let mut req = fidl::new_empty!(
2463                            fidl::encoding::EmptyPayload,
2464                            fidl::encoding::DefaultFuchsiaResourceDialect
2465                        );
2466                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2467                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2468                        Ok(MlmeRequest::GetScheduledScanEnabled {
2469                            responder: MlmeGetScheduledScanEnabledResponder {
2470                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2471                                tx_id: header.tx_id,
2472                            },
2473                        })
2474                    }
2475                    0x31153dc85f8f64c => {
2476                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2477                        let mut req = fidl::new_empty!(
2478                            MlmeConnectReqRequest,
2479                            fidl::encoding::DefaultFuchsiaResourceDialect
2480                        );
2481                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeConnectReqRequest>(&header, _body_bytes, handles, &mut req)?;
2482                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2483                        Ok(MlmeRequest::ConnectReq { req: req.req, control_handle })
2484                    }
2485                    0x74e0f1bd758b6b78 => {
2486                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2487                        let mut req = fidl::new_empty!(
2488                            MlmeReconnectReqRequest,
2489                            fidl::encoding::DefaultFuchsiaResourceDialect
2490                        );
2491                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeReconnectReqRequest>(&header, _body_bytes, handles, &mut req)?;
2492                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2493                        Ok(MlmeRequest::ReconnectReq { req: req.req, control_handle })
2494                    }
2495                    0x3ba163eadf7dba45 => {
2496                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2497                        let mut req = fidl::new_empty!(
2498                            MlmeRoamReqRequest,
2499                            fidl::encoding::DefaultFuchsiaResourceDialect
2500                        );
2501                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeRoamReqRequest>(&header, _body_bytes, handles, &mut req)?;
2502                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2503                        Ok(MlmeRequest::RoamReq { req: req.req, control_handle })
2504                    }
2505                    0x26108aade2fdd2f4 => {
2506                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2507                        let mut req = fidl::new_empty!(
2508                            MlmeAuthenticateRespRequest,
2509                            fidl::encoding::DefaultFuchsiaResourceDialect
2510                        );
2511                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAuthenticateRespRequest>(&header, _body_bytes, handles, &mut req)?;
2512                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2513                        Ok(MlmeRequest::AuthenticateResp { resp: req.resp, control_handle })
2514                    }
2515                    0x228983b200de5d12 => {
2516                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2517                        let mut req = fidl::new_empty!(
2518                            MlmeDeauthenticateReqRequest,
2519                            fidl::encoding::DefaultFuchsiaResourceDialect
2520                        );
2521                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeauthenticateReqRequest>(&header, _body_bytes, handles, &mut req)?;
2522                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2523                        Ok(MlmeRequest::DeauthenticateReq { req: req.req, control_handle })
2524                    }
2525                    0x70244dbd652ed6d9 => {
2526                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2527                        let mut req = fidl::new_empty!(
2528                            MlmeAssociateRespRequest,
2529                            fidl::encoding::DefaultFuchsiaResourceDialect
2530                        );
2531                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeAssociateRespRequest>(&header, _body_bytes, handles, &mut req)?;
2532                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2533                        Ok(MlmeRequest::AssociateResp { resp: req.resp, control_handle })
2534                    }
2535                    0x5765807f1387d764 => {
2536                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2537                        let mut req = fidl::new_empty!(
2538                            MlmeDisassociateReqRequest,
2539                            fidl::encoding::DefaultFuchsiaResourceDialect
2540                        );
2541                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDisassociateReqRequest>(&header, _body_bytes, handles, &mut req)?;
2542                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2543                        Ok(MlmeRequest::DisassociateReq { req: req.req, control_handle })
2544                    }
2545                    0x780b98c58a286b9f => {
2546                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2547                        let mut req = fidl::new_empty!(
2548                            MlmeResetReqRequest,
2549                            fidl::encoding::DefaultFuchsiaResourceDialect
2550                        );
2551                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeResetReqRequest>(&header, _body_bytes, handles, &mut req)?;
2552                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2553                        Ok(MlmeRequest::ResetReq { req: req.req, control_handle })
2554                    }
2555                    0x5d95885f8053654 => {
2556                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2557                        let mut req = fidl::new_empty!(
2558                            MlmeStartReqRequest,
2559                            fidl::encoding::DefaultFuchsiaResourceDialect
2560                        );
2561                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartReqRequest>(&header, _body_bytes, handles, &mut req)?;
2562                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2563                        Ok(MlmeRequest::StartReq { req: req.req, control_handle })
2564                    }
2565                    0x27b9a2ab04a2c79f => {
2566                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2567                        let mut req = fidl::new_empty!(
2568                            MlmeStopReqRequest,
2569                            fidl::encoding::DefaultFuchsiaResourceDialect
2570                        );
2571                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStopReqRequest>(&header, _body_bytes, handles, &mut req)?;
2572                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2573                        Ok(MlmeRequest::StopReq { req: req.req, control_handle })
2574                    }
2575                    0x6b30a07fd3a11a79 => {
2576                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2577                        let mut req = fidl::new_empty!(
2578                            MlmeSetKeysReqRequest,
2579                            fidl::encoding::DefaultFuchsiaResourceDialect
2580                        );
2581                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetKeysReqRequest>(&header, _body_bytes, handles, &mut req)?;
2582                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2583                        Ok(MlmeRequest::SetKeysReq { req: req.req, control_handle })
2584                    }
2585                    0x1e3524d20d190c8f => {
2586                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2587                        let mut req = fidl::new_empty!(
2588                            MlmeDeleteKeysReqRequest,
2589                            fidl::encoding::DefaultFuchsiaResourceDialect
2590                        );
2591                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeDeleteKeysReqRequest>(&header, _body_bytes, handles, &mut req)?;
2592                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2593                        Ok(MlmeRequest::DeleteKeysReq { req: req.req, control_handle })
2594                    }
2595                    0xc3c096924704d4 => {
2596                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2597                        let mut req = fidl::new_empty!(
2598                            MlmeEapolReqRequest,
2599                            fidl::encoding::DefaultFuchsiaResourceDialect
2600                        );
2601                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeEapolReqRequest>(&header, _body_bytes, handles, &mut req)?;
2602                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2603                        Ok(MlmeRequest::EapolReq { req: req.req, control_handle })
2604                    }
2605                    0x4e47065668890c8d => {
2606                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2607                        let mut req = fidl::new_empty!(
2608                            MlmeSetControlledPortRequest,
2609                            fidl::encoding::DefaultFuchsiaResourceDialect
2610                        );
2611                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetControlledPortRequest>(&header, _body_bytes, handles, &mut req)?;
2612                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2613                        Ok(MlmeRequest::SetControlledPort { req: req.req, control_handle })
2614                    }
2615                    0x6ee3e7f63f2b7bc0 => {
2616                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2617                        let mut req = fidl::new_empty!(
2618                            fidl::encoding::EmptyPayload,
2619                            fidl::encoding::DefaultFuchsiaResourceDialect
2620                        );
2621                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2622                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2623                        Ok(MlmeRequest::QueryDeviceInfo {
2624                            responder: MlmeQueryDeviceInfoResponder {
2625                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2626                                tx_id: header.tx_id,
2627                            },
2628                        })
2629                    }
2630                    0x1598879b70332c99 => {
2631                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2632                        let mut req = fidl::new_empty!(
2633                            fidl::encoding::EmptyPayload,
2634                            fidl::encoding::DefaultFuchsiaResourceDialect
2635                        );
2636                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2637                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2638                        Ok(MlmeRequest::QueryTelemetrySupport {
2639                            responder: MlmeQueryTelemetrySupportResponder {
2640                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2641                                tx_id: header.tx_id,
2642                            },
2643                        })
2644                    }
2645                    0xede1a8342d1b211 => {
2646                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2647                        let mut req = fidl::new_empty!(
2648                            fidl::encoding::EmptyPayload,
2649                            fidl::encoding::DefaultFuchsiaResourceDialect
2650                        );
2651                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2652                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2653                        Ok(MlmeRequest::GetIfaceStats {
2654                            responder: MlmeGetIfaceStatsResponder {
2655                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2656                                tx_id: header.tx_id,
2657                            },
2658                        })
2659                    }
2660                    0x1979c9d3449f8675 => {
2661                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2662                        let mut req = fidl::new_empty!(
2663                            fidl::encoding::EmptyPayload,
2664                            fidl::encoding::DefaultFuchsiaResourceDialect
2665                        );
2666                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2667                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2668                        Ok(MlmeRequest::GetIfaceHistogramStats {
2669                            responder: MlmeGetIfaceHistogramStatsResponder {
2670                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2671                                tx_id: header.tx_id,
2672                            },
2673                        })
2674                    }
2675                    0x7e47e7ebe92acec9 => {
2676                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2677                        let mut req = fidl::new_empty!(
2678                            fidl::encoding::EmptyPayload,
2679                            fidl::encoding::DefaultFuchsiaResourceDialect
2680                        );
2681                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2682                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2683                        Ok(MlmeRequest::GetSignalReport {
2684                            responder: MlmeGetSignalReportResponder {
2685                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2686                                tx_id: header.tx_id,
2687                            },
2688                        })
2689                    }
2690                    0x4ac5d1e66fe1ffd5 => {
2691                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2692                        let mut req = fidl::new_empty!(
2693                            fidl::encoding::EmptyPayload,
2694                            fidl::encoding::DefaultFuchsiaResourceDialect
2695                        );
2696                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2697                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2698                        Ok(MlmeRequest::ListMinstrelPeers {
2699                            responder: MlmeListMinstrelPeersResponder {
2700                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2701                                tx_id: header.tx_id,
2702                            },
2703                        })
2704                    }
2705                    0x2f688b1245323f4b => {
2706                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2707                        let mut req = fidl::new_empty!(
2708                            MlmeGetMinstrelStatsRequest,
2709                            fidl::encoding::DefaultFuchsiaResourceDialect
2710                        );
2711                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeGetMinstrelStatsRequest>(&header, _body_bytes, handles, &mut req)?;
2712                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2713                        Ok(MlmeRequest::GetMinstrelStats {
2714                            req: req.req,
2715
2716                            responder: MlmeGetMinstrelStatsResponder {
2717                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2718                                tx_id: header.tx_id,
2719                            },
2720                        })
2721                    }
2722                    0x23b369ed5749ee69 => {
2723                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2724                        let mut req = fidl::new_empty!(
2725                            MlmeStartCaptureFramesRequest,
2726                            fidl::encoding::DefaultFuchsiaResourceDialect
2727                        );
2728                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartCaptureFramesRequest>(&header, _body_bytes, handles, &mut req)?;
2729                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2730                        Ok(MlmeRequest::StartCaptureFrames {
2731                            req: req.req,
2732
2733                            responder: MlmeStartCaptureFramesResponder {
2734                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2735                                tx_id: header.tx_id,
2736                            },
2737                        })
2738                    }
2739                    0x2f1aebbc68bf7c54 => {
2740                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2741                        let mut req = fidl::new_empty!(
2742                            fidl::encoding::EmptyPayload,
2743                            fidl::encoding::DefaultFuchsiaResourceDialect
2744                        );
2745                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2746                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2747                        Ok(MlmeRequest::StopCaptureFrames { control_handle })
2748                    }
2749                    0x28477bd2f7a5ab0c => {
2750                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2751                        let mut req = fidl::new_empty!(
2752                            MlmeSaeHandshakeRespRequest,
2753                            fidl::encoding::DefaultFuchsiaResourceDialect
2754                        );
2755                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSaeHandshakeRespRequest>(&header, _body_bytes, handles, &mut req)?;
2756                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2757                        Ok(MlmeRequest::SaeHandshakeResp { resp: req.resp, control_handle })
2758                    }
2759                    0x7700c0d536733d8c => {
2760                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2761                        let mut req = fidl::new_empty!(
2762                            MlmeSaeFrameTxRequest,
2763                            fidl::encoding::DefaultFuchsiaResourceDialect
2764                        );
2765                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSaeFrameTxRequest>(&header, _body_bytes, handles, &mut req)?;
2766                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2767                        Ok(MlmeRequest::SaeFrameTx { frame: req.frame, control_handle })
2768                    }
2769                    0xef4851f6088fede => {
2770                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2771                        let mut req = fidl::new_empty!(
2772                            fidl::encoding::EmptyPayload,
2773                            fidl::encoding::DefaultFuchsiaResourceDialect
2774                        );
2775                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2776                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2777                        Ok(MlmeRequest::WmmStatusReq { control_handle })
2778                    }
2779                    0x7aea59787cfd385a => {
2780                        header.validate_request_tx_id(fidl::MethodType::OneWay)?;
2781                        let mut req = fidl::new_empty!(
2782                            MlmeFinalizeAssociationReqRequest,
2783                            fidl::encoding::DefaultFuchsiaResourceDialect
2784                        );
2785                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeFinalizeAssociationReqRequest>(&header, _body_bytes, handles, &mut req)?;
2786                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2787                        Ok(MlmeRequest::FinalizeAssociationReq {
2788                            negotiated_capabilities: req.negotiated_capabilities,
2789
2790                            control_handle,
2791                        })
2792                    }
2793                    0x476999f9bb27afe1 => {
2794                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2795                        let mut req = fidl::new_empty!(
2796                            MlmeSetMacAddressRequest,
2797                            fidl::encoding::DefaultFuchsiaResourceDialect
2798                        );
2799                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetMacAddressRequest>(&header, _body_bytes, handles, &mut req)?;
2800                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2801                        Ok(MlmeRequest::SetMacAddress {
2802                            mac_addr: req.mac_addr,
2803
2804                            responder: MlmeSetMacAddressResponder {
2805                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2806                                tx_id: header.tx_id,
2807                            },
2808                        })
2809                    }
2810                    0x267565b4916c825b => {
2811                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2812                        let mut req = fidl::new_empty!(
2813                            MlmeInstallApfPacketFilterRequest,
2814                            fidl::encoding::DefaultFuchsiaResourceDialect
2815                        );
2816                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeInstallApfPacketFilterRequest>(&header, _body_bytes, handles, &mut req)?;
2817                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2818                        Ok(MlmeRequest::InstallApfPacketFilter {
2819                            program: req.program,
2820
2821                            responder: MlmeInstallApfPacketFilterResponder {
2822                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2823                                tx_id: header.tx_id,
2824                            },
2825                        })
2826                    }
2827                    0x6040d744f1b2cb61 => {
2828                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2829                        let mut req = fidl::new_empty!(
2830                            fidl::encoding::EmptyPayload,
2831                            fidl::encoding::DefaultFuchsiaResourceDialect
2832                        );
2833                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2834                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2835                        Ok(MlmeRequest::ReadApfPacketFilterData {
2836                            responder: MlmeReadApfPacketFilterDataResponder {
2837                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2838                                tx_id: header.tx_id,
2839                            },
2840                        })
2841                    }
2842                    0x6d99bdca77076aea => {
2843                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2844                        let mut req = fidl::new_empty!(
2845                            MlmeSetApfPacketFilterEnabledRequest,
2846                            fidl::encoding::DefaultFuchsiaResourceDialect
2847                        );
2848                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeSetApfPacketFilterEnabledRequest>(&header, _body_bytes, handles, &mut req)?;
2849                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2850                        Ok(MlmeRequest::SetApfPacketFilterEnabled {
2851                            enabled: req.enabled,
2852
2853                            responder: MlmeSetApfPacketFilterEnabledResponder {
2854                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2855                                tx_id: header.tx_id,
2856                            },
2857                        })
2858                    }
2859                    0x1df408bc154be1e4 => {
2860                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2861                        let mut req = fidl::new_empty!(
2862                            fidl::encoding::EmptyPayload,
2863                            fidl::encoding::DefaultFuchsiaResourceDialect
2864                        );
2865                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2866                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2867                        Ok(MlmeRequest::GetApfPacketFilterEnabled {
2868                            responder: MlmeGetApfPacketFilterEnabledResponder {
2869                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2870                                tx_id: header.tx_id,
2871                            },
2872                        })
2873                    }
2874                    0x542a970415b1d912 => {
2875                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2876                        let mut req = fidl::new_empty!(
2877                            MlmeStartRssiMonitorRequest,
2878                            fidl::encoding::DefaultFuchsiaResourceDialect
2879                        );
2880                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<MlmeStartRssiMonitorRequest>(&header, _body_bytes, handles, &mut req)?;
2881                        let control_handle = MlmeControlHandle { inner: this.inner.clone() };
2882                        Ok(MlmeRequest::StartRssiMonitor {
2883                            min_rssi_dbm: req.min_rssi_dbm,
2884                            max_rssi_dbm: req.max_rssi_dbm,
2885
2886                            responder: MlmeStartRssiMonitorResponder {
2887                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2888                                tx_id: header.tx_id,
2889                            },
2890                        })
2891                    }
2892                    _ => Err(fidl::Error::UnknownOrdinal {
2893                        ordinal: header.ordinal,
2894                        protocol_name: <MlmeMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2895                    }),
2896                }))
2897            },
2898        )
2899    }
2900}
2901
2902#[derive(Debug)]
2903pub enum MlmeRequest {
2904    StartScan {
2905        req: ScanRequest,
2906        control_handle: MlmeControlHandle,
2907    },
2908    /// Starts scheduled scanning.
2909    StartScheduledScan {
2910        txn_id: u64,
2911        req: fidl_fuchsia_wlan_common::ScheduledScanRequest,
2912        responder: MlmeStartScheduledScanResponder,
2913    },
2914    /// Stops scheduled scanning.
2915    StopScheduledScan {
2916        txn_id: u64,
2917        responder: MlmeStopScheduledScanResponder,
2918    },
2919    /// Returns the transaction IDs of any currently active scheduled scans.
2920    GetScheduledScanEnabled {
2921        responder: MlmeGetScheduledScanEnabledResponder,
2922    },
2923    ConnectReq {
2924        req: ConnectRequest,
2925        control_handle: MlmeControlHandle,
2926    },
2927    ReconnectReq {
2928        req: ReconnectRequest,
2929        control_handle: MlmeControlHandle,
2930    },
2931    /// Initiate a roam attempt (SME-initiated).
2932    RoamReq {
2933        req: RoamRequest,
2934        control_handle: MlmeControlHandle,
2935    },
2936    AuthenticateResp {
2937        resp: AuthenticateResponse,
2938        control_handle: MlmeControlHandle,
2939    },
2940    DeauthenticateReq {
2941        req: DeauthenticateRequest,
2942        control_handle: MlmeControlHandle,
2943    },
2944    AssociateResp {
2945        resp: AssociateResponse,
2946        control_handle: MlmeControlHandle,
2947    },
2948    DisassociateReq {
2949        req: DisassociateRequest,
2950        control_handle: MlmeControlHandle,
2951    },
2952    ResetReq {
2953        req: ResetRequest,
2954        control_handle: MlmeControlHandle,
2955    },
2956    StartReq {
2957        req: StartRequest,
2958        control_handle: MlmeControlHandle,
2959    },
2960    StopReq {
2961        req: StopRequest,
2962        control_handle: MlmeControlHandle,
2963    },
2964    SetKeysReq {
2965        req: SetKeysRequest,
2966        control_handle: MlmeControlHandle,
2967    },
2968    DeleteKeysReq {
2969        req: DeleteKeysRequest,
2970        control_handle: MlmeControlHandle,
2971    },
2972    EapolReq {
2973        req: EapolRequest,
2974        control_handle: MlmeControlHandle,
2975    },
2976    SetControlledPort {
2977        req: SetControlledPortRequest,
2978        control_handle: MlmeControlHandle,
2979    },
2980    QueryDeviceInfo {
2981        responder: MlmeQueryDeviceInfoResponder,
2982    },
2983    QueryTelemetrySupport {
2984        responder: MlmeQueryTelemetrySupportResponder,
2985    },
2986    GetIfaceStats {
2987        responder: MlmeGetIfaceStatsResponder,
2988    },
2989    GetIfaceHistogramStats {
2990        responder: MlmeGetIfaceHistogramStatsResponder,
2991    },
2992    GetSignalReport {
2993        responder: MlmeGetSignalReportResponder,
2994    },
2995    ListMinstrelPeers {
2996        responder: MlmeListMinstrelPeersResponder,
2997    },
2998    GetMinstrelStats {
2999        req: MinstrelStatsRequest,
3000        responder: MlmeGetMinstrelStatsResponder,
3001    },
3002    StartCaptureFrames {
3003        req: StartCaptureFramesRequest,
3004        responder: MlmeStartCaptureFramesResponder,
3005    },
3006    StopCaptureFrames {
3007        control_handle: MlmeControlHandle,
3008    },
3009    /// Notifies that SAE authentication is completed.
3010    SaeHandshakeResp {
3011        resp: SaeHandshakeResponse,
3012        control_handle: MlmeControlHandle,
3013    },
3014    /// Transmits SAE frame (if SME is managing SAE authentication).
3015    SaeFrameTx {
3016        frame: SaeFrame,
3017        control_handle: MlmeControlHandle,
3018    },
3019    WmmStatusReq {
3020        control_handle: MlmeControlHandle,
3021    },
3022    FinalizeAssociationReq {
3023        negotiated_capabilities: NegotiatedCapabilities,
3024        control_handle: MlmeControlHandle,
3025    },
3026    SetMacAddress {
3027        mac_addr: [u8; 6],
3028        responder: MlmeSetMacAddressResponder,
3029    },
3030    InstallApfPacketFilter {
3031        program: Vec<u8>,
3032        responder: MlmeInstallApfPacketFilterResponder,
3033    },
3034    ReadApfPacketFilterData {
3035        responder: MlmeReadApfPacketFilterDataResponder,
3036    },
3037    SetApfPacketFilterEnabled {
3038        enabled: bool,
3039        responder: MlmeSetApfPacketFilterEnabledResponder,
3040    },
3041    GetApfPacketFilterEnabled {
3042        responder: MlmeGetApfPacketFilterEnabledResponder,
3043    },
3044    StartRssiMonitor {
3045        min_rssi_dbm: i8,
3046        max_rssi_dbm: i8,
3047        responder: MlmeStartRssiMonitorResponder,
3048    },
3049}
3050
3051impl MlmeRequest {
3052    #[allow(irrefutable_let_patterns)]
3053    pub fn into_start_scan(self) -> Option<(ScanRequest, MlmeControlHandle)> {
3054        if let MlmeRequest::StartScan { req, control_handle } = self {
3055            Some((req, control_handle))
3056        } else {
3057            None
3058        }
3059    }
3060
3061    #[allow(irrefutable_let_patterns)]
3062    pub fn into_start_scheduled_scan(
3063        self,
3064    ) -> Option<(
3065        u64,
3066        fidl_fuchsia_wlan_common::ScheduledScanRequest,
3067        MlmeStartScheduledScanResponder,
3068    )> {
3069        if let MlmeRequest::StartScheduledScan { txn_id, req, responder } = self {
3070            Some((txn_id, req, responder))
3071        } else {
3072            None
3073        }
3074    }
3075
3076    #[allow(irrefutable_let_patterns)]
3077    pub fn into_stop_scheduled_scan(self) -> Option<(u64, MlmeStopScheduledScanResponder)> {
3078        if let MlmeRequest::StopScheduledScan { txn_id, responder } = self {
3079            Some((txn_id, responder))
3080        } else {
3081            None
3082        }
3083    }
3084
3085    #[allow(irrefutable_let_patterns)]
3086    pub fn into_get_scheduled_scan_enabled(self) -> Option<(MlmeGetScheduledScanEnabledResponder)> {
3087        if let MlmeRequest::GetScheduledScanEnabled { responder } = self {
3088            Some((responder))
3089        } else {
3090            None
3091        }
3092    }
3093
3094    #[allow(irrefutable_let_patterns)]
3095    pub fn into_connect_req(self) -> Option<(ConnectRequest, MlmeControlHandle)> {
3096        if let MlmeRequest::ConnectReq { req, control_handle } = self {
3097            Some((req, control_handle))
3098        } else {
3099            None
3100        }
3101    }
3102
3103    #[allow(irrefutable_let_patterns)]
3104    pub fn into_reconnect_req(self) -> Option<(ReconnectRequest, MlmeControlHandle)> {
3105        if let MlmeRequest::ReconnectReq { req, control_handle } = self {
3106            Some((req, control_handle))
3107        } else {
3108            None
3109        }
3110    }
3111
3112    #[allow(irrefutable_let_patterns)]
3113    pub fn into_roam_req(self) -> Option<(RoamRequest, MlmeControlHandle)> {
3114        if let MlmeRequest::RoamReq { req, control_handle } = self {
3115            Some((req, control_handle))
3116        } else {
3117            None
3118        }
3119    }
3120
3121    #[allow(irrefutable_let_patterns)]
3122    pub fn into_authenticate_resp(self) -> Option<(AuthenticateResponse, MlmeControlHandle)> {
3123        if let MlmeRequest::AuthenticateResp { resp, control_handle } = self {
3124            Some((resp, control_handle))
3125        } else {
3126            None
3127        }
3128    }
3129
3130    #[allow(irrefutable_let_patterns)]
3131    pub fn into_deauthenticate_req(self) -> Option<(DeauthenticateRequest, MlmeControlHandle)> {
3132        if let MlmeRequest::DeauthenticateReq { req, control_handle } = self {
3133            Some((req, control_handle))
3134        } else {
3135            None
3136        }
3137    }
3138
3139    #[allow(irrefutable_let_patterns)]
3140    pub fn into_associate_resp(self) -> Option<(AssociateResponse, MlmeControlHandle)> {
3141        if let MlmeRequest::AssociateResp { resp, control_handle } = self {
3142            Some((resp, control_handle))
3143        } else {
3144            None
3145        }
3146    }
3147
3148    #[allow(irrefutable_let_patterns)]
3149    pub fn into_disassociate_req(self) -> Option<(DisassociateRequest, MlmeControlHandle)> {
3150        if let MlmeRequest::DisassociateReq { req, control_handle } = self {
3151            Some((req, control_handle))
3152        } else {
3153            None
3154        }
3155    }
3156
3157    #[allow(irrefutable_let_patterns)]
3158    pub fn into_reset_req(self) -> Option<(ResetRequest, MlmeControlHandle)> {
3159        if let MlmeRequest::ResetReq { req, control_handle } = self {
3160            Some((req, control_handle))
3161        } else {
3162            None
3163        }
3164    }
3165
3166    #[allow(irrefutable_let_patterns)]
3167    pub fn into_start_req(self) -> Option<(StartRequest, MlmeControlHandle)> {
3168        if let MlmeRequest::StartReq { req, control_handle } = self {
3169            Some((req, control_handle))
3170        } else {
3171            None
3172        }
3173    }
3174
3175    #[allow(irrefutable_let_patterns)]
3176    pub fn into_stop_req(self) -> Option<(StopRequest, MlmeControlHandle)> {
3177        if let MlmeRequest::StopReq { req, control_handle } = self {
3178            Some((req, control_handle))
3179        } else {
3180            None
3181        }
3182    }
3183
3184    #[allow(irrefutable_let_patterns)]
3185    pub fn into_set_keys_req(self) -> Option<(SetKeysRequest, MlmeControlHandle)> {
3186        if let MlmeRequest::SetKeysReq { req, control_handle } = self {
3187            Some((req, control_handle))
3188        } else {
3189            None
3190        }
3191    }
3192
3193    #[allow(irrefutable_let_patterns)]
3194    pub fn into_delete_keys_req(self) -> Option<(DeleteKeysRequest, MlmeControlHandle)> {
3195        if let MlmeRequest::DeleteKeysReq { req, control_handle } = self {
3196            Some((req, control_handle))
3197        } else {
3198            None
3199        }
3200    }
3201
3202    #[allow(irrefutable_let_patterns)]
3203    pub fn into_eapol_req(self) -> Option<(EapolRequest, MlmeControlHandle)> {
3204        if let MlmeRequest::EapolReq { req, control_handle } = self {
3205            Some((req, control_handle))
3206        } else {
3207            None
3208        }
3209    }
3210
3211    #[allow(irrefutable_let_patterns)]
3212    pub fn into_set_controlled_port(self) -> Option<(SetControlledPortRequest, MlmeControlHandle)> {
3213        if let MlmeRequest::SetControlledPort { req, control_handle } = self {
3214            Some((req, control_handle))
3215        } else {
3216            None
3217        }
3218    }
3219
3220    #[allow(irrefutable_let_patterns)]
3221    pub fn into_query_device_info(self) -> Option<(MlmeQueryDeviceInfoResponder)> {
3222        if let MlmeRequest::QueryDeviceInfo { responder } = self { Some((responder)) } else { None }
3223    }
3224
3225    #[allow(irrefutable_let_patterns)]
3226    pub fn into_query_telemetry_support(self) -> Option<(MlmeQueryTelemetrySupportResponder)> {
3227        if let MlmeRequest::QueryTelemetrySupport { responder } = self {
3228            Some((responder))
3229        } else {
3230            None
3231        }
3232    }
3233
3234    #[allow(irrefutable_let_patterns)]
3235    pub fn into_get_iface_stats(self) -> Option<(MlmeGetIfaceStatsResponder)> {
3236        if let MlmeRequest::GetIfaceStats { responder } = self { Some((responder)) } else { None }
3237    }
3238
3239    #[allow(irrefutable_let_patterns)]
3240    pub fn into_get_iface_histogram_stats(self) -> Option<(MlmeGetIfaceHistogramStatsResponder)> {
3241        if let MlmeRequest::GetIfaceHistogramStats { responder } = self {
3242            Some((responder))
3243        } else {
3244            None
3245        }
3246    }
3247
3248    #[allow(irrefutable_let_patterns)]
3249    pub fn into_get_signal_report(self) -> Option<(MlmeGetSignalReportResponder)> {
3250        if let MlmeRequest::GetSignalReport { responder } = self { Some((responder)) } else { None }
3251    }
3252
3253    #[allow(irrefutable_let_patterns)]
3254    pub fn into_list_minstrel_peers(self) -> Option<(MlmeListMinstrelPeersResponder)> {
3255        if let MlmeRequest::ListMinstrelPeers { responder } = self {
3256            Some((responder))
3257        } else {
3258            None
3259        }
3260    }
3261
3262    #[allow(irrefutable_let_patterns)]
3263    pub fn into_get_minstrel_stats(
3264        self,
3265    ) -> Option<(MinstrelStatsRequest, MlmeGetMinstrelStatsResponder)> {
3266        if let MlmeRequest::GetMinstrelStats { req, responder } = self {
3267            Some((req, responder))
3268        } else {
3269            None
3270        }
3271    }
3272
3273    #[allow(irrefutable_let_patterns)]
3274    pub fn into_start_capture_frames(
3275        self,
3276    ) -> Option<(StartCaptureFramesRequest, MlmeStartCaptureFramesResponder)> {
3277        if let MlmeRequest::StartCaptureFrames { req, responder } = self {
3278            Some((req, responder))
3279        } else {
3280            None
3281        }
3282    }
3283
3284    #[allow(irrefutable_let_patterns)]
3285    pub fn into_stop_capture_frames(self) -> Option<(MlmeControlHandle)> {
3286        if let MlmeRequest::StopCaptureFrames { control_handle } = self {
3287            Some((control_handle))
3288        } else {
3289            None
3290        }
3291    }
3292
3293    #[allow(irrefutable_let_patterns)]
3294    pub fn into_sae_handshake_resp(self) -> Option<(SaeHandshakeResponse, MlmeControlHandle)> {
3295        if let MlmeRequest::SaeHandshakeResp { resp, control_handle } = self {
3296            Some((resp, control_handle))
3297        } else {
3298            None
3299        }
3300    }
3301
3302    #[allow(irrefutable_let_patterns)]
3303    pub fn into_sae_frame_tx(self) -> Option<(SaeFrame, MlmeControlHandle)> {
3304        if let MlmeRequest::SaeFrameTx { frame, control_handle } = self {
3305            Some((frame, control_handle))
3306        } else {
3307            None
3308        }
3309    }
3310
3311    #[allow(irrefutable_let_patterns)]
3312    pub fn into_wmm_status_req(self) -> Option<(MlmeControlHandle)> {
3313        if let MlmeRequest::WmmStatusReq { control_handle } = self {
3314            Some((control_handle))
3315        } else {
3316            None
3317        }
3318    }
3319
3320    #[allow(irrefutable_let_patterns)]
3321    pub fn into_finalize_association_req(
3322        self,
3323    ) -> Option<(NegotiatedCapabilities, MlmeControlHandle)> {
3324        if let MlmeRequest::FinalizeAssociationReq { negotiated_capabilities, control_handle } =
3325            self
3326        {
3327            Some((negotiated_capabilities, control_handle))
3328        } else {
3329            None
3330        }
3331    }
3332
3333    #[allow(irrefutable_let_patterns)]
3334    pub fn into_set_mac_address(self) -> Option<([u8; 6], MlmeSetMacAddressResponder)> {
3335        if let MlmeRequest::SetMacAddress { mac_addr, responder } = self {
3336            Some((mac_addr, responder))
3337        } else {
3338            None
3339        }
3340    }
3341
3342    #[allow(irrefutable_let_patterns)]
3343    pub fn into_install_apf_packet_filter(
3344        self,
3345    ) -> Option<(Vec<u8>, MlmeInstallApfPacketFilterResponder)> {
3346        if let MlmeRequest::InstallApfPacketFilter { program, responder } = self {
3347            Some((program, responder))
3348        } else {
3349            None
3350        }
3351    }
3352
3353    #[allow(irrefutable_let_patterns)]
3354    pub fn into_read_apf_packet_filter_data(
3355        self,
3356    ) -> Option<(MlmeReadApfPacketFilterDataResponder)> {
3357        if let MlmeRequest::ReadApfPacketFilterData { responder } = self {
3358            Some((responder))
3359        } else {
3360            None
3361        }
3362    }
3363
3364    #[allow(irrefutable_let_patterns)]
3365    pub fn into_set_apf_packet_filter_enabled(
3366        self,
3367    ) -> Option<(bool, MlmeSetApfPacketFilterEnabledResponder)> {
3368        if let MlmeRequest::SetApfPacketFilterEnabled { enabled, responder } = self {
3369            Some((enabled, responder))
3370        } else {
3371            None
3372        }
3373    }
3374
3375    #[allow(irrefutable_let_patterns)]
3376    pub fn into_get_apf_packet_filter_enabled(
3377        self,
3378    ) -> Option<(MlmeGetApfPacketFilterEnabledResponder)> {
3379        if let MlmeRequest::GetApfPacketFilterEnabled { responder } = self {
3380            Some((responder))
3381        } else {
3382            None
3383        }
3384    }
3385
3386    #[allow(irrefutable_let_patterns)]
3387    pub fn into_start_rssi_monitor(self) -> Option<(i8, i8, MlmeStartRssiMonitorResponder)> {
3388        if let MlmeRequest::StartRssiMonitor { min_rssi_dbm, max_rssi_dbm, responder } = self {
3389            Some((min_rssi_dbm, max_rssi_dbm, responder))
3390        } else {
3391            None
3392        }
3393    }
3394
3395    /// Name of the method defined in FIDL
3396    pub fn method_name(&self) -> &'static str {
3397        match *self {
3398            MlmeRequest::StartScan { .. } => "start_scan",
3399            MlmeRequest::StartScheduledScan { .. } => "start_scheduled_scan",
3400            MlmeRequest::StopScheduledScan { .. } => "stop_scheduled_scan",
3401            MlmeRequest::GetScheduledScanEnabled { .. } => "get_scheduled_scan_enabled",
3402            MlmeRequest::ConnectReq { .. } => "connect_req",
3403            MlmeRequest::ReconnectReq { .. } => "reconnect_req",
3404            MlmeRequest::RoamReq { .. } => "roam_req",
3405            MlmeRequest::AuthenticateResp { .. } => "authenticate_resp",
3406            MlmeRequest::DeauthenticateReq { .. } => "deauthenticate_req",
3407            MlmeRequest::AssociateResp { .. } => "associate_resp",
3408            MlmeRequest::DisassociateReq { .. } => "disassociate_req",
3409            MlmeRequest::ResetReq { .. } => "reset_req",
3410            MlmeRequest::StartReq { .. } => "start_req",
3411            MlmeRequest::StopReq { .. } => "stop_req",
3412            MlmeRequest::SetKeysReq { .. } => "set_keys_req",
3413            MlmeRequest::DeleteKeysReq { .. } => "delete_keys_req",
3414            MlmeRequest::EapolReq { .. } => "eapol_req",
3415            MlmeRequest::SetControlledPort { .. } => "set_controlled_port",
3416            MlmeRequest::QueryDeviceInfo { .. } => "query_device_info",
3417            MlmeRequest::QueryTelemetrySupport { .. } => "query_telemetry_support",
3418            MlmeRequest::GetIfaceStats { .. } => "get_iface_stats",
3419            MlmeRequest::GetIfaceHistogramStats { .. } => "get_iface_histogram_stats",
3420            MlmeRequest::GetSignalReport { .. } => "get_signal_report",
3421            MlmeRequest::ListMinstrelPeers { .. } => "list_minstrel_peers",
3422            MlmeRequest::GetMinstrelStats { .. } => "get_minstrel_stats",
3423            MlmeRequest::StartCaptureFrames { .. } => "start_capture_frames",
3424            MlmeRequest::StopCaptureFrames { .. } => "stop_capture_frames",
3425            MlmeRequest::SaeHandshakeResp { .. } => "sae_handshake_resp",
3426            MlmeRequest::SaeFrameTx { .. } => "sae_frame_tx",
3427            MlmeRequest::WmmStatusReq { .. } => "wmm_status_req",
3428            MlmeRequest::FinalizeAssociationReq { .. } => "finalize_association_req",
3429            MlmeRequest::SetMacAddress { .. } => "set_mac_address",
3430            MlmeRequest::InstallApfPacketFilter { .. } => "install_apf_packet_filter",
3431            MlmeRequest::ReadApfPacketFilterData { .. } => "read_apf_packet_filter_data",
3432            MlmeRequest::SetApfPacketFilterEnabled { .. } => "set_apf_packet_filter_enabled",
3433            MlmeRequest::GetApfPacketFilterEnabled { .. } => "get_apf_packet_filter_enabled",
3434            MlmeRequest::StartRssiMonitor { .. } => "start_rssi_monitor",
3435        }
3436    }
3437}
3438
3439#[derive(Debug, Clone)]
3440pub struct MlmeControlHandle {
3441    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3442}
3443
3444impl MlmeControlHandle {
3445    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
3446        self.inner.shutdown_with_epitaph(status.into())
3447    }
3448}
3449
3450impl fidl::endpoints::ControlHandle for MlmeControlHandle {
3451    fn shutdown(&self) {
3452        self.inner.shutdown()
3453    }
3454
3455    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
3456        self.inner.shutdown_with_epitaph(status)
3457    }
3458
3459    fn is_closed(&self) -> bool {
3460        self.inner.channel().is_closed()
3461    }
3462    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3463        self.inner.channel().on_closed()
3464    }
3465
3466    #[cfg(target_os = "fuchsia")]
3467    fn signal_peer(
3468        &self,
3469        clear_mask: zx::Signals,
3470        set_mask: zx::Signals,
3471    ) -> Result<(), zx_status::Status> {
3472        use fidl::Peered;
3473        self.inner.channel().signal_peer(clear_mask, set_mask)
3474    }
3475}
3476
3477impl MlmeControlHandle {
3478    pub fn send_on_scan_result(&self, mut result: &ScanResult) -> Result<(), fidl::Error> {
3479        self.inner.send::<MlmeOnScanResultRequest>(
3480            (result,),
3481            0,
3482            0x681af7466a75074d,
3483            fidl::encoding::DynamicFlags::empty(),
3484        )
3485    }
3486
3487    pub fn send_on_scan_end(&self, mut end: &ScanEnd) -> Result<(), fidl::Error> {
3488        self.inner.send::<MlmeOnScanEndRequest>(
3489            (end,),
3490            0,
3491            0x7f2702d253e7ca59,
3492            fidl::encoding::DynamicFlags::empty(),
3493        )
3494    }
3495
3496    pub fn send_on_scheduled_scan_matches_available(
3497        &self,
3498        mut txn_id: u64,
3499    ) -> Result<(), fidl::Error> {
3500        self.inner.send::<MlmeOnScheduledScanMatchesAvailableRequest>(
3501            (txn_id,),
3502            0,
3503            0x3d915df5108ec4e1,
3504            fidl::encoding::DynamicFlags::empty(),
3505        )
3506    }
3507
3508    pub fn send_on_scheduled_scan_stopped_by_firmware(
3509        &self,
3510        mut txn_id: u64,
3511    ) -> Result<(), fidl::Error> {
3512        self.inner.send::<MlmeOnScheduledScanStoppedByFirmwareRequest>(
3513            (txn_id,),
3514            0,
3515            0x4c2cb4b145163fd0,
3516            fidl::encoding::DynamicFlags::empty(),
3517        )
3518    }
3519
3520    pub fn send_connect_conf(&self, mut resp: &ConnectConfirm) -> Result<(), fidl::Error> {
3521        self.inner.send::<MlmeConnectConfRequest>(
3522            (resp,),
3523            0,
3524            0x77b27623279b981e,
3525            fidl::encoding::DynamicFlags::empty(),
3526        )
3527    }
3528
3529    pub fn send_roam_conf(&self, mut conf: &RoamConfirm) -> Result<(), fidl::Error> {
3530        self.inner.send::<MlmeRoamConfRequest>(
3531            (conf,),
3532            0,
3533            0x3f608034faa054bc,
3534            fidl::encoding::DynamicFlags::empty(),
3535        )
3536    }
3537
3538    pub fn send_roam_start_ind(&self, mut ind: &RoamStartIndication) -> Result<(), fidl::Error> {
3539        self.inner.send::<MlmeRoamStartIndRequest>(
3540            (ind,),
3541            0,
3542            0x270a1ec78672d094,
3543            fidl::encoding::DynamicFlags::empty(),
3544        )
3545    }
3546
3547    pub fn send_roam_result_ind(&self, mut ind: &RoamResultIndication) -> Result<(), fidl::Error> {
3548        self.inner.send::<MlmeRoamResultIndRequest>(
3549            (ind,),
3550            0,
3551            0x26d074364fc84865,
3552            fidl::encoding::DynamicFlags::empty(),
3553        )
3554    }
3555
3556    pub fn send_authenticate_ind(
3557        &self,
3558        mut ind: &AuthenticateIndication,
3559    ) -> Result<(), fidl::Error> {
3560        self.inner.send::<MlmeAuthenticateIndRequest>(
3561            (ind,),
3562            0,
3563            0x460f49ae891adbe9,
3564            fidl::encoding::DynamicFlags::empty(),
3565        )
3566    }
3567
3568    pub fn send_deauthenticate_conf(
3569        &self,
3570        mut resp: &DeauthenticateConfirm,
3571    ) -> Result<(), fidl::Error> {
3572        self.inner.send::<MlmeDeauthenticateConfRequest>(
3573            (resp,),
3574            0,
3575            0x3b44debc21b88c8c,
3576            fidl::encoding::DynamicFlags::empty(),
3577        )
3578    }
3579
3580    pub fn send_deauthenticate_ind(
3581        &self,
3582        mut ind: &DeauthenticateIndication,
3583    ) -> Result<(), fidl::Error> {
3584        self.inner.send::<MlmeDeauthenticateIndRequest>(
3585            (ind,),
3586            0,
3587            0x7ee0889b326da1d7,
3588            fidl::encoding::DynamicFlags::empty(),
3589        )
3590    }
3591
3592    pub fn send_associate_ind(&self, mut ind: &AssociateIndication) -> Result<(), fidl::Error> {
3593        self.inner.send::<MlmeAssociateIndRequest>(
3594            (ind,),
3595            0,
3596            0x6a86f20e3063dd63,
3597            fidl::encoding::DynamicFlags::empty(),
3598        )
3599    }
3600
3601    pub fn send_disassociate_conf(
3602        &self,
3603        mut resp: &DisassociateConfirm,
3604    ) -> Result<(), fidl::Error> {
3605        self.inner.send::<MlmeDisassociateConfRequest>(
3606            (resp,),
3607            0,
3608            0x61345fbce732a28d,
3609            fidl::encoding::DynamicFlags::empty(),
3610        )
3611    }
3612
3613    pub fn send_disassociate_ind(
3614        &self,
3615        mut ind: &DisassociateIndication,
3616    ) -> Result<(), fidl::Error> {
3617        self.inner.send::<MlmeDisassociateIndRequest>(
3618            (ind,),
3619            0,
3620            0x77ac0ebf387c1f35,
3621            fidl::encoding::DynamicFlags::empty(),
3622        )
3623    }
3624
3625    pub fn send_start_conf(&self, mut resp: &StartConfirm) -> Result<(), fidl::Error> {
3626        self.inner.send::<MlmeStartConfRequest>(
3627            (resp,),
3628            0,
3629            0x15ea6cdf3b8382b3,
3630            fidl::encoding::DynamicFlags::empty(),
3631        )
3632    }
3633
3634    pub fn send_stop_conf(&self, mut resp: &StopConfirm) -> Result<(), fidl::Error> {
3635        self.inner.send::<MlmeStopConfRequest>(
3636            (resp,),
3637            0,
3638            0x50b426ef4a84a2df,
3639            fidl::encoding::DynamicFlags::empty(),
3640        )
3641    }
3642
3643    pub fn send_set_keys_conf(&self, mut conf: &SetKeysConfirm) -> Result<(), fidl::Error> {
3644        self.inner.send::<MlmeSetKeysConfRequest>(
3645            (conf,),
3646            0,
3647            0x5bafb3a8d4039380,
3648            fidl::encoding::DynamicFlags::empty(),
3649        )
3650    }
3651
3652    pub fn send_eapol_conf(&self, mut resp: &EapolConfirm) -> Result<(), fidl::Error> {
3653        self.inner.send::<MlmeEapolConfRequest>(
3654            (resp,),
3655            0,
3656            0x6ffa21f4ee73ce64,
3657            fidl::encoding::DynamicFlags::empty(),
3658        )
3659    }
3660
3661    pub fn send_signal_report(
3662        &self,
3663        mut ind: &fidl_fuchsia_wlan_internal::SignalReportIndication,
3664    ) -> Result<(), fidl::Error> {
3665        self.inner.send::<MlmeSignalReportRequest>(
3666            (ind,),
3667            0,
3668            0x48f32a876aa53d8f,
3669            fidl::encoding::DynamicFlags::empty(),
3670        )
3671    }
3672
3673    pub fn send_on_rssi_threshold_breached(&self, mut cur_rssi_dbm: i8) -> Result<(), fidl::Error> {
3674        self.inner.send::<MlmeOnRssiThresholdBreachedRequest>(
3675            (cur_rssi_dbm,),
3676            0,
3677            0x5803e9572d8c8f,
3678            fidl::encoding::DynamicFlags::empty(),
3679        )
3680    }
3681
3682    pub fn send_eapol_ind(&self, mut ind: &EapolIndication) -> Result<(), fidl::Error> {
3683        self.inner.send::<MlmeEapolIndRequest>(
3684            (ind,),
3685            0,
3686            0x7038dca46a3142fc,
3687            fidl::encoding::DynamicFlags::empty(),
3688        )
3689    }
3690
3691    pub fn send_relay_captured_frame(
3692        &self,
3693        mut result: &CapturedFrameResult,
3694    ) -> Result<(), fidl::Error> {
3695        self.inner.send::<MlmeRelayCapturedFrameRequest>(
3696            (result,),
3697            0,
3698            0x6f00a6f3cff9b1f5,
3699            fidl::encoding::DynamicFlags::empty(),
3700        )
3701    }
3702
3703    pub fn send_on_channel_switched(
3704        &self,
3705        mut info: &fidl_fuchsia_wlan_internal::ChannelSwitchInfo,
3706    ) -> Result<(), fidl::Error> {
3707        self.inner.send::<MlmeOnChannelSwitchedRequest>(
3708            (info,),
3709            0,
3710            0x581750594e4c0c1,
3711            fidl::encoding::DynamicFlags::empty(),
3712        )
3713    }
3714
3715    pub fn send_on_pmk_available(&self, mut info: &PmkInfo) -> Result<(), fidl::Error> {
3716        self.inner.send::<MlmeOnPmkAvailableRequest>(
3717            (info,),
3718            0,
3719            0x1314fc2c79643f90,
3720            fidl::encoding::DynamicFlags::empty(),
3721        )
3722    }
3723
3724    pub fn send_on_sae_handshake_ind(
3725        &self,
3726        mut ind: &SaeHandshakeIndication,
3727    ) -> Result<(), fidl::Error> {
3728        self.inner.send::<MlmeOnSaeHandshakeIndRequest>(
3729            (ind,),
3730            0,
3731            0x6308b10e18986d7e,
3732            fidl::encoding::DynamicFlags::empty(),
3733        )
3734    }
3735
3736    pub fn send_on_sae_frame_rx(&self, mut frame: &SaeFrame) -> Result<(), fidl::Error> {
3737        self.inner.send::<MlmeOnSaeFrameRxRequest>(
3738            (frame,),
3739            0,
3740            0x4ebf51c86ef5f3cd,
3741            fidl::encoding::DynamicFlags::empty(),
3742        )
3743    }
3744
3745    pub fn send_on_wmm_status_resp(
3746        &self,
3747        mut status: i32,
3748        mut resp: &fidl_fuchsia_wlan_internal::WmmStatusResponse,
3749    ) -> Result<(), fidl::Error> {
3750        self.inner.send::<MlmeOnWmmStatusRespRequest>(
3751            (status, resp),
3752            0,
3753            0x53f056b432e7b5cb,
3754            fidl::encoding::DynamicFlags::empty(),
3755        )
3756    }
3757}
3758
3759#[must_use = "FIDL methods require a response to be sent"]
3760#[derive(Debug)]
3761pub struct MlmeStartScheduledScanResponder {
3762    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3763    tx_id: u32,
3764}
3765
3766/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3767/// if the responder is dropped without sending a response, so that the client
3768/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3769impl std::ops::Drop for MlmeStartScheduledScanResponder {
3770    fn drop(&mut self) {
3771        self.control_handle.shutdown();
3772        // Safety: drops once, never accessed again
3773        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3774    }
3775}
3776
3777impl fidl::endpoints::Responder for MlmeStartScheduledScanResponder {
3778    type ControlHandle = MlmeControlHandle;
3779
3780    fn control_handle(&self) -> &MlmeControlHandle {
3781        &self.control_handle
3782    }
3783
3784    fn drop_without_shutdown(mut self) {
3785        // Safety: drops once, never accessed again due to mem::forget
3786        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3787        // Prevent Drop from running (which would shut down the channel)
3788        std::mem::forget(self);
3789    }
3790}
3791
3792impl MlmeStartScheduledScanResponder {
3793    /// Sends a response to the FIDL transaction.
3794    ///
3795    /// Sets the channel to shutdown if an error occurs.
3796    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3797        let _result = self.send_raw(result);
3798        if _result.is_err() {
3799            self.control_handle.shutdown();
3800        }
3801        self.drop_without_shutdown();
3802        _result
3803    }
3804
3805    /// Similar to "send" but does not shutdown the channel if an error occurs.
3806    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3807        let _result = self.send_raw(result);
3808        self.drop_without_shutdown();
3809        _result
3810    }
3811
3812    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3813        self.control_handle
3814            .inner
3815            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
3816                result,
3817                self.tx_id,
3818                0x7fff163af4620212,
3819                fidl::encoding::DynamicFlags::empty(),
3820            )
3821    }
3822}
3823
3824#[must_use = "FIDL methods require a response to be sent"]
3825#[derive(Debug)]
3826pub struct MlmeStopScheduledScanResponder {
3827    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3828    tx_id: u32,
3829}
3830
3831/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3832/// if the responder is dropped without sending a response, so that the client
3833/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3834impl std::ops::Drop for MlmeStopScheduledScanResponder {
3835    fn drop(&mut self) {
3836        self.control_handle.shutdown();
3837        // Safety: drops once, never accessed again
3838        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3839    }
3840}
3841
3842impl fidl::endpoints::Responder for MlmeStopScheduledScanResponder {
3843    type ControlHandle = MlmeControlHandle;
3844
3845    fn control_handle(&self) -> &MlmeControlHandle {
3846        &self.control_handle
3847    }
3848
3849    fn drop_without_shutdown(mut self) {
3850        // Safety: drops once, never accessed again due to mem::forget
3851        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3852        // Prevent Drop from running (which would shut down the channel)
3853        std::mem::forget(self);
3854    }
3855}
3856
3857impl MlmeStopScheduledScanResponder {
3858    /// Sends a response to the FIDL transaction.
3859    ///
3860    /// Sets the channel to shutdown if an error occurs.
3861    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3862        let _result = self.send_raw(result);
3863        if _result.is_err() {
3864            self.control_handle.shutdown();
3865        }
3866        self.drop_without_shutdown();
3867        _result
3868    }
3869
3870    /// Similar to "send" but does not shutdown the channel if an error occurs.
3871    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3872        let _result = self.send_raw(result);
3873        self.drop_without_shutdown();
3874        _result
3875    }
3876
3877    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
3878        self.control_handle
3879            .inner
3880            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
3881                result,
3882                self.tx_id,
3883                0x5fbc466f3daa4dd9,
3884                fidl::encoding::DynamicFlags::empty(),
3885            )
3886    }
3887}
3888
3889#[must_use = "FIDL methods require a response to be sent"]
3890#[derive(Debug)]
3891pub struct MlmeGetScheduledScanEnabledResponder {
3892    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3893    tx_id: u32,
3894}
3895
3896/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3897/// if the responder is dropped without sending a response, so that the client
3898/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3899impl std::ops::Drop for MlmeGetScheduledScanEnabledResponder {
3900    fn drop(&mut self) {
3901        self.control_handle.shutdown();
3902        // Safety: drops once, never accessed again
3903        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3904    }
3905}
3906
3907impl fidl::endpoints::Responder for MlmeGetScheduledScanEnabledResponder {
3908    type ControlHandle = MlmeControlHandle;
3909
3910    fn control_handle(&self) -> &MlmeControlHandle {
3911        &self.control_handle
3912    }
3913
3914    fn drop_without_shutdown(mut self) {
3915        // Safety: drops once, never accessed again due to mem::forget
3916        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3917        // Prevent Drop from running (which would shut down the channel)
3918        std::mem::forget(self);
3919    }
3920}
3921
3922impl MlmeGetScheduledScanEnabledResponder {
3923    /// Sends a response to the FIDL transaction.
3924    ///
3925    /// Sets the channel to shutdown if an error occurs.
3926    pub fn send(self, mut result: Result<&[u64], i32>) -> Result<(), fidl::Error> {
3927        let _result = self.send_raw(result);
3928        if _result.is_err() {
3929            self.control_handle.shutdown();
3930        }
3931        self.drop_without_shutdown();
3932        _result
3933    }
3934
3935    /// Similar to "send" but does not shutdown the channel if an error occurs.
3936    pub fn send_no_shutdown_on_err(
3937        self,
3938        mut result: Result<&[u64], i32>,
3939    ) -> Result<(), fidl::Error> {
3940        let _result = self.send_raw(result);
3941        self.drop_without_shutdown();
3942        _result
3943    }
3944
3945    fn send_raw(&self, mut result: Result<&[u64], i32>) -> Result<(), fidl::Error> {
3946        self.control_handle.inner.send::<fidl::encoding::ResultType<
3947            MlmeGetScheduledScanEnabledResponse,
3948            i32,
3949        >>(
3950            result.map(|active_txn_ids| (active_txn_ids,)),
3951            self.tx_id,
3952            0x1ecc6a7fe7f9fcff,
3953            fidl::encoding::DynamicFlags::empty(),
3954        )
3955    }
3956}
3957
3958#[must_use = "FIDL methods require a response to be sent"]
3959#[derive(Debug)]
3960pub struct MlmeQueryDeviceInfoResponder {
3961    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
3962    tx_id: u32,
3963}
3964
3965/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
3966/// if the responder is dropped without sending a response, so that the client
3967/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3968impl std::ops::Drop for MlmeQueryDeviceInfoResponder {
3969    fn drop(&mut self) {
3970        self.control_handle.shutdown();
3971        // Safety: drops once, never accessed again
3972        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3973    }
3974}
3975
3976impl fidl::endpoints::Responder for MlmeQueryDeviceInfoResponder {
3977    type ControlHandle = MlmeControlHandle;
3978
3979    fn control_handle(&self) -> &MlmeControlHandle {
3980        &self.control_handle
3981    }
3982
3983    fn drop_without_shutdown(mut self) {
3984        // Safety: drops once, never accessed again due to mem::forget
3985        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3986        // Prevent Drop from running (which would shut down the channel)
3987        std::mem::forget(self);
3988    }
3989}
3990
3991impl MlmeQueryDeviceInfoResponder {
3992    /// Sends a response to the FIDL transaction.
3993    ///
3994    /// Sets the channel to shutdown if an error occurs.
3995    pub fn send(self, mut info: &DeviceInfo) -> Result<(), fidl::Error> {
3996        let _result = self.send_raw(info);
3997        if _result.is_err() {
3998            self.control_handle.shutdown();
3999        }
4000        self.drop_without_shutdown();
4001        _result
4002    }
4003
4004    /// Similar to "send" but does not shutdown the channel if an error occurs.
4005    pub fn send_no_shutdown_on_err(self, mut info: &DeviceInfo) -> Result<(), fidl::Error> {
4006        let _result = self.send_raw(info);
4007        self.drop_without_shutdown();
4008        _result
4009    }
4010
4011    fn send_raw(&self, mut info: &DeviceInfo) -> Result<(), fidl::Error> {
4012        self.control_handle.inner.send::<MlmeQueryDeviceInfoResponse>(
4013            (info,),
4014            self.tx_id,
4015            0x6ee3e7f63f2b7bc0,
4016            fidl::encoding::DynamicFlags::empty(),
4017        )
4018    }
4019}
4020
4021#[must_use = "FIDL methods require a response to be sent"]
4022#[derive(Debug)]
4023pub struct MlmeQueryTelemetrySupportResponder {
4024    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4025    tx_id: u32,
4026}
4027
4028/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4029/// if the responder is dropped without sending a response, so that the client
4030/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4031impl std::ops::Drop for MlmeQueryTelemetrySupportResponder {
4032    fn drop(&mut self) {
4033        self.control_handle.shutdown();
4034        // Safety: drops once, never accessed again
4035        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4036    }
4037}
4038
4039impl fidl::endpoints::Responder for MlmeQueryTelemetrySupportResponder {
4040    type ControlHandle = MlmeControlHandle;
4041
4042    fn control_handle(&self) -> &MlmeControlHandle {
4043        &self.control_handle
4044    }
4045
4046    fn drop_without_shutdown(mut self) {
4047        // Safety: drops once, never accessed again due to mem::forget
4048        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4049        // Prevent Drop from running (which would shut down the channel)
4050        std::mem::forget(self);
4051    }
4052}
4053
4054impl MlmeQueryTelemetrySupportResponder {
4055    /// Sends a response to the FIDL transaction.
4056    ///
4057    /// Sets the channel to shutdown if an error occurs.
4058    pub fn send(
4059        self,
4060        mut result: Result<&fidl_fuchsia_wlan_stats::TelemetrySupport, i32>,
4061    ) -> Result<(), fidl::Error> {
4062        let _result = self.send_raw(result);
4063        if _result.is_err() {
4064            self.control_handle.shutdown();
4065        }
4066        self.drop_without_shutdown();
4067        _result
4068    }
4069
4070    /// Similar to "send" but does not shutdown the channel if an error occurs.
4071    pub fn send_no_shutdown_on_err(
4072        self,
4073        mut result: Result<&fidl_fuchsia_wlan_stats::TelemetrySupport, i32>,
4074    ) -> Result<(), fidl::Error> {
4075        let _result = self.send_raw(result);
4076        self.drop_without_shutdown();
4077        _result
4078    }
4079
4080    fn send_raw(
4081        &self,
4082        mut result: Result<&fidl_fuchsia_wlan_stats::TelemetrySupport, i32>,
4083    ) -> Result<(), fidl::Error> {
4084        self.control_handle
4085            .inner
4086            .send::<fidl::encoding::ResultType<MlmeQueryTelemetrySupportResponse, i32>>(
4087                result.map(|resp| (resp,)),
4088                self.tx_id,
4089                0x1598879b70332c99,
4090                fidl::encoding::DynamicFlags::empty(),
4091            )
4092    }
4093}
4094
4095#[must_use = "FIDL methods require a response to be sent"]
4096#[derive(Debug)]
4097pub struct MlmeGetIfaceStatsResponder {
4098    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4099    tx_id: u32,
4100}
4101
4102/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4103/// if the responder is dropped without sending a response, so that the client
4104/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4105impl std::ops::Drop for MlmeGetIfaceStatsResponder {
4106    fn drop(&mut self) {
4107        self.control_handle.shutdown();
4108        // Safety: drops once, never accessed again
4109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4110    }
4111}
4112
4113impl fidl::endpoints::Responder for MlmeGetIfaceStatsResponder {
4114    type ControlHandle = MlmeControlHandle;
4115
4116    fn control_handle(&self) -> &MlmeControlHandle {
4117        &self.control_handle
4118    }
4119
4120    fn drop_without_shutdown(mut self) {
4121        // Safety: drops once, never accessed again due to mem::forget
4122        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4123        // Prevent Drop from running (which would shut down the channel)
4124        std::mem::forget(self);
4125    }
4126}
4127
4128impl MlmeGetIfaceStatsResponder {
4129    /// Sends a response to the FIDL transaction.
4130    ///
4131    /// Sets the channel to shutdown if an error occurs.
4132    pub fn send(self, mut resp: &GetIfaceStatsResponse) -> Result<(), fidl::Error> {
4133        let _result = self.send_raw(resp);
4134        if _result.is_err() {
4135            self.control_handle.shutdown();
4136        }
4137        self.drop_without_shutdown();
4138        _result
4139    }
4140
4141    /// Similar to "send" but does not shutdown the channel if an error occurs.
4142    pub fn send_no_shutdown_on_err(
4143        self,
4144        mut resp: &GetIfaceStatsResponse,
4145    ) -> Result<(), fidl::Error> {
4146        let _result = self.send_raw(resp);
4147        self.drop_without_shutdown();
4148        _result
4149    }
4150
4151    fn send_raw(&self, mut resp: &GetIfaceStatsResponse) -> Result<(), fidl::Error> {
4152        self.control_handle.inner.send::<MlmeGetIfaceStatsResponse>(
4153            (resp,),
4154            self.tx_id,
4155            0xede1a8342d1b211,
4156            fidl::encoding::DynamicFlags::empty(),
4157        )
4158    }
4159}
4160
4161#[must_use = "FIDL methods require a response to be sent"]
4162#[derive(Debug)]
4163pub struct MlmeGetIfaceHistogramStatsResponder {
4164    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4165    tx_id: u32,
4166}
4167
4168/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4169/// if the responder is dropped without sending a response, so that the client
4170/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4171impl std::ops::Drop for MlmeGetIfaceHistogramStatsResponder {
4172    fn drop(&mut self) {
4173        self.control_handle.shutdown();
4174        // Safety: drops once, never accessed again
4175        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4176    }
4177}
4178
4179impl fidl::endpoints::Responder for MlmeGetIfaceHistogramStatsResponder {
4180    type ControlHandle = MlmeControlHandle;
4181
4182    fn control_handle(&self) -> &MlmeControlHandle {
4183        &self.control_handle
4184    }
4185
4186    fn drop_without_shutdown(mut self) {
4187        // Safety: drops once, never accessed again due to mem::forget
4188        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4189        // Prevent Drop from running (which would shut down the channel)
4190        std::mem::forget(self);
4191    }
4192}
4193
4194impl MlmeGetIfaceHistogramStatsResponder {
4195    /// Sends a response to the FIDL transaction.
4196    ///
4197    /// Sets the channel to shutdown if an error occurs.
4198    pub fn send(self, mut resp: &GetIfaceHistogramStatsResponse) -> Result<(), fidl::Error> {
4199        let _result = self.send_raw(resp);
4200        if _result.is_err() {
4201            self.control_handle.shutdown();
4202        }
4203        self.drop_without_shutdown();
4204        _result
4205    }
4206
4207    /// Similar to "send" but does not shutdown the channel if an error occurs.
4208    pub fn send_no_shutdown_on_err(
4209        self,
4210        mut resp: &GetIfaceHistogramStatsResponse,
4211    ) -> Result<(), fidl::Error> {
4212        let _result = self.send_raw(resp);
4213        self.drop_without_shutdown();
4214        _result
4215    }
4216
4217    fn send_raw(&self, mut resp: &GetIfaceHistogramStatsResponse) -> Result<(), fidl::Error> {
4218        self.control_handle.inner.send::<MlmeGetIfaceHistogramStatsResponse>(
4219            (resp,),
4220            self.tx_id,
4221            0x1979c9d3449f8675,
4222            fidl::encoding::DynamicFlags::empty(),
4223        )
4224    }
4225}
4226
4227#[must_use = "FIDL methods require a response to be sent"]
4228#[derive(Debug)]
4229pub struct MlmeGetSignalReportResponder {
4230    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4231    tx_id: u32,
4232}
4233
4234/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4235/// if the responder is dropped without sending a response, so that the client
4236/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4237impl std::ops::Drop for MlmeGetSignalReportResponder {
4238    fn drop(&mut self) {
4239        self.control_handle.shutdown();
4240        // Safety: drops once, never accessed again
4241        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4242    }
4243}
4244
4245impl fidl::endpoints::Responder for MlmeGetSignalReportResponder {
4246    type ControlHandle = MlmeControlHandle;
4247
4248    fn control_handle(&self) -> &MlmeControlHandle {
4249        &self.control_handle
4250    }
4251
4252    fn drop_without_shutdown(mut self) {
4253        // Safety: drops once, never accessed again due to mem::forget
4254        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4255        // Prevent Drop from running (which would shut down the channel)
4256        std::mem::forget(self);
4257    }
4258}
4259
4260impl MlmeGetSignalReportResponder {
4261    /// Sends a response to the FIDL transaction.
4262    ///
4263    /// Sets the channel to shutdown if an error occurs.
4264    pub fn send(
4265        self,
4266        mut result: Result<&fidl_fuchsia_wlan_stats::SignalReport, i32>,
4267    ) -> Result<(), fidl::Error> {
4268        let _result = self.send_raw(result);
4269        if _result.is_err() {
4270            self.control_handle.shutdown();
4271        }
4272        self.drop_without_shutdown();
4273        _result
4274    }
4275
4276    /// Similar to "send" but does not shutdown the channel if an error occurs.
4277    pub fn send_no_shutdown_on_err(
4278        self,
4279        mut result: Result<&fidl_fuchsia_wlan_stats::SignalReport, i32>,
4280    ) -> Result<(), fidl::Error> {
4281        let _result = self.send_raw(result);
4282        self.drop_without_shutdown();
4283        _result
4284    }
4285
4286    fn send_raw(
4287        &self,
4288        mut result: Result<&fidl_fuchsia_wlan_stats::SignalReport, i32>,
4289    ) -> Result<(), fidl::Error> {
4290        self.control_handle
4291            .inner
4292            .send::<fidl::encoding::ResultType<MlmeGetSignalReportResponse, i32>>(
4293                result.map(|resp| (resp,)),
4294                self.tx_id,
4295                0x7e47e7ebe92acec9,
4296                fidl::encoding::DynamicFlags::empty(),
4297            )
4298    }
4299}
4300
4301#[must_use = "FIDL methods require a response to be sent"]
4302#[derive(Debug)]
4303pub struct MlmeListMinstrelPeersResponder {
4304    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4305    tx_id: u32,
4306}
4307
4308/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4309/// if the responder is dropped without sending a response, so that the client
4310/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4311impl std::ops::Drop for MlmeListMinstrelPeersResponder {
4312    fn drop(&mut self) {
4313        self.control_handle.shutdown();
4314        // Safety: drops once, never accessed again
4315        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4316    }
4317}
4318
4319impl fidl::endpoints::Responder for MlmeListMinstrelPeersResponder {
4320    type ControlHandle = MlmeControlHandle;
4321
4322    fn control_handle(&self) -> &MlmeControlHandle {
4323        &self.control_handle
4324    }
4325
4326    fn drop_without_shutdown(mut self) {
4327        // Safety: drops once, never accessed again due to mem::forget
4328        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4329        // Prevent Drop from running (which would shut down the channel)
4330        std::mem::forget(self);
4331    }
4332}
4333
4334impl MlmeListMinstrelPeersResponder {
4335    /// Sends a response to the FIDL transaction.
4336    ///
4337    /// Sets the channel to shutdown if an error occurs.
4338    pub fn send(self, mut resp: &MinstrelListResponse) -> Result<(), fidl::Error> {
4339        let _result = self.send_raw(resp);
4340        if _result.is_err() {
4341            self.control_handle.shutdown();
4342        }
4343        self.drop_without_shutdown();
4344        _result
4345    }
4346
4347    /// Similar to "send" but does not shutdown the channel if an error occurs.
4348    pub fn send_no_shutdown_on_err(
4349        self,
4350        mut resp: &MinstrelListResponse,
4351    ) -> Result<(), fidl::Error> {
4352        let _result = self.send_raw(resp);
4353        self.drop_without_shutdown();
4354        _result
4355    }
4356
4357    fn send_raw(&self, mut resp: &MinstrelListResponse) -> Result<(), fidl::Error> {
4358        self.control_handle.inner.send::<MlmeListMinstrelPeersResponse>(
4359            (resp,),
4360            self.tx_id,
4361            0x4ac5d1e66fe1ffd5,
4362            fidl::encoding::DynamicFlags::empty(),
4363        )
4364    }
4365}
4366
4367#[must_use = "FIDL methods require a response to be sent"]
4368#[derive(Debug)]
4369pub struct MlmeGetMinstrelStatsResponder {
4370    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4371    tx_id: u32,
4372}
4373
4374/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4375/// if the responder is dropped without sending a response, so that the client
4376/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4377impl std::ops::Drop for MlmeGetMinstrelStatsResponder {
4378    fn drop(&mut self) {
4379        self.control_handle.shutdown();
4380        // Safety: drops once, never accessed again
4381        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4382    }
4383}
4384
4385impl fidl::endpoints::Responder for MlmeGetMinstrelStatsResponder {
4386    type ControlHandle = MlmeControlHandle;
4387
4388    fn control_handle(&self) -> &MlmeControlHandle {
4389        &self.control_handle
4390    }
4391
4392    fn drop_without_shutdown(mut self) {
4393        // Safety: drops once, never accessed again due to mem::forget
4394        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4395        // Prevent Drop from running (which would shut down the channel)
4396        std::mem::forget(self);
4397    }
4398}
4399
4400impl MlmeGetMinstrelStatsResponder {
4401    /// Sends a response to the FIDL transaction.
4402    ///
4403    /// Sets the channel to shutdown if an error occurs.
4404    pub fn send(self, mut resp: &MinstrelStatsResponse) -> Result<(), fidl::Error> {
4405        let _result = self.send_raw(resp);
4406        if _result.is_err() {
4407            self.control_handle.shutdown();
4408        }
4409        self.drop_without_shutdown();
4410        _result
4411    }
4412
4413    /// Similar to "send" but does not shutdown the channel if an error occurs.
4414    pub fn send_no_shutdown_on_err(
4415        self,
4416        mut resp: &MinstrelStatsResponse,
4417    ) -> Result<(), fidl::Error> {
4418        let _result = self.send_raw(resp);
4419        self.drop_without_shutdown();
4420        _result
4421    }
4422
4423    fn send_raw(&self, mut resp: &MinstrelStatsResponse) -> Result<(), fidl::Error> {
4424        self.control_handle.inner.send::<MlmeGetMinstrelStatsResponse>(
4425            (resp,),
4426            self.tx_id,
4427            0x2f688b1245323f4b,
4428            fidl::encoding::DynamicFlags::empty(),
4429        )
4430    }
4431}
4432
4433#[must_use = "FIDL methods require a response to be sent"]
4434#[derive(Debug)]
4435pub struct MlmeStartCaptureFramesResponder {
4436    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4437    tx_id: u32,
4438}
4439
4440/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4441/// if the responder is dropped without sending a response, so that the client
4442/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4443impl std::ops::Drop for MlmeStartCaptureFramesResponder {
4444    fn drop(&mut self) {
4445        self.control_handle.shutdown();
4446        // Safety: drops once, never accessed again
4447        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4448    }
4449}
4450
4451impl fidl::endpoints::Responder for MlmeStartCaptureFramesResponder {
4452    type ControlHandle = MlmeControlHandle;
4453
4454    fn control_handle(&self) -> &MlmeControlHandle {
4455        &self.control_handle
4456    }
4457
4458    fn drop_without_shutdown(mut self) {
4459        // Safety: drops once, never accessed again due to mem::forget
4460        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4461        // Prevent Drop from running (which would shut down the channel)
4462        std::mem::forget(self);
4463    }
4464}
4465
4466impl MlmeStartCaptureFramesResponder {
4467    /// Sends a response to the FIDL transaction.
4468    ///
4469    /// Sets the channel to shutdown if an error occurs.
4470    pub fn send(self, mut resp: &StartCaptureFramesResponse) -> Result<(), fidl::Error> {
4471        let _result = self.send_raw(resp);
4472        if _result.is_err() {
4473            self.control_handle.shutdown();
4474        }
4475        self.drop_without_shutdown();
4476        _result
4477    }
4478
4479    /// Similar to "send" but does not shutdown the channel if an error occurs.
4480    pub fn send_no_shutdown_on_err(
4481        self,
4482        mut resp: &StartCaptureFramesResponse,
4483    ) -> Result<(), fidl::Error> {
4484        let _result = self.send_raw(resp);
4485        self.drop_without_shutdown();
4486        _result
4487    }
4488
4489    fn send_raw(&self, mut resp: &StartCaptureFramesResponse) -> Result<(), fidl::Error> {
4490        self.control_handle.inner.send::<MlmeStartCaptureFramesResponse>(
4491            (resp,),
4492            self.tx_id,
4493            0x23b369ed5749ee69,
4494            fidl::encoding::DynamicFlags::empty(),
4495        )
4496    }
4497}
4498
4499#[must_use = "FIDL methods require a response to be sent"]
4500#[derive(Debug)]
4501pub struct MlmeSetMacAddressResponder {
4502    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4503    tx_id: u32,
4504}
4505
4506/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4507/// if the responder is dropped without sending a response, so that the client
4508/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4509impl std::ops::Drop for MlmeSetMacAddressResponder {
4510    fn drop(&mut self) {
4511        self.control_handle.shutdown();
4512        // Safety: drops once, never accessed again
4513        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4514    }
4515}
4516
4517impl fidl::endpoints::Responder for MlmeSetMacAddressResponder {
4518    type ControlHandle = MlmeControlHandle;
4519
4520    fn control_handle(&self) -> &MlmeControlHandle {
4521        &self.control_handle
4522    }
4523
4524    fn drop_without_shutdown(mut self) {
4525        // Safety: drops once, never accessed again due to mem::forget
4526        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4527        // Prevent Drop from running (which would shut down the channel)
4528        std::mem::forget(self);
4529    }
4530}
4531
4532impl MlmeSetMacAddressResponder {
4533    /// Sends a response to the FIDL transaction.
4534    ///
4535    /// Sets the channel to shutdown if an error occurs.
4536    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4537        let _result = self.send_raw(result);
4538        if _result.is_err() {
4539            self.control_handle.shutdown();
4540        }
4541        self.drop_without_shutdown();
4542        _result
4543    }
4544
4545    /// Similar to "send" but does not shutdown the channel if an error occurs.
4546    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4547        let _result = self.send_raw(result);
4548        self.drop_without_shutdown();
4549        _result
4550    }
4551
4552    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4553        self.control_handle
4554            .inner
4555            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4556                result,
4557                self.tx_id,
4558                0x476999f9bb27afe1,
4559                fidl::encoding::DynamicFlags::empty(),
4560            )
4561    }
4562}
4563
4564#[must_use = "FIDL methods require a response to be sent"]
4565#[derive(Debug)]
4566pub struct MlmeInstallApfPacketFilterResponder {
4567    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4568    tx_id: u32,
4569}
4570
4571/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4572/// if the responder is dropped without sending a response, so that the client
4573/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4574impl std::ops::Drop for MlmeInstallApfPacketFilterResponder {
4575    fn drop(&mut self) {
4576        self.control_handle.shutdown();
4577        // Safety: drops once, never accessed again
4578        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4579    }
4580}
4581
4582impl fidl::endpoints::Responder for MlmeInstallApfPacketFilterResponder {
4583    type ControlHandle = MlmeControlHandle;
4584
4585    fn control_handle(&self) -> &MlmeControlHandle {
4586        &self.control_handle
4587    }
4588
4589    fn drop_without_shutdown(mut self) {
4590        // Safety: drops once, never accessed again due to mem::forget
4591        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4592        // Prevent Drop from running (which would shut down the channel)
4593        std::mem::forget(self);
4594    }
4595}
4596
4597impl MlmeInstallApfPacketFilterResponder {
4598    /// Sends a response to the FIDL transaction.
4599    ///
4600    /// Sets the channel to shutdown if an error occurs.
4601    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4602        let _result = self.send_raw(result);
4603        if _result.is_err() {
4604            self.control_handle.shutdown();
4605        }
4606        self.drop_without_shutdown();
4607        _result
4608    }
4609
4610    /// Similar to "send" but does not shutdown the channel if an error occurs.
4611    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4612        let _result = self.send_raw(result);
4613        self.drop_without_shutdown();
4614        _result
4615    }
4616
4617    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4618        self.control_handle
4619            .inner
4620            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4621                result,
4622                self.tx_id,
4623                0x267565b4916c825b,
4624                fidl::encoding::DynamicFlags::empty(),
4625            )
4626    }
4627}
4628
4629#[must_use = "FIDL methods require a response to be sent"]
4630#[derive(Debug)]
4631pub struct MlmeReadApfPacketFilterDataResponder {
4632    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4633    tx_id: u32,
4634}
4635
4636/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4637/// if the responder is dropped without sending a response, so that the client
4638/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4639impl std::ops::Drop for MlmeReadApfPacketFilterDataResponder {
4640    fn drop(&mut self) {
4641        self.control_handle.shutdown();
4642        // Safety: drops once, never accessed again
4643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4644    }
4645}
4646
4647impl fidl::endpoints::Responder for MlmeReadApfPacketFilterDataResponder {
4648    type ControlHandle = MlmeControlHandle;
4649
4650    fn control_handle(&self) -> &MlmeControlHandle {
4651        &self.control_handle
4652    }
4653
4654    fn drop_without_shutdown(mut self) {
4655        // Safety: drops once, never accessed again due to mem::forget
4656        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4657        // Prevent Drop from running (which would shut down the channel)
4658        std::mem::forget(self);
4659    }
4660}
4661
4662impl MlmeReadApfPacketFilterDataResponder {
4663    /// Sends a response to the FIDL transaction.
4664    ///
4665    /// Sets the channel to shutdown if an error occurs.
4666    pub fn send(self, mut result: Result<&[u8], i32>) -> Result<(), fidl::Error> {
4667        let _result = self.send_raw(result);
4668        if _result.is_err() {
4669            self.control_handle.shutdown();
4670        }
4671        self.drop_without_shutdown();
4672        _result
4673    }
4674
4675    /// Similar to "send" but does not shutdown the channel if an error occurs.
4676    pub fn send_no_shutdown_on_err(
4677        self,
4678        mut result: Result<&[u8], i32>,
4679    ) -> Result<(), fidl::Error> {
4680        let _result = self.send_raw(result);
4681        self.drop_without_shutdown();
4682        _result
4683    }
4684
4685    fn send_raw(&self, mut result: Result<&[u8], i32>) -> Result<(), fidl::Error> {
4686        self.control_handle.inner.send::<fidl::encoding::ResultType<
4687            MlmeReadApfPacketFilterDataResponse,
4688            i32,
4689        >>(
4690            result.map(|memory| (memory,)),
4691            self.tx_id,
4692            0x6040d744f1b2cb61,
4693            fidl::encoding::DynamicFlags::empty(),
4694        )
4695    }
4696}
4697
4698#[must_use = "FIDL methods require a response to be sent"]
4699#[derive(Debug)]
4700pub struct MlmeSetApfPacketFilterEnabledResponder {
4701    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4702    tx_id: u32,
4703}
4704
4705/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4706/// if the responder is dropped without sending a response, so that the client
4707/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4708impl std::ops::Drop for MlmeSetApfPacketFilterEnabledResponder {
4709    fn drop(&mut self) {
4710        self.control_handle.shutdown();
4711        // Safety: drops once, never accessed again
4712        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4713    }
4714}
4715
4716impl fidl::endpoints::Responder for MlmeSetApfPacketFilterEnabledResponder {
4717    type ControlHandle = MlmeControlHandle;
4718
4719    fn control_handle(&self) -> &MlmeControlHandle {
4720        &self.control_handle
4721    }
4722
4723    fn drop_without_shutdown(mut self) {
4724        // Safety: drops once, never accessed again due to mem::forget
4725        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4726        // Prevent Drop from running (which would shut down the channel)
4727        std::mem::forget(self);
4728    }
4729}
4730
4731impl MlmeSetApfPacketFilterEnabledResponder {
4732    /// Sends a response to the FIDL transaction.
4733    ///
4734    /// Sets the channel to shutdown if an error occurs.
4735    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4736        let _result = self.send_raw(result);
4737        if _result.is_err() {
4738            self.control_handle.shutdown();
4739        }
4740        self.drop_without_shutdown();
4741        _result
4742    }
4743
4744    /// Similar to "send" but does not shutdown the channel if an error occurs.
4745    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4746        let _result = self.send_raw(result);
4747        self.drop_without_shutdown();
4748        _result
4749    }
4750
4751    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4752        self.control_handle
4753            .inner
4754            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4755                result,
4756                self.tx_id,
4757                0x6d99bdca77076aea,
4758                fidl::encoding::DynamicFlags::empty(),
4759            )
4760    }
4761}
4762
4763#[must_use = "FIDL methods require a response to be sent"]
4764#[derive(Debug)]
4765pub struct MlmeGetApfPacketFilterEnabledResponder {
4766    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4767    tx_id: u32,
4768}
4769
4770/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4771/// if the responder is dropped without sending a response, so that the client
4772/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4773impl std::ops::Drop for MlmeGetApfPacketFilterEnabledResponder {
4774    fn drop(&mut self) {
4775        self.control_handle.shutdown();
4776        // Safety: drops once, never accessed again
4777        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4778    }
4779}
4780
4781impl fidl::endpoints::Responder for MlmeGetApfPacketFilterEnabledResponder {
4782    type ControlHandle = MlmeControlHandle;
4783
4784    fn control_handle(&self) -> &MlmeControlHandle {
4785        &self.control_handle
4786    }
4787
4788    fn drop_without_shutdown(mut self) {
4789        // Safety: drops once, never accessed again due to mem::forget
4790        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4791        // Prevent Drop from running (which would shut down the channel)
4792        std::mem::forget(self);
4793    }
4794}
4795
4796impl MlmeGetApfPacketFilterEnabledResponder {
4797    /// Sends a response to the FIDL transaction.
4798    ///
4799    /// Sets the channel to shutdown if an error occurs.
4800    pub fn send(self, mut result: Result<bool, i32>) -> Result<(), fidl::Error> {
4801        let _result = self.send_raw(result);
4802        if _result.is_err() {
4803            self.control_handle.shutdown();
4804        }
4805        self.drop_without_shutdown();
4806        _result
4807    }
4808
4809    /// Similar to "send" but does not shutdown the channel if an error occurs.
4810    pub fn send_no_shutdown_on_err(self, mut result: Result<bool, i32>) -> Result<(), fidl::Error> {
4811        let _result = self.send_raw(result);
4812        self.drop_without_shutdown();
4813        _result
4814    }
4815
4816    fn send_raw(&self, mut result: Result<bool, i32>) -> Result<(), fidl::Error> {
4817        self.control_handle.inner.send::<fidl::encoding::ResultType<
4818            MlmeGetApfPacketFilterEnabledResponse,
4819            i32,
4820        >>(
4821            result.map(|enabled| (enabled,)),
4822            self.tx_id,
4823            0x1df408bc154be1e4,
4824            fidl::encoding::DynamicFlags::empty(),
4825        )
4826    }
4827}
4828
4829#[must_use = "FIDL methods require a response to be sent"]
4830#[derive(Debug)]
4831pub struct MlmeStartRssiMonitorResponder {
4832    control_handle: std::mem::ManuallyDrop<MlmeControlHandle>,
4833    tx_id: u32,
4834}
4835
4836/// Set the the channel to be shutdown (see [`MlmeControlHandle::shutdown`])
4837/// if the responder is dropped without sending a response, so that the client
4838/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4839impl std::ops::Drop for MlmeStartRssiMonitorResponder {
4840    fn drop(&mut self) {
4841        self.control_handle.shutdown();
4842        // Safety: drops once, never accessed again
4843        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4844    }
4845}
4846
4847impl fidl::endpoints::Responder for MlmeStartRssiMonitorResponder {
4848    type ControlHandle = MlmeControlHandle;
4849
4850    fn control_handle(&self) -> &MlmeControlHandle {
4851        &self.control_handle
4852    }
4853
4854    fn drop_without_shutdown(mut self) {
4855        // Safety: drops once, never accessed again due to mem::forget
4856        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4857        // Prevent Drop from running (which would shut down the channel)
4858        std::mem::forget(self);
4859    }
4860}
4861
4862impl MlmeStartRssiMonitorResponder {
4863    /// Sends a response to the FIDL transaction.
4864    ///
4865    /// Sets the channel to shutdown if an error occurs.
4866    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4867        let _result = self.send_raw(result);
4868        if _result.is_err() {
4869            self.control_handle.shutdown();
4870        }
4871        self.drop_without_shutdown();
4872        _result
4873    }
4874
4875    /// Similar to "send" but does not shutdown the channel if an error occurs.
4876    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4877        let _result = self.send_raw(result);
4878        self.drop_without_shutdown();
4879        _result
4880    }
4881
4882    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4883        self.control_handle
4884            .inner
4885            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
4886                result,
4887                self.tx_id,
4888                0x542a970415b1d912,
4889                fidl::encoding::DynamicFlags::empty(),
4890            )
4891    }
4892}
4893
4894mod internal {
4895    use super::*;
4896
4897    impl fidl::encoding::ResourceTypeMarker for ConnectorConnectRequest {
4898        type Borrowed<'a> = &'a mut Self;
4899        fn take_or_borrow<'a>(
4900            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
4901        ) -> Self::Borrowed<'a> {
4902            value
4903        }
4904    }
4905
4906    unsafe impl fidl::encoding::TypeMarker for ConnectorConnectRequest {
4907        type Owned = Self;
4908
4909        #[inline(always)]
4910        fn inline_align(_context: fidl::encoding::Context) -> usize {
4911            4
4912        }
4913
4914        #[inline(always)]
4915        fn inline_size(_context: fidl::encoding::Context) -> usize {
4916            4
4917        }
4918    }
4919
4920    unsafe impl
4921        fidl::encoding::Encode<
4922            ConnectorConnectRequest,
4923            fidl::encoding::DefaultFuchsiaResourceDialect,
4924        > for &mut ConnectorConnectRequest
4925    {
4926        #[inline]
4927        unsafe fn encode(
4928            self,
4929            encoder: &mut fidl::encoding::Encoder<
4930                '_,
4931                fidl::encoding::DefaultFuchsiaResourceDialect,
4932            >,
4933            offset: usize,
4934            _depth: fidl::encoding::Depth,
4935        ) -> fidl::Result<()> {
4936            encoder.debug_check_bounds::<ConnectorConnectRequest>(offset);
4937            // Delegate to tuple encoding.
4938            fidl::encoding::Encode::<ConnectorConnectRequest, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
4939                (
4940                    <fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.request),
4941                ),
4942                encoder, offset, _depth
4943            )
4944        }
4945    }
4946    unsafe impl<
4947        T0: fidl::encoding::Encode<
4948                fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>>,
4949                fidl::encoding::DefaultFuchsiaResourceDialect,
4950            >,
4951    >
4952        fidl::encoding::Encode<
4953            ConnectorConnectRequest,
4954            fidl::encoding::DefaultFuchsiaResourceDialect,
4955        > for (T0,)
4956    {
4957        #[inline]
4958        unsafe fn encode(
4959            self,
4960            encoder: &mut fidl::encoding::Encoder<
4961                '_,
4962                fidl::encoding::DefaultFuchsiaResourceDialect,
4963            >,
4964            offset: usize,
4965            depth: fidl::encoding::Depth,
4966        ) -> fidl::Result<()> {
4967            encoder.debug_check_bounds::<ConnectorConnectRequest>(offset);
4968            // Zero out padding regions. There's no need to apply masks
4969            // because the unmasked parts will be overwritten by fields.
4970            // Write the fields.
4971            self.0.encode(encoder, offset + 0, depth)?;
4972            Ok(())
4973        }
4974    }
4975
4976    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
4977        for ConnectorConnectRequest
4978    {
4979        #[inline(always)]
4980        fn new_empty() -> Self {
4981            Self {
4982                request: fidl::new_empty!(
4983                    fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>>,
4984                    fidl::encoding::DefaultFuchsiaResourceDialect
4985                ),
4986            }
4987        }
4988
4989        #[inline]
4990        unsafe fn decode(
4991            &mut self,
4992            decoder: &mut fidl::encoding::Decoder<
4993                '_,
4994                fidl::encoding::DefaultFuchsiaResourceDialect,
4995            >,
4996            offset: usize,
4997            _depth: fidl::encoding::Depth,
4998        ) -> fidl::Result<()> {
4999            decoder.debug_check_bounds::<Self>(offset);
5000            // Verify that padding bytes are zero.
5001            fidl::decode!(
5002                fidl::encoding::Endpoint<fidl::endpoints::ServerEnd<MlmeMarker>>,
5003                fidl::encoding::DefaultFuchsiaResourceDialect,
5004                &mut self.request,
5005                decoder,
5006                offset + 0,
5007                _depth
5008            )?;
5009            Ok(())
5010        }
5011    }
5012}