Skip to main content

fidl_fuchsia_wlan_fullmac/
fidl_fuchsia_wlan_fullmac.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_fullmac_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Default, PartialEq)]
15pub struct WlanFullmacImplInitRequest {
16    /// The WlanFullmacImplifc client end.
17    /// Required.
18    pub ifc: Option<fidl::endpoints::ClientEnd<WlanFullmacImplIfcMarker>>,
19    #[doc(hidden)]
20    pub __source_breaking: fidl::marker::SourceBreaking,
21}
22
23impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
24    for WlanFullmacImplInitRequest
25{
26}
27
28#[derive(Debug, Default, PartialEq)]
29pub struct WlanFullmacImplInitResponse {
30    /// The SME server end channel.
31    /// Required.
32    pub sme_channel: Option<fidl::Channel>,
33    #[doc(hidden)]
34    pub __source_breaking: fidl::marker::SourceBreaking,
35}
36
37impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
38    for WlanFullmacImplInitResponse
39{
40}
41
42#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
43pub struct WlanFullmacImpl_Marker;
44
45impl fidl::endpoints::ProtocolMarker for WlanFullmacImpl_Marker {
46    type Proxy = WlanFullmacImpl_Proxy;
47    type RequestStream = WlanFullmacImpl_RequestStream;
48    #[cfg(target_os = "fuchsia")]
49    type SynchronousProxy = WlanFullmacImpl_SynchronousProxy;
50
51    const DEBUG_NAME: &'static str = "fuchsia.wlan.fullmac.WlanFullmacImpl";
52}
53impl fidl::endpoints::DiscoverableProtocolMarker for WlanFullmacImpl_Marker {}
54pub type WlanFullmacImplInitResult = Result<WlanFullmacImplInitResponse, i32>;
55pub type WlanFullmacImplQueryResult = Result<WlanFullmacImplQueryResponse, i32>;
56pub type WlanFullmacImplQuerySecuritySupportResult =
57    Result<WlanFullmacImplQuerySecuritySupportResponse, i32>;
58pub type WlanFullmacImplQuerySpectrumManagementSupportResult =
59    Result<WlanFullmacImplQuerySpectrumManagementSupportResponse, i32>;
60pub type WlanFullmacImplQueryTelemetrySupportResult =
61    Result<WlanFullmacImplQueryTelemetrySupportResponse, i32>;
62pub type WlanFullmacImplQueryApfPacketFilterSupportResult =
63    Result<WlanFullmacImplQueryApfPacketFilterSupportResponse, i32>;
64pub type WlanFullmacImplQueryRssiMonitorSupportResult =
65    Result<WlanFullmacImplQueryRssiMonitorSupportResponse, i32>;
66pub type WlanFullmacImplStartScheduledScanResult = Result<(), i32>;
67pub type WlanFullmacImplStopScheduledScanResult = Result<(), i32>;
68pub type WlanFullmacImplGetScheduledScanEnabledResult =
69    Result<WlanFullmacImplGetScheduledScanEnabledResponse, i32>;
70pub type WlanFullmacImplGetIfaceStatsResult = Result<fidl_fuchsia_wlan_stats::IfaceStats, i32>;
71pub type WlanFullmacImplGetIfaceHistogramStatsResult =
72    Result<fidl_fuchsia_wlan_stats::IfaceHistogramStats, i32>;
73pub type WlanFullmacImplGetSignalReportResult = Result<fidl_fuchsia_wlan_stats::SignalReport, i32>;
74pub type WlanFullmacImplSetMacAddressResult = Result<(), i32>;
75pub type WlanFullmacImplInstallApfPacketFilterResult = Result<(), i32>;
76pub type WlanFullmacImplReadApfPacketFilterDataResult =
77    Result<WlanFullmacImplReadApfPacketFilterDataResponse, i32>;
78pub type WlanFullmacImplSetApfPacketFilterEnabledResult = Result<(), i32>;
79pub type WlanFullmacImplGetApfPacketFilterEnabledResult =
80    Result<WlanFullmacImplGetApfPacketFilterEnabledResponse, i32>;
81pub type WlanFullmacImplStartRssiMonitorResult = Result<(), i32>;
82pub type WlanFullmacImplStopRssiMonitorResult = Result<(), i32>;
83
84pub trait WlanFullmacImpl_ProxyInterface: Send + Sync {
85    type InitResponseFut: std::future::Future<Output = Result<WlanFullmacImplInitResult, fidl::Error>>
86        + Send;
87    fn r#init(&self, payload: WlanFullmacImplInitRequest) -> Self::InitResponseFut;
88    type QueryResponseFut: std::future::Future<Output = Result<WlanFullmacImplQueryResult, fidl::Error>>
89        + Send;
90    fn r#query(&self) -> Self::QueryResponseFut;
91    type QuerySecuritySupportResponseFut: std::future::Future<Output = Result<WlanFullmacImplQuerySecuritySupportResult, fidl::Error>>
92        + Send;
93    fn r#query_security_support(&self) -> Self::QuerySecuritySupportResponseFut;
94    type QuerySpectrumManagementSupportResponseFut: std::future::Future<
95            Output = Result<WlanFullmacImplQuerySpectrumManagementSupportResult, fidl::Error>,
96        > + Send;
97    fn r#query_spectrum_management_support(
98        &self,
99    ) -> Self::QuerySpectrumManagementSupportResponseFut;
100    type QueryTelemetrySupportResponseFut: std::future::Future<
101            Output = Result<WlanFullmacImplQueryTelemetrySupportResult, fidl::Error>,
102        > + Send;
103    fn r#query_telemetry_support(&self) -> Self::QueryTelemetrySupportResponseFut;
104    type QueryApfPacketFilterSupportResponseFut: std::future::Future<
105            Output = Result<WlanFullmacImplQueryApfPacketFilterSupportResult, fidl::Error>,
106        > + Send;
107    fn r#query_apf_packet_filter_support(&self) -> Self::QueryApfPacketFilterSupportResponseFut;
108    type QueryRssiMonitorSupportResponseFut: std::future::Future<
109            Output = Result<WlanFullmacImplQueryRssiMonitorSupportResult, fidl::Error>,
110        > + Send;
111    fn r#query_rssi_monitor_support(&self) -> Self::QueryRssiMonitorSupportResponseFut;
112    type StartScanResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
113    fn r#start_scan(&self, payload: &WlanFullmacImplStartScanRequest)
114    -> Self::StartScanResponseFut;
115    type StartScheduledScanResponseFut: std::future::Future<Output = Result<WlanFullmacImplStartScheduledScanResult, fidl::Error>>
116        + Send;
117    fn r#start_scheduled_scan(
118        &self,
119        payload: &WlanFullmacImplStartScheduledScanRequest,
120    ) -> Self::StartScheduledScanResponseFut;
121    type StopScheduledScanResponseFut: std::future::Future<Output = Result<WlanFullmacImplStopScheduledScanResult, fidl::Error>>
122        + Send;
123    fn r#stop_scheduled_scan(
124        &self,
125        payload: &WlanFullmacImplStopScheduledScanRequest,
126    ) -> Self::StopScheduledScanResponseFut;
127    type GetScheduledScanEnabledResponseFut: std::future::Future<
128            Output = Result<WlanFullmacImplGetScheduledScanEnabledResult, fidl::Error>,
129        > + Send;
130    fn r#get_scheduled_scan_enabled(&self) -> Self::GetScheduledScanEnabledResponseFut;
131    type ConnectResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
132    fn r#connect(&self, payload: &WlanFullmacImplConnectRequest) -> Self::ConnectResponseFut;
133    type ReconnectResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
134    fn r#reconnect(&self, payload: &WlanFullmacImplReconnectRequest) -> Self::ReconnectResponseFut;
135    type RoamResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
136    fn r#roam(&self, payload: &WlanFullmacImplRoamRequest) -> Self::RoamResponseFut;
137    type AuthRespResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
138    fn r#auth_resp(&self, payload: &WlanFullmacImplAuthRespRequest) -> Self::AuthRespResponseFut;
139    type DeauthResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
140    fn r#deauth(&self, payload: &WlanFullmacImplDeauthRequest) -> Self::DeauthResponseFut;
141    type AssocRespResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
142    fn r#assoc_resp(&self, payload: &WlanFullmacImplAssocRespRequest)
143    -> Self::AssocRespResponseFut;
144    type DisassocResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
145    fn r#disassoc(&self, payload: &WlanFullmacImplDisassocRequest) -> Self::DisassocResponseFut;
146    type StartBssResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
147    fn r#start_bss(&self, payload: &WlanFullmacImplStartBssRequest) -> Self::StartBssResponseFut;
148    type StopBssResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
149    fn r#stop_bss(&self, payload: &WlanFullmacImplStopBssRequest) -> Self::StopBssResponseFut;
150    type SetKeysResponseFut: std::future::Future<Output = Result<WlanFullmacSetKeysResp, fidl::Error>>
151        + Send;
152    fn r#set_keys(&self, payload: &WlanFullmacImplSetKeysRequest) -> Self::SetKeysResponseFut;
153    type EapolTxResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
154    fn r#eapol_tx(&self, payload: &WlanFullmacImplEapolTxRequest) -> Self::EapolTxResponseFut;
155    type GetIfaceStatsResponseFut: std::future::Future<Output = Result<WlanFullmacImplGetIfaceStatsResult, fidl::Error>>
156        + Send;
157    fn r#get_iface_stats(&self) -> Self::GetIfaceStatsResponseFut;
158    type GetIfaceHistogramStatsResponseFut: std::future::Future<
159            Output = Result<WlanFullmacImplGetIfaceHistogramStatsResult, fidl::Error>,
160        > + Send;
161    fn r#get_iface_histogram_stats(&self) -> Self::GetIfaceHistogramStatsResponseFut;
162    type GetSignalReportResponseFut: std::future::Future<Output = Result<WlanFullmacImplGetSignalReportResult, fidl::Error>>
163        + Send;
164    fn r#get_signal_report(&self) -> Self::GetSignalReportResponseFut;
165    type SaeHandshakeRespResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
166    fn r#sae_handshake_resp(
167        &self,
168        payload: &WlanFullmacImplSaeHandshakeRespRequest,
169    ) -> Self::SaeHandshakeRespResponseFut;
170    type SaeFrameTxResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
171    fn r#sae_frame_tx(&self, frame: &SaeFrame) -> Self::SaeFrameTxResponseFut;
172    type WmmStatusReqResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
173    fn r#wmm_status_req(&self) -> Self::WmmStatusReqResponseFut;
174    type OnLinkStateChangedResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
175    fn r#on_link_state_changed(
176        &self,
177        payload: &WlanFullmacImplOnLinkStateChangedRequest,
178    ) -> Self::OnLinkStateChangedResponseFut;
179    type SetMacAddressResponseFut: std::future::Future<Output = Result<WlanFullmacImplSetMacAddressResult, fidl::Error>>
180        + Send;
181    fn r#set_mac_address(&self, mac_addr: &[u8; 6]) -> Self::SetMacAddressResponseFut;
182    type InstallApfPacketFilterResponseFut: std::future::Future<
183            Output = Result<WlanFullmacImplInstallApfPacketFilterResult, fidl::Error>,
184        > + Send;
185    fn r#install_apf_packet_filter(
186        &self,
187        payload: &WlanFullmacImplInstallApfPacketFilterRequest,
188    ) -> Self::InstallApfPacketFilterResponseFut;
189    type ReadApfPacketFilterDataResponseFut: std::future::Future<
190            Output = Result<WlanFullmacImplReadApfPacketFilterDataResult, fidl::Error>,
191        > + Send;
192    fn r#read_apf_packet_filter_data(&self) -> Self::ReadApfPacketFilterDataResponseFut;
193    type SetApfPacketFilterEnabledResponseFut: std::future::Future<
194            Output = Result<WlanFullmacImplSetApfPacketFilterEnabledResult, fidl::Error>,
195        > + Send;
196    fn r#set_apf_packet_filter_enabled(
197        &self,
198        payload: &WlanFullmacImplSetApfPacketFilterEnabledRequest,
199    ) -> Self::SetApfPacketFilterEnabledResponseFut;
200    type GetApfPacketFilterEnabledResponseFut: std::future::Future<
201            Output = Result<WlanFullmacImplGetApfPacketFilterEnabledResult, fidl::Error>,
202        > + Send;
203    fn r#get_apf_packet_filter_enabled(&self) -> Self::GetApfPacketFilterEnabledResponseFut;
204    type StartRssiMonitorResponseFut: std::future::Future<Output = Result<WlanFullmacImplStartRssiMonitorResult, fidl::Error>>
205        + Send;
206    fn r#start_rssi_monitor(
207        &self,
208        payload: &WlanFullmacImplStartRssiMonitorRequest,
209    ) -> Self::StartRssiMonitorResponseFut;
210    type StopRssiMonitorResponseFut: std::future::Future<Output = Result<WlanFullmacImplStopRssiMonitorResult, fidl::Error>>
211        + Send;
212    fn r#stop_rssi_monitor(&self) -> Self::StopRssiMonitorResponseFut;
213}
214#[derive(Debug)]
215#[cfg(target_os = "fuchsia")]
216pub struct WlanFullmacImpl_SynchronousProxy {
217    client: fidl::client::sync::Client,
218}
219
220#[cfg(target_os = "fuchsia")]
221impl fidl::endpoints::SynchronousProxy for WlanFullmacImpl_SynchronousProxy {
222    type Proxy = WlanFullmacImpl_Proxy;
223    type Protocol = WlanFullmacImpl_Marker;
224
225    fn from_channel(inner: fidl::Channel) -> Self {
226        Self::new(inner)
227    }
228
229    fn into_channel(self) -> fidl::Channel {
230        self.client.into_channel()
231    }
232
233    fn as_channel(&self) -> &fidl::Channel {
234        self.client.as_channel()
235    }
236}
237
238#[cfg(target_os = "fuchsia")]
239impl WlanFullmacImpl_SynchronousProxy {
240    pub fn new(channel: fidl::Channel) -> Self {
241        Self { client: fidl::client::sync::Client::new(channel) }
242    }
243
244    pub fn into_channel(self) -> fidl::Channel {
245        self.client.into_channel()
246    }
247
248    /// Waits until an event arrives and returns it. It is safe for other
249    /// threads to make concurrent requests while waiting for an event.
250    pub fn wait_for_event(
251        &self,
252        deadline: zx::MonotonicInstant,
253    ) -> Result<WlanFullmacImpl_Event, fidl::Error> {
254        WlanFullmacImpl_Event::decode(
255            self.client.wait_for_event::<WlanFullmacImpl_Marker>(deadline)?,
256        )
257    }
258
259    /// Initialize the FullMAC driver. This is the first request that the platform will make to the
260    /// FullMAC driver.
261    ///
262    /// On initialization, MLME provides the client end to the WlanFullmacImplIfc protocol. The
263    /// driver must return the SME server end channel, which is used internally by the platform.
264    /// Typically, the SME server end channel is given to the FullMAC driver by
265    /// fuchsia.wlan.phy/WlanPhy.CreateIface.
266    ///
267    /// If `Init` completes successfully, the platform will begin making other WlanFullmacImpl
268    /// requests to the FullMAC driver, and the FullMAC driver is free to make WlanFullmacImplIfc
269    /// requests to the platform. The platform may continue making WlanFullmacImpl requests until
270    /// the WlanFullmacImpl server unbinds.
271    ///
272    /// Common errors include:
273    ///   - `ZX_ERR_ALREADY_BOUND`: `Init` was already called on this FullMAC driver.
274    pub fn r#init(
275        &self,
276        mut payload: WlanFullmacImplInitRequest,
277        ___deadline: zx::MonotonicInstant,
278    ) -> Result<WlanFullmacImplInitResult, fidl::Error> {
279        let _response = self.client.send_query::<
280            WlanFullmacImplInitRequest,
281            fidl::encoding::ResultType<WlanFullmacImplInitResponse, i32>,
282            WlanFullmacImpl_Marker,
283        >(
284            &mut payload,
285            0x593dfb6cb3f0f1aa,
286            fidl::encoding::DynamicFlags::empty(),
287            ___deadline,
288        )?;
289        Ok(_response.map(|x| x))
290    }
291
292    /// Returns high-level information describing the state of the FullMAC driver.
293    /// This is safe to call even before the call to WlanFullmacImpl::Start.
294    pub fn r#query(
295        &self,
296        ___deadline: zx::MonotonicInstant,
297    ) -> Result<WlanFullmacImplQueryResult, fidl::Error> {
298        let _response = self.client.send_query::<
299            fidl::encoding::EmptyPayload,
300            fidl::encoding::ResultType<WlanFullmacImplQueryResponse, i32>,
301            WlanFullmacImpl_Marker,
302        >(
303            (),
304            0x28ac65f9da3941d4,
305            fidl::encoding::DynamicFlags::empty(),
306            ___deadline,
307        )?;
308        Ok(_response.map(|x| x))
309    }
310
311    pub fn r#query_security_support(
312        &self,
313        ___deadline: zx::MonotonicInstant,
314    ) -> Result<WlanFullmacImplQuerySecuritySupportResult, fidl::Error> {
315        let _response =
316            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
317                WlanFullmacImplQuerySecuritySupportResponse,
318                i32,
319            >, WlanFullmacImpl_Marker>(
320                (),
321                0x11cf3fa6eeb93f84,
322                fidl::encoding::DynamicFlags::empty(),
323                ___deadline,
324            )?;
325        Ok(_response.map(|x| x))
326    }
327
328    pub fn r#query_spectrum_management_support(
329        &self,
330        ___deadline: zx::MonotonicInstant,
331    ) -> Result<WlanFullmacImplQuerySpectrumManagementSupportResult, fidl::Error> {
332        let _response =
333            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
334                WlanFullmacImplQuerySpectrumManagementSupportResponse,
335                i32,
336            >, WlanFullmacImpl_Marker>(
337                (),
338                0x22ae7551d855b83a,
339                fidl::encoding::DynamicFlags::empty(),
340                ___deadline,
341            )?;
342        Ok(_response.map(|x| x))
343    }
344
345    pub fn r#query_telemetry_support(
346        &self,
347        ___deadline: zx::MonotonicInstant,
348    ) -> Result<WlanFullmacImplQueryTelemetrySupportResult, fidl::Error> {
349        let _response =
350            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
351                WlanFullmacImplQueryTelemetrySupportResponse,
352                i32,
353            >, WlanFullmacImpl_Marker>(
354                (),
355                0x4561479ca560827f,
356                fidl::encoding::DynamicFlags::empty(),
357                ___deadline,
358            )?;
359        Ok(_response.map(|x| x))
360    }
361
362    pub fn r#query_apf_packet_filter_support(
363        &self,
364        ___deadline: zx::MonotonicInstant,
365    ) -> Result<WlanFullmacImplQueryApfPacketFilterSupportResult, fidl::Error> {
366        let _response = self
367            .client
368            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::FlexibleResultType<
369                WlanFullmacImplQueryApfPacketFilterSupportResponse,
370                i32,
371            >, WlanFullmacImpl_Marker>(
372                (),
373                0x6df8cdf0acd4dfad,
374                fidl::encoding::DynamicFlags::FLEXIBLE,
375                ___deadline,
376            )?
377            .into_result::<WlanFullmacImpl_Marker>("query_apf_packet_filter_support")?;
378        Ok(_response.map(|x| x))
379    }
380
381    pub fn r#query_rssi_monitor_support(
382        &self,
383        ___deadline: zx::MonotonicInstant,
384    ) -> Result<WlanFullmacImplQueryRssiMonitorSupportResult, fidl::Error> {
385        let _response =
386            self.client
387                .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::FlexibleResultType<
388                    WlanFullmacImplQueryRssiMonitorSupportResponse,
389                    i32,
390                >, WlanFullmacImpl_Marker>(
391                    (),
392                    0x21d21e42d6aa61b5,
393                    fidl::encoding::DynamicFlags::FLEXIBLE,
394                    ___deadline,
395                )?
396                .into_result::<WlanFullmacImpl_Marker>("query_rssi_monitor_support")?;
397        Ok(_response.map(|x| x))
398    }
399
400    pub fn r#start_scan(
401        &self,
402        mut payload: &WlanFullmacImplStartScanRequest,
403        ___deadline: zx::MonotonicInstant,
404    ) -> Result<(), fidl::Error> {
405        let _response = self.client.send_query::<
406            WlanFullmacImplStartScanRequest,
407            fidl::encoding::EmptyPayload,
408            WlanFullmacImpl_Marker,
409        >(
410            payload,
411            0x26c17bf595aa161c,
412            fidl::encoding::DynamicFlags::empty(),
413            ___deadline,
414        )?;
415        Ok(_response)
416    }
417
418    /// Starts scheduled scanning.
419    pub fn r#start_scheduled_scan(
420        &self,
421        mut payload: &WlanFullmacImplStartScheduledScanRequest,
422        ___deadline: zx::MonotonicInstant,
423    ) -> Result<WlanFullmacImplStartScheduledScanResult, fidl::Error> {
424        let _response = self.client.send_query::<
425            WlanFullmacImplStartScheduledScanRequest,
426            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
427            WlanFullmacImpl_Marker,
428        >(
429            payload,
430            0x67bb4356265682d2,
431            fidl::encoding::DynamicFlags::FLEXIBLE,
432            ___deadline,
433        )?
434        .into_result::<WlanFullmacImpl_Marker>("start_scheduled_scan")?;
435        Ok(_response.map(|x| x))
436    }
437
438    /// Stops scheduled scanning.
439    ///
440    /// The successful return value indicates that the scan has been stopped.
441    /// The driver will NOT send an `OnScheduledScanStoppedByFirmware` event in response to this call.
442    /// `OnScheduledScanStoppedByFirmware` is reserved for firmware-initiated stops or errors.
443    pub fn r#stop_scheduled_scan(
444        &self,
445        mut payload: &WlanFullmacImplStopScheduledScanRequest,
446        ___deadline: zx::MonotonicInstant,
447    ) -> Result<WlanFullmacImplStopScheduledScanResult, fidl::Error> {
448        let _response = self.client.send_query::<
449            WlanFullmacImplStopScheduledScanRequest,
450            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
451            WlanFullmacImpl_Marker,
452        >(
453            payload,
454            0x71bf2a03f2cdc10f,
455            fidl::encoding::DynamicFlags::FLEXIBLE,
456            ___deadline,
457        )?
458        .into_result::<WlanFullmacImpl_Marker>("stop_scheduled_scan")?;
459        Ok(_response.map(|x| x))
460    }
461
462    /// Returns the transaction IDs of any currently active scheduled scans.
463    pub fn r#get_scheduled_scan_enabled(
464        &self,
465        ___deadline: zx::MonotonicInstant,
466    ) -> Result<WlanFullmacImplGetScheduledScanEnabledResult, fidl::Error> {
467        let _response =
468            self.client
469                .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::FlexibleResultType<
470                    WlanFullmacImplGetScheduledScanEnabledResponse,
471                    i32,
472                >, WlanFullmacImpl_Marker>(
473                    (),
474                    0x96be6f11648f198,
475                    fidl::encoding::DynamicFlags::FLEXIBLE,
476                    ___deadline,
477                )?
478                .into_result::<WlanFullmacImpl_Marker>("get_scheduled_scan_enabled")?;
479        Ok(_response.map(|x| x))
480    }
481
482    pub fn r#connect(
483        &self,
484        mut payload: &WlanFullmacImplConnectRequest,
485        ___deadline: zx::MonotonicInstant,
486    ) -> Result<(), fidl::Error> {
487        let _response = self.client.send_query::<
488            WlanFullmacImplConnectRequest,
489            fidl::encoding::EmptyPayload,
490            WlanFullmacImpl_Marker,
491        >(
492            payload,
493            0x19eb0322efb07a76,
494            fidl::encoding::DynamicFlags::empty(),
495            ___deadline,
496        )?;
497        Ok(_response)
498    }
499
500    pub fn r#reconnect(
501        &self,
502        mut payload: &WlanFullmacImplReconnectRequest,
503        ___deadline: zx::MonotonicInstant,
504    ) -> Result<(), fidl::Error> {
505        let _response = self.client.send_query::<
506            WlanFullmacImplReconnectRequest,
507            fidl::encoding::EmptyPayload,
508            WlanFullmacImpl_Marker,
509        >(
510            payload,
511            0x474084c4ef19ee71,
512            fidl::encoding::DynamicFlags::empty(),
513            ___deadline,
514        )?;
515        Ok(_response)
516    }
517
518    /// Initiate a roam attempt, which moves association to a different BSS within the ESS.
519    pub fn r#roam(
520        &self,
521        mut payload: &WlanFullmacImplRoamRequest,
522        ___deadline: zx::MonotonicInstant,
523    ) -> Result<(), fidl::Error> {
524        let _response = self.client.send_query::<
525            WlanFullmacImplRoamRequest,
526            fidl::encoding::EmptyPayload,
527            WlanFullmacImpl_Marker,
528        >(
529            payload,
530            0x1e35dcc98b124b64,
531            fidl::encoding::DynamicFlags::empty(),
532            ___deadline,
533        )?;
534        Ok(_response)
535    }
536
537    pub fn r#auth_resp(
538        &self,
539        mut payload: &WlanFullmacImplAuthRespRequest,
540        ___deadline: zx::MonotonicInstant,
541    ) -> Result<(), fidl::Error> {
542        let _response = self.client.send_query::<
543            WlanFullmacImplAuthRespRequest,
544            fidl::encoding::EmptyPayload,
545            WlanFullmacImpl_Marker,
546        >(
547            payload,
548            0x5f7ea24b44a4aaeb,
549            fidl::encoding::DynamicFlags::empty(),
550            ___deadline,
551        )?;
552        Ok(_response)
553    }
554
555    pub fn r#deauth(
556        &self,
557        mut payload: &WlanFullmacImplDeauthRequest,
558        ___deadline: zx::MonotonicInstant,
559    ) -> Result<(), fidl::Error> {
560        let _response = self.client.send_query::<
561            WlanFullmacImplDeauthRequest,
562            fidl::encoding::EmptyPayload,
563            WlanFullmacImpl_Marker,
564        >(
565            payload,
566            0x112786eccbf12f37,
567            fidl::encoding::DynamicFlags::empty(),
568            ___deadline,
569        )?;
570        Ok(_response)
571    }
572
573    pub fn r#assoc_resp(
574        &self,
575        mut payload: &WlanFullmacImplAssocRespRequest,
576        ___deadline: zx::MonotonicInstant,
577    ) -> Result<(), fidl::Error> {
578        let _response = self.client.send_query::<
579            WlanFullmacImplAssocRespRequest,
580            fidl::encoding::EmptyPayload,
581            WlanFullmacImpl_Marker,
582        >(
583            payload,
584            0x5022ce6b8eefec2f,
585            fidl::encoding::DynamicFlags::empty(),
586            ___deadline,
587        )?;
588        Ok(_response)
589    }
590
591    pub fn r#disassoc(
592        &self,
593        mut payload: &WlanFullmacImplDisassocRequest,
594        ___deadline: zx::MonotonicInstant,
595    ) -> Result<(), fidl::Error> {
596        let _response = self.client.send_query::<
597            WlanFullmacImplDisassocRequest,
598            fidl::encoding::EmptyPayload,
599            WlanFullmacImpl_Marker,
600        >(
601            payload,
602            0x9c0fc4e8de53e01,
603            fidl::encoding::DynamicFlags::empty(),
604            ___deadline,
605        )?;
606        Ok(_response)
607    }
608
609    pub fn r#start_bss(
610        &self,
611        mut payload: &WlanFullmacImplStartBssRequest,
612        ___deadline: zx::MonotonicInstant,
613    ) -> Result<(), fidl::Error> {
614        let _response = self.client.send_query::<
615            WlanFullmacImplStartBssRequest,
616            fidl::encoding::EmptyPayload,
617            WlanFullmacImpl_Marker,
618        >(
619            payload,
620            0x6922644d6b1d341d,
621            fidl::encoding::DynamicFlags::empty(),
622            ___deadline,
623        )?;
624        Ok(_response)
625    }
626
627    pub fn r#stop_bss(
628        &self,
629        mut payload: &WlanFullmacImplStopBssRequest,
630        ___deadline: zx::MonotonicInstant,
631    ) -> Result<(), fidl::Error> {
632        let _response = self.client.send_query::<
633            WlanFullmacImplStopBssRequest,
634            fidl::encoding::EmptyPayload,
635            WlanFullmacImpl_Marker,
636        >(
637            payload,
638            0x5aeb9b72e7575268,
639            fidl::encoding::DynamicFlags::empty(),
640            ___deadline,
641        )?;
642        Ok(_response)
643    }
644
645    /// Sets security keys for a connection. This is typically called after a successful key
646    /// exchange.
647    ///
648    /// Note that the platform assumes that the driver will automatically delete keys on a
649    /// disconnect or key rotation.
650    pub fn r#set_keys(
651        &self,
652        mut payload: &WlanFullmacImplSetKeysRequest,
653        ___deadline: zx::MonotonicInstant,
654    ) -> Result<WlanFullmacSetKeysResp, fidl::Error> {
655        let _response = self.client.send_query::<
656            WlanFullmacImplSetKeysRequest,
657            WlanFullmacImplSetKeysResponse,
658            WlanFullmacImpl_Marker,
659        >(
660            payload,
661            0x20f46b1e039f0985,
662            fidl::encoding::DynamicFlags::empty(),
663            ___deadline,
664        )?;
665        Ok(_response.resp)
666    }
667
668    pub fn r#eapol_tx(
669        &self,
670        mut payload: &WlanFullmacImplEapolTxRequest,
671        ___deadline: zx::MonotonicInstant,
672    ) -> Result<(), fidl::Error> {
673        let _response = self.client.send_query::<
674            WlanFullmacImplEapolTxRequest,
675            fidl::encoding::EmptyPayload,
676            WlanFullmacImpl_Marker,
677        >(
678            payload,
679            0x529a2d90fd4c8177,
680            fidl::encoding::DynamicFlags::empty(),
681            ___deadline,
682        )?;
683        Ok(_response)
684    }
685
686    pub fn r#get_iface_stats(
687        &self,
688        ___deadline: zx::MonotonicInstant,
689    ) -> Result<WlanFullmacImplGetIfaceStatsResult, fidl::Error> {
690        let _response = self.client.send_query::<
691            fidl::encoding::EmptyPayload,
692            fidl::encoding::ResultType<WlanFullmacImplGetIfaceStatsResponse, i32>,
693            WlanFullmacImpl_Marker,
694        >(
695            (),
696            0x505563776ef0392f,
697            fidl::encoding::DynamicFlags::empty(),
698            ___deadline,
699        )?;
700        Ok(_response.map(|x| x.stats))
701    }
702
703    pub fn r#get_iface_histogram_stats(
704        &self,
705        ___deadline: zx::MonotonicInstant,
706    ) -> Result<WlanFullmacImplGetIfaceHistogramStatsResult, fidl::Error> {
707        let _response =
708            self.client.send_query::<fidl::encoding::EmptyPayload, fidl::encoding::ResultType<
709                WlanFullmacImplGetIfaceHistogramStatsResponse,
710                i32,
711            >, WlanFullmacImpl_Marker>(
712                (),
713                0x503d586f30ccf2cd,
714                fidl::encoding::DynamicFlags::empty(),
715                ___deadline,
716            )?;
717        Ok(_response.map(|x| x.stats))
718    }
719
720    pub fn r#get_signal_report(
721        &self,
722        ___deadline: zx::MonotonicInstant,
723    ) -> Result<WlanFullmacImplGetSignalReportResult, fidl::Error> {
724        let _response = self.client.send_query::<
725            fidl::encoding::EmptyPayload,
726            fidl::encoding::ResultType<fidl_fuchsia_wlan_stats::SignalReport, i32>,
727            WlanFullmacImpl_Marker,
728        >(
729            (),
730            0x5d93f056e4796bb3,
731            fidl::encoding::DynamicFlags::empty(),
732            ___deadline,
733        )?;
734        Ok(_response.map(|x| x))
735    }
736
737    /// Informs the driver of the result of an SAE handshake.
738    pub fn r#sae_handshake_resp(
739        &self,
740        mut payload: &WlanFullmacImplSaeHandshakeRespRequest,
741        ___deadline: zx::MonotonicInstant,
742    ) -> Result<(), fidl::Error> {
743        let _response = self.client.send_query::<
744            WlanFullmacImplSaeHandshakeRespRequest,
745            fidl::encoding::EmptyPayload,
746            WlanFullmacImpl_Marker,
747        >(
748            payload,
749            0x72cd3a31ae5a54f6,
750            fidl::encoding::DynamicFlags::empty(),
751            ___deadline,
752        )?;
753        Ok(_response)
754    }
755
756    /// Transmit an SAE authentication frame.
757    pub fn r#sae_frame_tx(
758        &self,
759        mut frame: &SaeFrame,
760        ___deadline: zx::MonotonicInstant,
761    ) -> Result<(), fidl::Error> {
762        let _response = self.client.send_query::<
763            WlanFullmacImplSaeFrameTxRequest,
764            fidl::encoding::EmptyPayload,
765            WlanFullmacImpl_Marker,
766        >(
767            (frame,),
768            0x4715ad5dc5a6340f,
769            fidl::encoding::DynamicFlags::empty(),
770            ___deadline,
771        )?;
772        Ok(_response)
773    }
774
775    pub fn r#wmm_status_req(&self, ___deadline: zx::MonotonicInstant) -> Result<(), fidl::Error> {
776        let _response = self.client.send_query::<
777            fidl::encoding::EmptyPayload,
778            fidl::encoding::EmptyPayload,
779            WlanFullmacImpl_Marker,
780        >(
781            (),
782            0x635ecef3beb7a059,
783            fidl::encoding::DynamicFlags::empty(),
784            ___deadline,
785        )?;
786        Ok(_response)
787    }
788
789    pub fn r#on_link_state_changed(
790        &self,
791        mut payload: &WlanFullmacImplOnLinkStateChangedRequest,
792        ___deadline: zx::MonotonicInstant,
793    ) -> Result<(), fidl::Error> {
794        let _response = self.client.send_query::<
795            WlanFullmacImplOnLinkStateChangedRequest,
796            fidl::encoding::EmptyPayload,
797            WlanFullmacImpl_Marker,
798        >(
799            payload,
800            0x4d896e5b68e488d7,
801            fidl::encoding::DynamicFlags::empty(),
802            ___deadline,
803        )?;
804        Ok(_response)
805    }
806
807    /// Sets the MAC address for the interface, which may be retrieved via the Query() method. To
808    /// reset to the default/factory MAC address, use the Query() method to retrieve the `factory_addr`,
809    /// and pass that value to this method.
810    pub fn r#set_mac_address(
811        &self,
812        mut mac_addr: &[u8; 6],
813        ___deadline: zx::MonotonicInstant,
814    ) -> Result<WlanFullmacImplSetMacAddressResult, fidl::Error> {
815        let _response = self.client.send_query::<
816            WlanFullmacImplSetMacAddressRequest,
817            fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
818            WlanFullmacImpl_Marker,
819        >(
820            (mac_addr,),
821            0x211a97f6f21ae5f0,
822            fidl::encoding::DynamicFlags::empty(),
823            ___deadline,
824        )?;
825        Ok(_response.map(|x| x))
826    }
827
828    /// Installs an APF program, replacing an existing program if present. This method does not
829    /// enable the program.
830    pub fn r#install_apf_packet_filter(
831        &self,
832        mut payload: &WlanFullmacImplInstallApfPacketFilterRequest,
833        ___deadline: zx::MonotonicInstant,
834    ) -> Result<WlanFullmacImplInstallApfPacketFilterResult, fidl::Error> {
835        let _response = self.client.send_query::<
836            WlanFullmacImplInstallApfPacketFilterRequest,
837            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
838            WlanFullmacImpl_Marker,
839        >(
840            payload,
841            0x14597eda84122115,
842            fidl::encoding::DynamicFlags::FLEXIBLE,
843            ___deadline,
844        )?
845        .into_result::<WlanFullmacImpl_Marker>("install_apf_packet_filter")?;
846        Ok(_response.map(|x| x))
847    }
848
849    /// Fetches a consistent snapshot of the entire APF program and working
850    /// memory buffer and returns it to the host. The returned buffer contains
851    /// both code and data. Its length must match the most recently returned
852    /// QueryPacketFilterSupport().max_filter_length.
853    ///
854    /// While the snapshot is being fetched, the APF interpreter must not execute
855    /// and all incoming packets must be passed to the host as if there was no
856    /// APF program installed.
857    pub fn r#read_apf_packet_filter_data(
858        &self,
859        ___deadline: zx::MonotonicInstant,
860    ) -> Result<WlanFullmacImplReadApfPacketFilterDataResult, fidl::Error> {
861        let _response =
862            self.client
863                .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::FlexibleResultType<
864                    WlanFullmacImplReadApfPacketFilterDataResponse,
865                    i32,
866                >, WlanFullmacImpl_Marker>(
867                    (),
868                    0x6ddcf8a179553a3c,
869                    fidl::encoding::DynamicFlags::FLEXIBLE,
870                    ___deadline,
871                )?
872                .into_result::<WlanFullmacImpl_Marker>("read_apf_packet_filter_data")?;
873        Ok(_response.map(|x| x))
874    }
875
876    pub fn r#set_apf_packet_filter_enabled(
877        &self,
878        mut payload: &WlanFullmacImplSetApfPacketFilterEnabledRequest,
879        ___deadline: zx::MonotonicInstant,
880    ) -> Result<WlanFullmacImplSetApfPacketFilterEnabledResult, fidl::Error> {
881        let _response = self.client.send_query::<
882            WlanFullmacImplSetApfPacketFilterEnabledRequest,
883            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
884            WlanFullmacImpl_Marker,
885        >(
886            payload,
887            0x808792cade97d59,
888            fidl::encoding::DynamicFlags::FLEXIBLE,
889            ___deadline,
890        )?
891        .into_result::<WlanFullmacImpl_Marker>("set_apf_packet_filter_enabled")?;
892        Ok(_response.map(|x| x))
893    }
894
895    pub fn r#get_apf_packet_filter_enabled(
896        &self,
897        ___deadline: zx::MonotonicInstant,
898    ) -> Result<WlanFullmacImplGetApfPacketFilterEnabledResult, fidl::Error> {
899        let _response = self
900            .client
901            .send_query::<fidl::encoding::EmptyPayload, fidl::encoding::FlexibleResultType<
902                WlanFullmacImplGetApfPacketFilterEnabledResponse,
903                i32,
904            >, WlanFullmacImpl_Marker>(
905                (),
906                0x284e1725471e3ae7,
907                fidl::encoding::DynamicFlags::FLEXIBLE,
908                ___deadline,
909            )?
910            .into_result::<WlanFullmacImpl_Marker>("get_apf_packet_filter_enabled")?;
911        Ok(_response.map(|x| x))
912    }
913
914    /// Configures a monitoring threshold for connection RSSI.
915    ///
916    /// When an RSSI is detected less than `min_rssi_dbm` or above `max_rssi_dbm`
917    /// it is reported by WlanFullmacImplIfc::OnRssiThresholdBreached.
918    ///
919    /// Calling StartRssiMonitor multiple times will replace the monitoring
920    /// threshold with the latest provided values.
921    ///
922    /// RSSI monitoring halts when StopRssiMonitor is called, or automatically
923    /// on connection loss.
924    pub fn r#start_rssi_monitor(
925        &self,
926        mut payload: &WlanFullmacImplStartRssiMonitorRequest,
927        ___deadline: zx::MonotonicInstant,
928    ) -> Result<WlanFullmacImplStartRssiMonitorResult, fidl::Error> {
929        let _response = self.client.send_query::<
930            WlanFullmacImplStartRssiMonitorRequest,
931            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
932            WlanFullmacImpl_Marker,
933        >(
934            payload,
935            0x5e6e8feead94acec,
936            fidl::encoding::DynamicFlags::FLEXIBLE,
937            ___deadline,
938        )?
939        .into_result::<WlanFullmacImpl_Marker>("start_rssi_monitor")?;
940        Ok(_response.map(|x| x))
941    }
942
943    pub fn r#stop_rssi_monitor(
944        &self,
945        ___deadline: zx::MonotonicInstant,
946    ) -> Result<WlanFullmacImplStopRssiMonitorResult, fidl::Error> {
947        let _response = self.client.send_query::<
948            fidl::encoding::EmptyPayload,
949            fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
950            WlanFullmacImpl_Marker,
951        >(
952            (),
953            0x45795dfdd5760880,
954            fidl::encoding::DynamicFlags::FLEXIBLE,
955            ___deadline,
956        )?
957        .into_result::<WlanFullmacImpl_Marker>("stop_rssi_monitor")?;
958        Ok(_response.map(|x| x))
959    }
960}
961
962#[cfg(target_os = "fuchsia")]
963impl From<WlanFullmacImpl_SynchronousProxy> for zx::NullableHandle {
964    fn from(value: WlanFullmacImpl_SynchronousProxy) -> Self {
965        value.into_channel().into()
966    }
967}
968
969#[cfg(target_os = "fuchsia")]
970impl From<fidl::Channel> for WlanFullmacImpl_SynchronousProxy {
971    fn from(value: fidl::Channel) -> Self {
972        Self::new(value)
973    }
974}
975
976#[cfg(target_os = "fuchsia")]
977impl fidl::endpoints::FromClient for WlanFullmacImpl_SynchronousProxy {
978    type Protocol = WlanFullmacImpl_Marker;
979
980    fn from_client(value: fidl::endpoints::ClientEnd<WlanFullmacImpl_Marker>) -> Self {
981        Self::new(value.into_channel())
982    }
983}
984
985#[derive(Debug, Clone)]
986pub struct WlanFullmacImpl_Proxy {
987    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
988}
989
990impl fidl::endpoints::Proxy for WlanFullmacImpl_Proxy {
991    type Protocol = WlanFullmacImpl_Marker;
992
993    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
994        Self::new(inner)
995    }
996
997    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
998        self.client.into_channel().map_err(|client| Self { client })
999    }
1000
1001    fn as_channel(&self) -> &::fidl::AsyncChannel {
1002        self.client.as_channel()
1003    }
1004}
1005
1006impl WlanFullmacImpl_Proxy {
1007    /// Create a new Proxy for fuchsia.wlan.fullmac/WlanFullmacImpl.
1008    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
1009        let protocol_name = <WlanFullmacImpl_Marker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
1010        Self { client: fidl::client::Client::new(channel, protocol_name) }
1011    }
1012
1013    /// Get a Stream of events from the remote end of the protocol.
1014    ///
1015    /// # Panics
1016    ///
1017    /// Panics if the event stream was already taken.
1018    pub fn take_event_stream(&self) -> WlanFullmacImpl_EventStream {
1019        WlanFullmacImpl_EventStream { event_receiver: self.client.take_event_receiver() }
1020    }
1021
1022    /// Initialize the FullMAC driver. This is the first request that the platform will make to the
1023    /// FullMAC driver.
1024    ///
1025    /// On initialization, MLME provides the client end to the WlanFullmacImplIfc protocol. The
1026    /// driver must return the SME server end channel, which is used internally by the platform.
1027    /// Typically, the SME server end channel is given to the FullMAC driver by
1028    /// fuchsia.wlan.phy/WlanPhy.CreateIface.
1029    ///
1030    /// If `Init` completes successfully, the platform will begin making other WlanFullmacImpl
1031    /// requests to the FullMAC driver, and the FullMAC driver is free to make WlanFullmacImplIfc
1032    /// requests to the platform. The platform may continue making WlanFullmacImpl requests until
1033    /// the WlanFullmacImpl server unbinds.
1034    ///
1035    /// Common errors include:
1036    ///   - `ZX_ERR_ALREADY_BOUND`: `Init` was already called on this FullMAC driver.
1037    pub fn r#init(
1038        &self,
1039        mut payload: WlanFullmacImplInitRequest,
1040    ) -> fidl::client::QueryResponseFut<
1041        WlanFullmacImplInitResult,
1042        fidl::encoding::DefaultFuchsiaResourceDialect,
1043    > {
1044        WlanFullmacImpl_ProxyInterface::r#init(self, payload)
1045    }
1046
1047    /// Returns high-level information describing the state of the FullMAC driver.
1048    /// This is safe to call even before the call to WlanFullmacImpl::Start.
1049    pub fn r#query(
1050        &self,
1051    ) -> fidl::client::QueryResponseFut<
1052        WlanFullmacImplQueryResult,
1053        fidl::encoding::DefaultFuchsiaResourceDialect,
1054    > {
1055        WlanFullmacImpl_ProxyInterface::r#query(self)
1056    }
1057
1058    pub fn r#query_security_support(
1059        &self,
1060    ) -> fidl::client::QueryResponseFut<
1061        WlanFullmacImplQuerySecuritySupportResult,
1062        fidl::encoding::DefaultFuchsiaResourceDialect,
1063    > {
1064        WlanFullmacImpl_ProxyInterface::r#query_security_support(self)
1065    }
1066
1067    pub fn r#query_spectrum_management_support(
1068        &self,
1069    ) -> fidl::client::QueryResponseFut<
1070        WlanFullmacImplQuerySpectrumManagementSupportResult,
1071        fidl::encoding::DefaultFuchsiaResourceDialect,
1072    > {
1073        WlanFullmacImpl_ProxyInterface::r#query_spectrum_management_support(self)
1074    }
1075
1076    pub fn r#query_telemetry_support(
1077        &self,
1078    ) -> fidl::client::QueryResponseFut<
1079        WlanFullmacImplQueryTelemetrySupportResult,
1080        fidl::encoding::DefaultFuchsiaResourceDialect,
1081    > {
1082        WlanFullmacImpl_ProxyInterface::r#query_telemetry_support(self)
1083    }
1084
1085    pub fn r#query_apf_packet_filter_support(
1086        &self,
1087    ) -> fidl::client::QueryResponseFut<
1088        WlanFullmacImplQueryApfPacketFilterSupportResult,
1089        fidl::encoding::DefaultFuchsiaResourceDialect,
1090    > {
1091        WlanFullmacImpl_ProxyInterface::r#query_apf_packet_filter_support(self)
1092    }
1093
1094    pub fn r#query_rssi_monitor_support(
1095        &self,
1096    ) -> fidl::client::QueryResponseFut<
1097        WlanFullmacImplQueryRssiMonitorSupportResult,
1098        fidl::encoding::DefaultFuchsiaResourceDialect,
1099    > {
1100        WlanFullmacImpl_ProxyInterface::r#query_rssi_monitor_support(self)
1101    }
1102
1103    pub fn r#start_scan(
1104        &self,
1105        mut payload: &WlanFullmacImplStartScanRequest,
1106    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1107        WlanFullmacImpl_ProxyInterface::r#start_scan(self, payload)
1108    }
1109
1110    /// Starts scheduled scanning.
1111    pub fn r#start_scheduled_scan(
1112        &self,
1113        mut payload: &WlanFullmacImplStartScheduledScanRequest,
1114    ) -> fidl::client::QueryResponseFut<
1115        WlanFullmacImplStartScheduledScanResult,
1116        fidl::encoding::DefaultFuchsiaResourceDialect,
1117    > {
1118        WlanFullmacImpl_ProxyInterface::r#start_scheduled_scan(self, payload)
1119    }
1120
1121    /// Stops scheduled scanning.
1122    ///
1123    /// The successful return value indicates that the scan has been stopped.
1124    /// The driver will NOT send an `OnScheduledScanStoppedByFirmware` event in response to this call.
1125    /// `OnScheduledScanStoppedByFirmware` is reserved for firmware-initiated stops or errors.
1126    pub fn r#stop_scheduled_scan(
1127        &self,
1128        mut payload: &WlanFullmacImplStopScheduledScanRequest,
1129    ) -> fidl::client::QueryResponseFut<
1130        WlanFullmacImplStopScheduledScanResult,
1131        fidl::encoding::DefaultFuchsiaResourceDialect,
1132    > {
1133        WlanFullmacImpl_ProxyInterface::r#stop_scheduled_scan(self, payload)
1134    }
1135
1136    /// Returns the transaction IDs of any currently active scheduled scans.
1137    pub fn r#get_scheduled_scan_enabled(
1138        &self,
1139    ) -> fidl::client::QueryResponseFut<
1140        WlanFullmacImplGetScheduledScanEnabledResult,
1141        fidl::encoding::DefaultFuchsiaResourceDialect,
1142    > {
1143        WlanFullmacImpl_ProxyInterface::r#get_scheduled_scan_enabled(self)
1144    }
1145
1146    pub fn r#connect(
1147        &self,
1148        mut payload: &WlanFullmacImplConnectRequest,
1149    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1150        WlanFullmacImpl_ProxyInterface::r#connect(self, payload)
1151    }
1152
1153    pub fn r#reconnect(
1154        &self,
1155        mut payload: &WlanFullmacImplReconnectRequest,
1156    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1157        WlanFullmacImpl_ProxyInterface::r#reconnect(self, payload)
1158    }
1159
1160    /// Initiate a roam attempt, which moves association to a different BSS within the ESS.
1161    pub fn r#roam(
1162        &self,
1163        mut payload: &WlanFullmacImplRoamRequest,
1164    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1165        WlanFullmacImpl_ProxyInterface::r#roam(self, payload)
1166    }
1167
1168    pub fn r#auth_resp(
1169        &self,
1170        mut payload: &WlanFullmacImplAuthRespRequest,
1171    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1172        WlanFullmacImpl_ProxyInterface::r#auth_resp(self, payload)
1173    }
1174
1175    pub fn r#deauth(
1176        &self,
1177        mut payload: &WlanFullmacImplDeauthRequest,
1178    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1179        WlanFullmacImpl_ProxyInterface::r#deauth(self, payload)
1180    }
1181
1182    pub fn r#assoc_resp(
1183        &self,
1184        mut payload: &WlanFullmacImplAssocRespRequest,
1185    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1186        WlanFullmacImpl_ProxyInterface::r#assoc_resp(self, payload)
1187    }
1188
1189    pub fn r#disassoc(
1190        &self,
1191        mut payload: &WlanFullmacImplDisassocRequest,
1192    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1193        WlanFullmacImpl_ProxyInterface::r#disassoc(self, payload)
1194    }
1195
1196    pub fn r#start_bss(
1197        &self,
1198        mut payload: &WlanFullmacImplStartBssRequest,
1199    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1200        WlanFullmacImpl_ProxyInterface::r#start_bss(self, payload)
1201    }
1202
1203    pub fn r#stop_bss(
1204        &self,
1205        mut payload: &WlanFullmacImplStopBssRequest,
1206    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1207        WlanFullmacImpl_ProxyInterface::r#stop_bss(self, payload)
1208    }
1209
1210    /// Sets security keys for a connection. This is typically called after a successful key
1211    /// exchange.
1212    ///
1213    /// Note that the platform assumes that the driver will automatically delete keys on a
1214    /// disconnect or key rotation.
1215    pub fn r#set_keys(
1216        &self,
1217        mut payload: &WlanFullmacImplSetKeysRequest,
1218    ) -> fidl::client::QueryResponseFut<
1219        WlanFullmacSetKeysResp,
1220        fidl::encoding::DefaultFuchsiaResourceDialect,
1221    > {
1222        WlanFullmacImpl_ProxyInterface::r#set_keys(self, payload)
1223    }
1224
1225    pub fn r#eapol_tx(
1226        &self,
1227        mut payload: &WlanFullmacImplEapolTxRequest,
1228    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1229        WlanFullmacImpl_ProxyInterface::r#eapol_tx(self, payload)
1230    }
1231
1232    pub fn r#get_iface_stats(
1233        &self,
1234    ) -> fidl::client::QueryResponseFut<
1235        WlanFullmacImplGetIfaceStatsResult,
1236        fidl::encoding::DefaultFuchsiaResourceDialect,
1237    > {
1238        WlanFullmacImpl_ProxyInterface::r#get_iface_stats(self)
1239    }
1240
1241    pub fn r#get_iface_histogram_stats(
1242        &self,
1243    ) -> fidl::client::QueryResponseFut<
1244        WlanFullmacImplGetIfaceHistogramStatsResult,
1245        fidl::encoding::DefaultFuchsiaResourceDialect,
1246    > {
1247        WlanFullmacImpl_ProxyInterface::r#get_iface_histogram_stats(self)
1248    }
1249
1250    pub fn r#get_signal_report(
1251        &self,
1252    ) -> fidl::client::QueryResponseFut<
1253        WlanFullmacImplGetSignalReportResult,
1254        fidl::encoding::DefaultFuchsiaResourceDialect,
1255    > {
1256        WlanFullmacImpl_ProxyInterface::r#get_signal_report(self)
1257    }
1258
1259    /// Informs the driver of the result of an SAE handshake.
1260    pub fn r#sae_handshake_resp(
1261        &self,
1262        mut payload: &WlanFullmacImplSaeHandshakeRespRequest,
1263    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1264        WlanFullmacImpl_ProxyInterface::r#sae_handshake_resp(self, payload)
1265    }
1266
1267    /// Transmit an SAE authentication frame.
1268    pub fn r#sae_frame_tx(
1269        &self,
1270        mut frame: &SaeFrame,
1271    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1272        WlanFullmacImpl_ProxyInterface::r#sae_frame_tx(self, frame)
1273    }
1274
1275    pub fn r#wmm_status_req(
1276        &self,
1277    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1278        WlanFullmacImpl_ProxyInterface::r#wmm_status_req(self)
1279    }
1280
1281    pub fn r#on_link_state_changed(
1282        &self,
1283        mut payload: &WlanFullmacImplOnLinkStateChangedRequest,
1284    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
1285        WlanFullmacImpl_ProxyInterface::r#on_link_state_changed(self, payload)
1286    }
1287
1288    /// Sets the MAC address for the interface, which may be retrieved via the Query() method. To
1289    /// reset to the default/factory MAC address, use the Query() method to retrieve the `factory_addr`,
1290    /// and pass that value to this method.
1291    pub fn r#set_mac_address(
1292        &self,
1293        mut mac_addr: &[u8; 6],
1294    ) -> fidl::client::QueryResponseFut<
1295        WlanFullmacImplSetMacAddressResult,
1296        fidl::encoding::DefaultFuchsiaResourceDialect,
1297    > {
1298        WlanFullmacImpl_ProxyInterface::r#set_mac_address(self, mac_addr)
1299    }
1300
1301    /// Installs an APF program, replacing an existing program if present. This method does not
1302    /// enable the program.
1303    pub fn r#install_apf_packet_filter(
1304        &self,
1305        mut payload: &WlanFullmacImplInstallApfPacketFilterRequest,
1306    ) -> fidl::client::QueryResponseFut<
1307        WlanFullmacImplInstallApfPacketFilterResult,
1308        fidl::encoding::DefaultFuchsiaResourceDialect,
1309    > {
1310        WlanFullmacImpl_ProxyInterface::r#install_apf_packet_filter(self, payload)
1311    }
1312
1313    /// Fetches a consistent snapshot of the entire APF program and working
1314    /// memory buffer and returns it to the host. The returned buffer contains
1315    /// both code and data. Its length must match the most recently returned
1316    /// QueryPacketFilterSupport().max_filter_length.
1317    ///
1318    /// While the snapshot is being fetched, the APF interpreter must not execute
1319    /// and all incoming packets must be passed to the host as if there was no
1320    /// APF program installed.
1321    pub fn r#read_apf_packet_filter_data(
1322        &self,
1323    ) -> fidl::client::QueryResponseFut<
1324        WlanFullmacImplReadApfPacketFilterDataResult,
1325        fidl::encoding::DefaultFuchsiaResourceDialect,
1326    > {
1327        WlanFullmacImpl_ProxyInterface::r#read_apf_packet_filter_data(self)
1328    }
1329
1330    pub fn r#set_apf_packet_filter_enabled(
1331        &self,
1332        mut payload: &WlanFullmacImplSetApfPacketFilterEnabledRequest,
1333    ) -> fidl::client::QueryResponseFut<
1334        WlanFullmacImplSetApfPacketFilterEnabledResult,
1335        fidl::encoding::DefaultFuchsiaResourceDialect,
1336    > {
1337        WlanFullmacImpl_ProxyInterface::r#set_apf_packet_filter_enabled(self, payload)
1338    }
1339
1340    pub fn r#get_apf_packet_filter_enabled(
1341        &self,
1342    ) -> fidl::client::QueryResponseFut<
1343        WlanFullmacImplGetApfPacketFilterEnabledResult,
1344        fidl::encoding::DefaultFuchsiaResourceDialect,
1345    > {
1346        WlanFullmacImpl_ProxyInterface::r#get_apf_packet_filter_enabled(self)
1347    }
1348
1349    /// Configures a monitoring threshold for connection RSSI.
1350    ///
1351    /// When an RSSI is detected less than `min_rssi_dbm` or above `max_rssi_dbm`
1352    /// it is reported by WlanFullmacImplIfc::OnRssiThresholdBreached.
1353    ///
1354    /// Calling StartRssiMonitor multiple times will replace the monitoring
1355    /// threshold with the latest provided values.
1356    ///
1357    /// RSSI monitoring halts when StopRssiMonitor is called, or automatically
1358    /// on connection loss.
1359    pub fn r#start_rssi_monitor(
1360        &self,
1361        mut payload: &WlanFullmacImplStartRssiMonitorRequest,
1362    ) -> fidl::client::QueryResponseFut<
1363        WlanFullmacImplStartRssiMonitorResult,
1364        fidl::encoding::DefaultFuchsiaResourceDialect,
1365    > {
1366        WlanFullmacImpl_ProxyInterface::r#start_rssi_monitor(self, payload)
1367    }
1368
1369    pub fn r#stop_rssi_monitor(
1370        &self,
1371    ) -> fidl::client::QueryResponseFut<
1372        WlanFullmacImplStopRssiMonitorResult,
1373        fidl::encoding::DefaultFuchsiaResourceDialect,
1374    > {
1375        WlanFullmacImpl_ProxyInterface::r#stop_rssi_monitor(self)
1376    }
1377}
1378
1379impl WlanFullmacImpl_ProxyInterface for WlanFullmacImpl_Proxy {
1380    type InitResponseFut = fidl::client::QueryResponseFut<
1381        WlanFullmacImplInitResult,
1382        fidl::encoding::DefaultFuchsiaResourceDialect,
1383    >;
1384    fn r#init(&self, mut payload: WlanFullmacImplInitRequest) -> Self::InitResponseFut {
1385        fn _decode(
1386            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1387        ) -> Result<WlanFullmacImplInitResult, fidl::Error> {
1388            let _response = fidl::client::decode_transaction_body::<
1389                fidl::encoding::ResultType<WlanFullmacImplInitResponse, i32>,
1390                fidl::encoding::DefaultFuchsiaResourceDialect,
1391                0x593dfb6cb3f0f1aa,
1392            >(_buf?)?;
1393            Ok(_response.map(|x| x))
1394        }
1395        self.client.send_query_and_decode::<WlanFullmacImplInitRequest, WlanFullmacImplInitResult>(
1396            &mut payload,
1397            0x593dfb6cb3f0f1aa,
1398            fidl::encoding::DynamicFlags::empty(),
1399            _decode,
1400        )
1401    }
1402
1403    type QueryResponseFut = fidl::client::QueryResponseFut<
1404        WlanFullmacImplQueryResult,
1405        fidl::encoding::DefaultFuchsiaResourceDialect,
1406    >;
1407    fn r#query(&self) -> Self::QueryResponseFut {
1408        fn _decode(
1409            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1410        ) -> Result<WlanFullmacImplQueryResult, fidl::Error> {
1411            let _response = fidl::client::decode_transaction_body::<
1412                fidl::encoding::ResultType<WlanFullmacImplQueryResponse, i32>,
1413                fidl::encoding::DefaultFuchsiaResourceDialect,
1414                0x28ac65f9da3941d4,
1415            >(_buf?)?;
1416            Ok(_response.map(|x| x))
1417        }
1418        self.client
1419            .send_query_and_decode::<fidl::encoding::EmptyPayload, WlanFullmacImplQueryResult>(
1420                (),
1421                0x28ac65f9da3941d4,
1422                fidl::encoding::DynamicFlags::empty(),
1423                _decode,
1424            )
1425    }
1426
1427    type QuerySecuritySupportResponseFut = fidl::client::QueryResponseFut<
1428        WlanFullmacImplQuerySecuritySupportResult,
1429        fidl::encoding::DefaultFuchsiaResourceDialect,
1430    >;
1431    fn r#query_security_support(&self) -> Self::QuerySecuritySupportResponseFut {
1432        fn _decode(
1433            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1434        ) -> Result<WlanFullmacImplQuerySecuritySupportResult, fidl::Error> {
1435            let _response = fidl::client::decode_transaction_body::<
1436                fidl::encoding::ResultType<WlanFullmacImplQuerySecuritySupportResponse, i32>,
1437                fidl::encoding::DefaultFuchsiaResourceDialect,
1438                0x11cf3fa6eeb93f84,
1439            >(_buf?)?;
1440            Ok(_response.map(|x| x))
1441        }
1442        self.client.send_query_and_decode::<
1443            fidl::encoding::EmptyPayload,
1444            WlanFullmacImplQuerySecuritySupportResult,
1445        >(
1446            (),
1447            0x11cf3fa6eeb93f84,
1448            fidl::encoding::DynamicFlags::empty(),
1449            _decode,
1450        )
1451    }
1452
1453    type QuerySpectrumManagementSupportResponseFut = fidl::client::QueryResponseFut<
1454        WlanFullmacImplQuerySpectrumManagementSupportResult,
1455        fidl::encoding::DefaultFuchsiaResourceDialect,
1456    >;
1457    fn r#query_spectrum_management_support(
1458        &self,
1459    ) -> Self::QuerySpectrumManagementSupportResponseFut {
1460        fn _decode(
1461            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1462        ) -> Result<WlanFullmacImplQuerySpectrumManagementSupportResult, fidl::Error> {
1463            let _response = fidl::client::decode_transaction_body::<
1464                fidl::encoding::ResultType<
1465                    WlanFullmacImplQuerySpectrumManagementSupportResponse,
1466                    i32,
1467                >,
1468                fidl::encoding::DefaultFuchsiaResourceDialect,
1469                0x22ae7551d855b83a,
1470            >(_buf?)?;
1471            Ok(_response.map(|x| x))
1472        }
1473        self.client.send_query_and_decode::<
1474            fidl::encoding::EmptyPayload,
1475            WlanFullmacImplQuerySpectrumManagementSupportResult,
1476        >(
1477            (),
1478            0x22ae7551d855b83a,
1479            fidl::encoding::DynamicFlags::empty(),
1480            _decode,
1481        )
1482    }
1483
1484    type QueryTelemetrySupportResponseFut = fidl::client::QueryResponseFut<
1485        WlanFullmacImplQueryTelemetrySupportResult,
1486        fidl::encoding::DefaultFuchsiaResourceDialect,
1487    >;
1488    fn r#query_telemetry_support(&self) -> Self::QueryTelemetrySupportResponseFut {
1489        fn _decode(
1490            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1491        ) -> Result<WlanFullmacImplQueryTelemetrySupportResult, fidl::Error> {
1492            let _response = fidl::client::decode_transaction_body::<
1493                fidl::encoding::ResultType<WlanFullmacImplQueryTelemetrySupportResponse, i32>,
1494                fidl::encoding::DefaultFuchsiaResourceDialect,
1495                0x4561479ca560827f,
1496            >(_buf?)?;
1497            Ok(_response.map(|x| x))
1498        }
1499        self.client.send_query_and_decode::<
1500            fidl::encoding::EmptyPayload,
1501            WlanFullmacImplQueryTelemetrySupportResult,
1502        >(
1503            (),
1504            0x4561479ca560827f,
1505            fidl::encoding::DynamicFlags::empty(),
1506            _decode,
1507        )
1508    }
1509
1510    type QueryApfPacketFilterSupportResponseFut = fidl::client::QueryResponseFut<
1511        WlanFullmacImplQueryApfPacketFilterSupportResult,
1512        fidl::encoding::DefaultFuchsiaResourceDialect,
1513    >;
1514    fn r#query_apf_packet_filter_support(&self) -> Self::QueryApfPacketFilterSupportResponseFut {
1515        fn _decode(
1516            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1517        ) -> Result<WlanFullmacImplQueryApfPacketFilterSupportResult, fidl::Error> {
1518            let _response = fidl::client::decode_transaction_body::<
1519                fidl::encoding::FlexibleResultType<
1520                    WlanFullmacImplQueryApfPacketFilterSupportResponse,
1521                    i32,
1522                >,
1523                fidl::encoding::DefaultFuchsiaResourceDialect,
1524                0x6df8cdf0acd4dfad,
1525            >(_buf?)?
1526            .into_result::<WlanFullmacImpl_Marker>("query_apf_packet_filter_support")?;
1527            Ok(_response.map(|x| x))
1528        }
1529        self.client.send_query_and_decode::<
1530            fidl::encoding::EmptyPayload,
1531            WlanFullmacImplQueryApfPacketFilterSupportResult,
1532        >(
1533            (),
1534            0x6df8cdf0acd4dfad,
1535            fidl::encoding::DynamicFlags::FLEXIBLE,
1536            _decode,
1537        )
1538    }
1539
1540    type QueryRssiMonitorSupportResponseFut = fidl::client::QueryResponseFut<
1541        WlanFullmacImplQueryRssiMonitorSupportResult,
1542        fidl::encoding::DefaultFuchsiaResourceDialect,
1543    >;
1544    fn r#query_rssi_monitor_support(&self) -> Self::QueryRssiMonitorSupportResponseFut {
1545        fn _decode(
1546            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1547        ) -> Result<WlanFullmacImplQueryRssiMonitorSupportResult, fidl::Error> {
1548            let _response = fidl::client::decode_transaction_body::<
1549                fidl::encoding::FlexibleResultType<
1550                    WlanFullmacImplQueryRssiMonitorSupportResponse,
1551                    i32,
1552                >,
1553                fidl::encoding::DefaultFuchsiaResourceDialect,
1554                0x21d21e42d6aa61b5,
1555            >(_buf?)?
1556            .into_result::<WlanFullmacImpl_Marker>("query_rssi_monitor_support")?;
1557            Ok(_response.map(|x| x))
1558        }
1559        self.client.send_query_and_decode::<
1560            fidl::encoding::EmptyPayload,
1561            WlanFullmacImplQueryRssiMonitorSupportResult,
1562        >(
1563            (),
1564            0x21d21e42d6aa61b5,
1565            fidl::encoding::DynamicFlags::FLEXIBLE,
1566            _decode,
1567        )
1568    }
1569
1570    type StartScanResponseFut =
1571        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1572    fn r#start_scan(
1573        &self,
1574        mut payload: &WlanFullmacImplStartScanRequest,
1575    ) -> Self::StartScanResponseFut {
1576        fn _decode(
1577            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1578        ) -> Result<(), fidl::Error> {
1579            let _response = fidl::client::decode_transaction_body::<
1580                fidl::encoding::EmptyPayload,
1581                fidl::encoding::DefaultFuchsiaResourceDialect,
1582                0x26c17bf595aa161c,
1583            >(_buf?)?;
1584            Ok(_response)
1585        }
1586        self.client.send_query_and_decode::<WlanFullmacImplStartScanRequest, ()>(
1587            payload,
1588            0x26c17bf595aa161c,
1589            fidl::encoding::DynamicFlags::empty(),
1590            _decode,
1591        )
1592    }
1593
1594    type StartScheduledScanResponseFut = fidl::client::QueryResponseFut<
1595        WlanFullmacImplStartScheduledScanResult,
1596        fidl::encoding::DefaultFuchsiaResourceDialect,
1597    >;
1598    fn r#start_scheduled_scan(
1599        &self,
1600        mut payload: &WlanFullmacImplStartScheduledScanRequest,
1601    ) -> Self::StartScheduledScanResponseFut {
1602        fn _decode(
1603            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1604        ) -> Result<WlanFullmacImplStartScheduledScanResult, fidl::Error> {
1605            let _response = fidl::client::decode_transaction_body::<
1606                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
1607                fidl::encoding::DefaultFuchsiaResourceDialect,
1608                0x67bb4356265682d2,
1609            >(_buf?)?
1610            .into_result::<WlanFullmacImpl_Marker>("start_scheduled_scan")?;
1611            Ok(_response.map(|x| x))
1612        }
1613        self.client.send_query_and_decode::<
1614            WlanFullmacImplStartScheduledScanRequest,
1615            WlanFullmacImplStartScheduledScanResult,
1616        >(
1617            payload,
1618            0x67bb4356265682d2,
1619            fidl::encoding::DynamicFlags::FLEXIBLE,
1620            _decode,
1621        )
1622    }
1623
1624    type StopScheduledScanResponseFut = fidl::client::QueryResponseFut<
1625        WlanFullmacImplStopScheduledScanResult,
1626        fidl::encoding::DefaultFuchsiaResourceDialect,
1627    >;
1628    fn r#stop_scheduled_scan(
1629        &self,
1630        mut payload: &WlanFullmacImplStopScheduledScanRequest,
1631    ) -> Self::StopScheduledScanResponseFut {
1632        fn _decode(
1633            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1634        ) -> Result<WlanFullmacImplStopScheduledScanResult, fidl::Error> {
1635            let _response = fidl::client::decode_transaction_body::<
1636                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
1637                fidl::encoding::DefaultFuchsiaResourceDialect,
1638                0x71bf2a03f2cdc10f,
1639            >(_buf?)?
1640            .into_result::<WlanFullmacImpl_Marker>("stop_scheduled_scan")?;
1641            Ok(_response.map(|x| x))
1642        }
1643        self.client.send_query_and_decode::<
1644            WlanFullmacImplStopScheduledScanRequest,
1645            WlanFullmacImplStopScheduledScanResult,
1646        >(
1647            payload,
1648            0x71bf2a03f2cdc10f,
1649            fidl::encoding::DynamicFlags::FLEXIBLE,
1650            _decode,
1651        )
1652    }
1653
1654    type GetScheduledScanEnabledResponseFut = fidl::client::QueryResponseFut<
1655        WlanFullmacImplGetScheduledScanEnabledResult,
1656        fidl::encoding::DefaultFuchsiaResourceDialect,
1657    >;
1658    fn r#get_scheduled_scan_enabled(&self) -> Self::GetScheduledScanEnabledResponseFut {
1659        fn _decode(
1660            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1661        ) -> Result<WlanFullmacImplGetScheduledScanEnabledResult, fidl::Error> {
1662            let _response = fidl::client::decode_transaction_body::<
1663                fidl::encoding::FlexibleResultType<
1664                    WlanFullmacImplGetScheduledScanEnabledResponse,
1665                    i32,
1666                >,
1667                fidl::encoding::DefaultFuchsiaResourceDialect,
1668                0x96be6f11648f198,
1669            >(_buf?)?
1670            .into_result::<WlanFullmacImpl_Marker>("get_scheduled_scan_enabled")?;
1671            Ok(_response.map(|x| x))
1672        }
1673        self.client.send_query_and_decode::<
1674            fidl::encoding::EmptyPayload,
1675            WlanFullmacImplGetScheduledScanEnabledResult,
1676        >(
1677            (),
1678            0x96be6f11648f198,
1679            fidl::encoding::DynamicFlags::FLEXIBLE,
1680            _decode,
1681        )
1682    }
1683
1684    type ConnectResponseFut =
1685        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1686    fn r#connect(&self, mut payload: &WlanFullmacImplConnectRequest) -> Self::ConnectResponseFut {
1687        fn _decode(
1688            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1689        ) -> Result<(), fidl::Error> {
1690            let _response = fidl::client::decode_transaction_body::<
1691                fidl::encoding::EmptyPayload,
1692                fidl::encoding::DefaultFuchsiaResourceDialect,
1693                0x19eb0322efb07a76,
1694            >(_buf?)?;
1695            Ok(_response)
1696        }
1697        self.client.send_query_and_decode::<WlanFullmacImplConnectRequest, ()>(
1698            payload,
1699            0x19eb0322efb07a76,
1700            fidl::encoding::DynamicFlags::empty(),
1701            _decode,
1702        )
1703    }
1704
1705    type ReconnectResponseFut =
1706        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1707    fn r#reconnect(
1708        &self,
1709        mut payload: &WlanFullmacImplReconnectRequest,
1710    ) -> Self::ReconnectResponseFut {
1711        fn _decode(
1712            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1713        ) -> Result<(), fidl::Error> {
1714            let _response = fidl::client::decode_transaction_body::<
1715                fidl::encoding::EmptyPayload,
1716                fidl::encoding::DefaultFuchsiaResourceDialect,
1717                0x474084c4ef19ee71,
1718            >(_buf?)?;
1719            Ok(_response)
1720        }
1721        self.client.send_query_and_decode::<WlanFullmacImplReconnectRequest, ()>(
1722            payload,
1723            0x474084c4ef19ee71,
1724            fidl::encoding::DynamicFlags::empty(),
1725            _decode,
1726        )
1727    }
1728
1729    type RoamResponseFut =
1730        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1731    fn r#roam(&self, mut payload: &WlanFullmacImplRoamRequest) -> Self::RoamResponseFut {
1732        fn _decode(
1733            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1734        ) -> Result<(), fidl::Error> {
1735            let _response = fidl::client::decode_transaction_body::<
1736                fidl::encoding::EmptyPayload,
1737                fidl::encoding::DefaultFuchsiaResourceDialect,
1738                0x1e35dcc98b124b64,
1739            >(_buf?)?;
1740            Ok(_response)
1741        }
1742        self.client.send_query_and_decode::<WlanFullmacImplRoamRequest, ()>(
1743            payload,
1744            0x1e35dcc98b124b64,
1745            fidl::encoding::DynamicFlags::empty(),
1746            _decode,
1747        )
1748    }
1749
1750    type AuthRespResponseFut =
1751        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1752    fn r#auth_resp(
1753        &self,
1754        mut payload: &WlanFullmacImplAuthRespRequest,
1755    ) -> Self::AuthRespResponseFut {
1756        fn _decode(
1757            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1758        ) -> Result<(), fidl::Error> {
1759            let _response = fidl::client::decode_transaction_body::<
1760                fidl::encoding::EmptyPayload,
1761                fidl::encoding::DefaultFuchsiaResourceDialect,
1762                0x5f7ea24b44a4aaeb,
1763            >(_buf?)?;
1764            Ok(_response)
1765        }
1766        self.client.send_query_and_decode::<WlanFullmacImplAuthRespRequest, ()>(
1767            payload,
1768            0x5f7ea24b44a4aaeb,
1769            fidl::encoding::DynamicFlags::empty(),
1770            _decode,
1771        )
1772    }
1773
1774    type DeauthResponseFut =
1775        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1776    fn r#deauth(&self, mut payload: &WlanFullmacImplDeauthRequest) -> Self::DeauthResponseFut {
1777        fn _decode(
1778            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1779        ) -> Result<(), fidl::Error> {
1780            let _response = fidl::client::decode_transaction_body::<
1781                fidl::encoding::EmptyPayload,
1782                fidl::encoding::DefaultFuchsiaResourceDialect,
1783                0x112786eccbf12f37,
1784            >(_buf?)?;
1785            Ok(_response)
1786        }
1787        self.client.send_query_and_decode::<WlanFullmacImplDeauthRequest, ()>(
1788            payload,
1789            0x112786eccbf12f37,
1790            fidl::encoding::DynamicFlags::empty(),
1791            _decode,
1792        )
1793    }
1794
1795    type AssocRespResponseFut =
1796        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1797    fn r#assoc_resp(
1798        &self,
1799        mut payload: &WlanFullmacImplAssocRespRequest,
1800    ) -> Self::AssocRespResponseFut {
1801        fn _decode(
1802            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1803        ) -> Result<(), fidl::Error> {
1804            let _response = fidl::client::decode_transaction_body::<
1805                fidl::encoding::EmptyPayload,
1806                fidl::encoding::DefaultFuchsiaResourceDialect,
1807                0x5022ce6b8eefec2f,
1808            >(_buf?)?;
1809            Ok(_response)
1810        }
1811        self.client.send_query_and_decode::<WlanFullmacImplAssocRespRequest, ()>(
1812            payload,
1813            0x5022ce6b8eefec2f,
1814            fidl::encoding::DynamicFlags::empty(),
1815            _decode,
1816        )
1817    }
1818
1819    type DisassocResponseFut =
1820        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1821    fn r#disassoc(
1822        &self,
1823        mut payload: &WlanFullmacImplDisassocRequest,
1824    ) -> Self::DisassocResponseFut {
1825        fn _decode(
1826            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1827        ) -> Result<(), fidl::Error> {
1828            let _response = fidl::client::decode_transaction_body::<
1829                fidl::encoding::EmptyPayload,
1830                fidl::encoding::DefaultFuchsiaResourceDialect,
1831                0x9c0fc4e8de53e01,
1832            >(_buf?)?;
1833            Ok(_response)
1834        }
1835        self.client.send_query_and_decode::<WlanFullmacImplDisassocRequest, ()>(
1836            payload,
1837            0x9c0fc4e8de53e01,
1838            fidl::encoding::DynamicFlags::empty(),
1839            _decode,
1840        )
1841    }
1842
1843    type StartBssResponseFut =
1844        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1845    fn r#start_bss(
1846        &self,
1847        mut payload: &WlanFullmacImplStartBssRequest,
1848    ) -> Self::StartBssResponseFut {
1849        fn _decode(
1850            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1851        ) -> Result<(), fidl::Error> {
1852            let _response = fidl::client::decode_transaction_body::<
1853                fidl::encoding::EmptyPayload,
1854                fidl::encoding::DefaultFuchsiaResourceDialect,
1855                0x6922644d6b1d341d,
1856            >(_buf?)?;
1857            Ok(_response)
1858        }
1859        self.client.send_query_and_decode::<WlanFullmacImplStartBssRequest, ()>(
1860            payload,
1861            0x6922644d6b1d341d,
1862            fidl::encoding::DynamicFlags::empty(),
1863            _decode,
1864        )
1865    }
1866
1867    type StopBssResponseFut =
1868        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1869    fn r#stop_bss(&self, mut payload: &WlanFullmacImplStopBssRequest) -> Self::StopBssResponseFut {
1870        fn _decode(
1871            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1872        ) -> Result<(), fidl::Error> {
1873            let _response = fidl::client::decode_transaction_body::<
1874                fidl::encoding::EmptyPayload,
1875                fidl::encoding::DefaultFuchsiaResourceDialect,
1876                0x5aeb9b72e7575268,
1877            >(_buf?)?;
1878            Ok(_response)
1879        }
1880        self.client.send_query_and_decode::<WlanFullmacImplStopBssRequest, ()>(
1881            payload,
1882            0x5aeb9b72e7575268,
1883            fidl::encoding::DynamicFlags::empty(),
1884            _decode,
1885        )
1886    }
1887
1888    type SetKeysResponseFut = fidl::client::QueryResponseFut<
1889        WlanFullmacSetKeysResp,
1890        fidl::encoding::DefaultFuchsiaResourceDialect,
1891    >;
1892    fn r#set_keys(&self, mut payload: &WlanFullmacImplSetKeysRequest) -> Self::SetKeysResponseFut {
1893        fn _decode(
1894            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1895        ) -> Result<WlanFullmacSetKeysResp, fidl::Error> {
1896            let _response = fidl::client::decode_transaction_body::<
1897                WlanFullmacImplSetKeysResponse,
1898                fidl::encoding::DefaultFuchsiaResourceDialect,
1899                0x20f46b1e039f0985,
1900            >(_buf?)?;
1901            Ok(_response.resp)
1902        }
1903        self.client.send_query_and_decode::<WlanFullmacImplSetKeysRequest, WlanFullmacSetKeysResp>(
1904            payload,
1905            0x20f46b1e039f0985,
1906            fidl::encoding::DynamicFlags::empty(),
1907            _decode,
1908        )
1909    }
1910
1911    type EapolTxResponseFut =
1912        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
1913    fn r#eapol_tx(&self, mut payload: &WlanFullmacImplEapolTxRequest) -> Self::EapolTxResponseFut {
1914        fn _decode(
1915            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1916        ) -> Result<(), fidl::Error> {
1917            let _response = fidl::client::decode_transaction_body::<
1918                fidl::encoding::EmptyPayload,
1919                fidl::encoding::DefaultFuchsiaResourceDialect,
1920                0x529a2d90fd4c8177,
1921            >(_buf?)?;
1922            Ok(_response)
1923        }
1924        self.client.send_query_and_decode::<WlanFullmacImplEapolTxRequest, ()>(
1925            payload,
1926            0x529a2d90fd4c8177,
1927            fidl::encoding::DynamicFlags::empty(),
1928            _decode,
1929        )
1930    }
1931
1932    type GetIfaceStatsResponseFut = fidl::client::QueryResponseFut<
1933        WlanFullmacImplGetIfaceStatsResult,
1934        fidl::encoding::DefaultFuchsiaResourceDialect,
1935    >;
1936    fn r#get_iface_stats(&self) -> Self::GetIfaceStatsResponseFut {
1937        fn _decode(
1938            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1939        ) -> Result<WlanFullmacImplGetIfaceStatsResult, fidl::Error> {
1940            let _response = fidl::client::decode_transaction_body::<
1941                fidl::encoding::ResultType<WlanFullmacImplGetIfaceStatsResponse, i32>,
1942                fidl::encoding::DefaultFuchsiaResourceDialect,
1943                0x505563776ef0392f,
1944            >(_buf?)?;
1945            Ok(_response.map(|x| x.stats))
1946        }
1947        self.client.send_query_and_decode::<
1948            fidl::encoding::EmptyPayload,
1949            WlanFullmacImplGetIfaceStatsResult,
1950        >(
1951            (),
1952            0x505563776ef0392f,
1953            fidl::encoding::DynamicFlags::empty(),
1954            _decode,
1955        )
1956    }
1957
1958    type GetIfaceHistogramStatsResponseFut = fidl::client::QueryResponseFut<
1959        WlanFullmacImplGetIfaceHistogramStatsResult,
1960        fidl::encoding::DefaultFuchsiaResourceDialect,
1961    >;
1962    fn r#get_iface_histogram_stats(&self) -> Self::GetIfaceHistogramStatsResponseFut {
1963        fn _decode(
1964            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1965        ) -> Result<WlanFullmacImplGetIfaceHistogramStatsResult, fidl::Error> {
1966            let _response = fidl::client::decode_transaction_body::<
1967                fidl::encoding::ResultType<WlanFullmacImplGetIfaceHistogramStatsResponse, i32>,
1968                fidl::encoding::DefaultFuchsiaResourceDialect,
1969                0x503d586f30ccf2cd,
1970            >(_buf?)?;
1971            Ok(_response.map(|x| x.stats))
1972        }
1973        self.client.send_query_and_decode::<
1974            fidl::encoding::EmptyPayload,
1975            WlanFullmacImplGetIfaceHistogramStatsResult,
1976        >(
1977            (),
1978            0x503d586f30ccf2cd,
1979            fidl::encoding::DynamicFlags::empty(),
1980            _decode,
1981        )
1982    }
1983
1984    type GetSignalReportResponseFut = fidl::client::QueryResponseFut<
1985        WlanFullmacImplGetSignalReportResult,
1986        fidl::encoding::DefaultFuchsiaResourceDialect,
1987    >;
1988    fn r#get_signal_report(&self) -> Self::GetSignalReportResponseFut {
1989        fn _decode(
1990            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
1991        ) -> Result<WlanFullmacImplGetSignalReportResult, fidl::Error> {
1992            let _response = fidl::client::decode_transaction_body::<
1993                fidl::encoding::ResultType<fidl_fuchsia_wlan_stats::SignalReport, i32>,
1994                fidl::encoding::DefaultFuchsiaResourceDialect,
1995                0x5d93f056e4796bb3,
1996            >(_buf?)?;
1997            Ok(_response.map(|x| x))
1998        }
1999        self.client.send_query_and_decode::<
2000            fidl::encoding::EmptyPayload,
2001            WlanFullmacImplGetSignalReportResult,
2002        >(
2003            (),
2004            0x5d93f056e4796bb3,
2005            fidl::encoding::DynamicFlags::empty(),
2006            _decode,
2007        )
2008    }
2009
2010    type SaeHandshakeRespResponseFut =
2011        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
2012    fn r#sae_handshake_resp(
2013        &self,
2014        mut payload: &WlanFullmacImplSaeHandshakeRespRequest,
2015    ) -> Self::SaeHandshakeRespResponseFut {
2016        fn _decode(
2017            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2018        ) -> Result<(), fidl::Error> {
2019            let _response = fidl::client::decode_transaction_body::<
2020                fidl::encoding::EmptyPayload,
2021                fidl::encoding::DefaultFuchsiaResourceDialect,
2022                0x72cd3a31ae5a54f6,
2023            >(_buf?)?;
2024            Ok(_response)
2025        }
2026        self.client.send_query_and_decode::<WlanFullmacImplSaeHandshakeRespRequest, ()>(
2027            payload,
2028            0x72cd3a31ae5a54f6,
2029            fidl::encoding::DynamicFlags::empty(),
2030            _decode,
2031        )
2032    }
2033
2034    type SaeFrameTxResponseFut =
2035        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
2036    fn r#sae_frame_tx(&self, mut frame: &SaeFrame) -> Self::SaeFrameTxResponseFut {
2037        fn _decode(
2038            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2039        ) -> Result<(), fidl::Error> {
2040            let _response = fidl::client::decode_transaction_body::<
2041                fidl::encoding::EmptyPayload,
2042                fidl::encoding::DefaultFuchsiaResourceDialect,
2043                0x4715ad5dc5a6340f,
2044            >(_buf?)?;
2045            Ok(_response)
2046        }
2047        self.client.send_query_and_decode::<WlanFullmacImplSaeFrameTxRequest, ()>(
2048            (frame,),
2049            0x4715ad5dc5a6340f,
2050            fidl::encoding::DynamicFlags::empty(),
2051            _decode,
2052        )
2053    }
2054
2055    type WmmStatusReqResponseFut =
2056        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
2057    fn r#wmm_status_req(&self) -> Self::WmmStatusReqResponseFut {
2058        fn _decode(
2059            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2060        ) -> Result<(), fidl::Error> {
2061            let _response = fidl::client::decode_transaction_body::<
2062                fidl::encoding::EmptyPayload,
2063                fidl::encoding::DefaultFuchsiaResourceDialect,
2064                0x635ecef3beb7a059,
2065            >(_buf?)?;
2066            Ok(_response)
2067        }
2068        self.client.send_query_and_decode::<fidl::encoding::EmptyPayload, ()>(
2069            (),
2070            0x635ecef3beb7a059,
2071            fidl::encoding::DynamicFlags::empty(),
2072            _decode,
2073        )
2074    }
2075
2076    type OnLinkStateChangedResponseFut =
2077        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
2078    fn r#on_link_state_changed(
2079        &self,
2080        mut payload: &WlanFullmacImplOnLinkStateChangedRequest,
2081    ) -> Self::OnLinkStateChangedResponseFut {
2082        fn _decode(
2083            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2084        ) -> Result<(), fidl::Error> {
2085            let _response = fidl::client::decode_transaction_body::<
2086                fidl::encoding::EmptyPayload,
2087                fidl::encoding::DefaultFuchsiaResourceDialect,
2088                0x4d896e5b68e488d7,
2089            >(_buf?)?;
2090            Ok(_response)
2091        }
2092        self.client.send_query_and_decode::<WlanFullmacImplOnLinkStateChangedRequest, ()>(
2093            payload,
2094            0x4d896e5b68e488d7,
2095            fidl::encoding::DynamicFlags::empty(),
2096            _decode,
2097        )
2098    }
2099
2100    type SetMacAddressResponseFut = fidl::client::QueryResponseFut<
2101        WlanFullmacImplSetMacAddressResult,
2102        fidl::encoding::DefaultFuchsiaResourceDialect,
2103    >;
2104    fn r#set_mac_address(&self, mut mac_addr: &[u8; 6]) -> Self::SetMacAddressResponseFut {
2105        fn _decode(
2106            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2107        ) -> Result<WlanFullmacImplSetMacAddressResult, fidl::Error> {
2108            let _response = fidl::client::decode_transaction_body::<
2109                fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>,
2110                fidl::encoding::DefaultFuchsiaResourceDialect,
2111                0x211a97f6f21ae5f0,
2112            >(_buf?)?;
2113            Ok(_response.map(|x| x))
2114        }
2115        self.client.send_query_and_decode::<
2116            WlanFullmacImplSetMacAddressRequest,
2117            WlanFullmacImplSetMacAddressResult,
2118        >(
2119            (mac_addr,),
2120            0x211a97f6f21ae5f0,
2121            fidl::encoding::DynamicFlags::empty(),
2122            _decode,
2123        )
2124    }
2125
2126    type InstallApfPacketFilterResponseFut = fidl::client::QueryResponseFut<
2127        WlanFullmacImplInstallApfPacketFilterResult,
2128        fidl::encoding::DefaultFuchsiaResourceDialect,
2129    >;
2130    fn r#install_apf_packet_filter(
2131        &self,
2132        mut payload: &WlanFullmacImplInstallApfPacketFilterRequest,
2133    ) -> Self::InstallApfPacketFilterResponseFut {
2134        fn _decode(
2135            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2136        ) -> Result<WlanFullmacImplInstallApfPacketFilterResult, fidl::Error> {
2137            let _response = fidl::client::decode_transaction_body::<
2138                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
2139                fidl::encoding::DefaultFuchsiaResourceDialect,
2140                0x14597eda84122115,
2141            >(_buf?)?
2142            .into_result::<WlanFullmacImpl_Marker>("install_apf_packet_filter")?;
2143            Ok(_response.map(|x| x))
2144        }
2145        self.client.send_query_and_decode::<
2146            WlanFullmacImplInstallApfPacketFilterRequest,
2147            WlanFullmacImplInstallApfPacketFilterResult,
2148        >(
2149            payload,
2150            0x14597eda84122115,
2151            fidl::encoding::DynamicFlags::FLEXIBLE,
2152            _decode,
2153        )
2154    }
2155
2156    type ReadApfPacketFilterDataResponseFut = fidl::client::QueryResponseFut<
2157        WlanFullmacImplReadApfPacketFilterDataResult,
2158        fidl::encoding::DefaultFuchsiaResourceDialect,
2159    >;
2160    fn r#read_apf_packet_filter_data(&self) -> Self::ReadApfPacketFilterDataResponseFut {
2161        fn _decode(
2162            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2163        ) -> Result<WlanFullmacImplReadApfPacketFilterDataResult, fidl::Error> {
2164            let _response = fidl::client::decode_transaction_body::<
2165                fidl::encoding::FlexibleResultType<
2166                    WlanFullmacImplReadApfPacketFilterDataResponse,
2167                    i32,
2168                >,
2169                fidl::encoding::DefaultFuchsiaResourceDialect,
2170                0x6ddcf8a179553a3c,
2171            >(_buf?)?
2172            .into_result::<WlanFullmacImpl_Marker>("read_apf_packet_filter_data")?;
2173            Ok(_response.map(|x| x))
2174        }
2175        self.client.send_query_and_decode::<
2176            fidl::encoding::EmptyPayload,
2177            WlanFullmacImplReadApfPacketFilterDataResult,
2178        >(
2179            (),
2180            0x6ddcf8a179553a3c,
2181            fidl::encoding::DynamicFlags::FLEXIBLE,
2182            _decode,
2183        )
2184    }
2185
2186    type SetApfPacketFilterEnabledResponseFut = fidl::client::QueryResponseFut<
2187        WlanFullmacImplSetApfPacketFilterEnabledResult,
2188        fidl::encoding::DefaultFuchsiaResourceDialect,
2189    >;
2190    fn r#set_apf_packet_filter_enabled(
2191        &self,
2192        mut payload: &WlanFullmacImplSetApfPacketFilterEnabledRequest,
2193    ) -> Self::SetApfPacketFilterEnabledResponseFut {
2194        fn _decode(
2195            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2196        ) -> Result<WlanFullmacImplSetApfPacketFilterEnabledResult, fidl::Error> {
2197            let _response = fidl::client::decode_transaction_body::<
2198                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
2199                fidl::encoding::DefaultFuchsiaResourceDialect,
2200                0x808792cade97d59,
2201            >(_buf?)?
2202            .into_result::<WlanFullmacImpl_Marker>("set_apf_packet_filter_enabled")?;
2203            Ok(_response.map(|x| x))
2204        }
2205        self.client.send_query_and_decode::<
2206            WlanFullmacImplSetApfPacketFilterEnabledRequest,
2207            WlanFullmacImplSetApfPacketFilterEnabledResult,
2208        >(
2209            payload,
2210            0x808792cade97d59,
2211            fidl::encoding::DynamicFlags::FLEXIBLE,
2212            _decode,
2213        )
2214    }
2215
2216    type GetApfPacketFilterEnabledResponseFut = fidl::client::QueryResponseFut<
2217        WlanFullmacImplGetApfPacketFilterEnabledResult,
2218        fidl::encoding::DefaultFuchsiaResourceDialect,
2219    >;
2220    fn r#get_apf_packet_filter_enabled(&self) -> Self::GetApfPacketFilterEnabledResponseFut {
2221        fn _decode(
2222            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2223        ) -> Result<WlanFullmacImplGetApfPacketFilterEnabledResult, fidl::Error> {
2224            let _response = fidl::client::decode_transaction_body::<
2225                fidl::encoding::FlexibleResultType<
2226                    WlanFullmacImplGetApfPacketFilterEnabledResponse,
2227                    i32,
2228                >,
2229                fidl::encoding::DefaultFuchsiaResourceDialect,
2230                0x284e1725471e3ae7,
2231            >(_buf?)?
2232            .into_result::<WlanFullmacImpl_Marker>("get_apf_packet_filter_enabled")?;
2233            Ok(_response.map(|x| x))
2234        }
2235        self.client.send_query_and_decode::<
2236            fidl::encoding::EmptyPayload,
2237            WlanFullmacImplGetApfPacketFilterEnabledResult,
2238        >(
2239            (),
2240            0x284e1725471e3ae7,
2241            fidl::encoding::DynamicFlags::FLEXIBLE,
2242            _decode,
2243        )
2244    }
2245
2246    type StartRssiMonitorResponseFut = fidl::client::QueryResponseFut<
2247        WlanFullmacImplStartRssiMonitorResult,
2248        fidl::encoding::DefaultFuchsiaResourceDialect,
2249    >;
2250    fn r#start_rssi_monitor(
2251        &self,
2252        mut payload: &WlanFullmacImplStartRssiMonitorRequest,
2253    ) -> Self::StartRssiMonitorResponseFut {
2254        fn _decode(
2255            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2256        ) -> Result<WlanFullmacImplStartRssiMonitorResult, fidl::Error> {
2257            let _response = fidl::client::decode_transaction_body::<
2258                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
2259                fidl::encoding::DefaultFuchsiaResourceDialect,
2260                0x5e6e8feead94acec,
2261            >(_buf?)?
2262            .into_result::<WlanFullmacImpl_Marker>("start_rssi_monitor")?;
2263            Ok(_response.map(|x| x))
2264        }
2265        self.client.send_query_and_decode::<
2266            WlanFullmacImplStartRssiMonitorRequest,
2267            WlanFullmacImplStartRssiMonitorResult,
2268        >(
2269            payload,
2270            0x5e6e8feead94acec,
2271            fidl::encoding::DynamicFlags::FLEXIBLE,
2272            _decode,
2273        )
2274    }
2275
2276    type StopRssiMonitorResponseFut = fidl::client::QueryResponseFut<
2277        WlanFullmacImplStopRssiMonitorResult,
2278        fidl::encoding::DefaultFuchsiaResourceDialect,
2279    >;
2280    fn r#stop_rssi_monitor(&self) -> Self::StopRssiMonitorResponseFut {
2281        fn _decode(
2282            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
2283        ) -> Result<WlanFullmacImplStopRssiMonitorResult, fidl::Error> {
2284            let _response = fidl::client::decode_transaction_body::<
2285                fidl::encoding::FlexibleResultType<fidl::encoding::EmptyStruct, i32>,
2286                fidl::encoding::DefaultFuchsiaResourceDialect,
2287                0x45795dfdd5760880,
2288            >(_buf?)?
2289            .into_result::<WlanFullmacImpl_Marker>("stop_rssi_monitor")?;
2290            Ok(_response.map(|x| x))
2291        }
2292        self.client.send_query_and_decode::<
2293            fidl::encoding::EmptyPayload,
2294            WlanFullmacImplStopRssiMonitorResult,
2295        >(
2296            (),
2297            0x45795dfdd5760880,
2298            fidl::encoding::DynamicFlags::FLEXIBLE,
2299            _decode,
2300        )
2301    }
2302}
2303
2304pub struct WlanFullmacImpl_EventStream {
2305    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
2306}
2307
2308impl std::marker::Unpin for WlanFullmacImpl_EventStream {}
2309
2310impl futures::stream::FusedStream for WlanFullmacImpl_EventStream {
2311    fn is_terminated(&self) -> bool {
2312        self.event_receiver.is_terminated()
2313    }
2314}
2315
2316impl futures::Stream for WlanFullmacImpl_EventStream {
2317    type Item = Result<WlanFullmacImpl_Event, fidl::Error>;
2318
2319    fn poll_next(
2320        mut self: std::pin::Pin<&mut Self>,
2321        cx: &mut std::task::Context<'_>,
2322    ) -> std::task::Poll<Option<Self::Item>> {
2323        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
2324            &mut self.event_receiver,
2325            cx
2326        )?) {
2327            Some(buf) => std::task::Poll::Ready(Some(WlanFullmacImpl_Event::decode(buf))),
2328            None => std::task::Poll::Ready(None),
2329        }
2330    }
2331}
2332
2333#[derive(Debug)]
2334pub enum WlanFullmacImpl_Event {
2335    #[non_exhaustive]
2336    _UnknownEvent {
2337        /// Ordinal of the event that was sent.
2338        ordinal: u64,
2339    },
2340}
2341
2342impl WlanFullmacImpl_Event {
2343    /// Decodes a message buffer as a [`WlanFullmacImpl_Event`].
2344    fn decode(
2345        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
2346    ) -> Result<WlanFullmacImpl_Event, fidl::Error> {
2347        let (bytes, _handles) = buf.split_mut();
2348        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2349        debug_assert_eq!(tx_header.tx_id, 0);
2350        match tx_header.ordinal {
2351            _ if tx_header.dynamic_flags().contains(fidl::encoding::DynamicFlags::FLEXIBLE) => {
2352                Ok(WlanFullmacImpl_Event::_UnknownEvent { ordinal: tx_header.ordinal })
2353            }
2354            _ => Err(fidl::Error::UnknownOrdinal {
2355                ordinal: tx_header.ordinal,
2356                protocol_name:
2357                    <WlanFullmacImpl_Marker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
2358            }),
2359        }
2360    }
2361}
2362
2363/// A Stream of incoming requests for fuchsia.wlan.fullmac/WlanFullmacImpl.
2364pub struct WlanFullmacImpl_RequestStream {
2365    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2366    is_terminated: bool,
2367}
2368
2369impl std::marker::Unpin for WlanFullmacImpl_RequestStream {}
2370
2371impl futures::stream::FusedStream for WlanFullmacImpl_RequestStream {
2372    fn is_terminated(&self) -> bool {
2373        self.is_terminated
2374    }
2375}
2376
2377impl fidl::endpoints::RequestStream for WlanFullmacImpl_RequestStream {
2378    type Protocol = WlanFullmacImpl_Marker;
2379    type ControlHandle = WlanFullmacImpl_ControlHandle;
2380
2381    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
2382        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
2383    }
2384
2385    fn control_handle(&self) -> Self::ControlHandle {
2386        WlanFullmacImpl_ControlHandle { inner: self.inner.clone() }
2387    }
2388
2389    fn into_inner(
2390        self,
2391    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
2392    {
2393        (self.inner, self.is_terminated)
2394    }
2395
2396    fn from_inner(
2397        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
2398        is_terminated: bool,
2399    ) -> Self {
2400        Self { inner, is_terminated }
2401    }
2402}
2403
2404impl futures::Stream for WlanFullmacImpl_RequestStream {
2405    type Item = Result<WlanFullmacImpl_Request, fidl::Error>;
2406
2407    fn poll_next(
2408        mut self: std::pin::Pin<&mut Self>,
2409        cx: &mut std::task::Context<'_>,
2410    ) -> std::task::Poll<Option<Self::Item>> {
2411        let this = &mut *self;
2412        if this.inner.check_shutdown(cx) {
2413            this.is_terminated = true;
2414            return std::task::Poll::Ready(None);
2415        }
2416        if this.is_terminated {
2417            panic!("polled WlanFullmacImpl_RequestStream after completion");
2418        }
2419        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
2420            |bytes, handles| {
2421                match this.inner.channel().read_etc(cx, bytes, handles) {
2422                    std::task::Poll::Ready(Ok(())) => {}
2423                    std::task::Poll::Pending => return std::task::Poll::Pending,
2424                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
2425                        this.is_terminated = true;
2426                        return std::task::Poll::Ready(None);
2427                    }
2428                    std::task::Poll::Ready(Err(e)) => {
2429                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
2430                            e.into(),
2431                        ))));
2432                    }
2433                }
2434
2435                // A message has been received from the channel
2436                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
2437
2438                std::task::Poll::Ready(Some(match header.ordinal {
2439                    0x593dfb6cb3f0f1aa => {
2440                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2441                        let mut req = fidl::new_empty!(
2442                            WlanFullmacImplInitRequest,
2443                            fidl::encoding::DefaultFuchsiaResourceDialect
2444                        );
2445                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplInitRequest>(&header, _body_bytes, handles, &mut req)?;
2446                        let control_handle =
2447                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2448                        Ok(WlanFullmacImpl_Request::Init {
2449                            payload: req,
2450                            responder: WlanFullmacImpl_InitResponder {
2451                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2452                                tx_id: header.tx_id,
2453                            },
2454                        })
2455                    }
2456                    0x28ac65f9da3941d4 => {
2457                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2458                        let mut req = fidl::new_empty!(
2459                            fidl::encoding::EmptyPayload,
2460                            fidl::encoding::DefaultFuchsiaResourceDialect
2461                        );
2462                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2463                        let control_handle =
2464                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2465                        Ok(WlanFullmacImpl_Request::Query {
2466                            responder: WlanFullmacImpl_QueryResponder {
2467                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2468                                tx_id: header.tx_id,
2469                            },
2470                        })
2471                    }
2472                    0x11cf3fa6eeb93f84 => {
2473                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2474                        let mut req = fidl::new_empty!(
2475                            fidl::encoding::EmptyPayload,
2476                            fidl::encoding::DefaultFuchsiaResourceDialect
2477                        );
2478                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2479                        let control_handle =
2480                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2481                        Ok(WlanFullmacImpl_Request::QuerySecuritySupport {
2482                            responder: WlanFullmacImpl_QuerySecuritySupportResponder {
2483                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2484                                tx_id: header.tx_id,
2485                            },
2486                        })
2487                    }
2488                    0x22ae7551d855b83a => {
2489                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2490                        let mut req = fidl::new_empty!(
2491                            fidl::encoding::EmptyPayload,
2492                            fidl::encoding::DefaultFuchsiaResourceDialect
2493                        );
2494                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2495                        let control_handle =
2496                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2497                        Ok(WlanFullmacImpl_Request::QuerySpectrumManagementSupport {
2498                            responder: WlanFullmacImpl_QuerySpectrumManagementSupportResponder {
2499                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2500                                tx_id: header.tx_id,
2501                            },
2502                        })
2503                    }
2504                    0x4561479ca560827f => {
2505                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2506                        let mut req = fidl::new_empty!(
2507                            fidl::encoding::EmptyPayload,
2508                            fidl::encoding::DefaultFuchsiaResourceDialect
2509                        );
2510                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2511                        let control_handle =
2512                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2513                        Ok(WlanFullmacImpl_Request::QueryTelemetrySupport {
2514                            responder: WlanFullmacImpl_QueryTelemetrySupportResponder {
2515                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2516                                tx_id: header.tx_id,
2517                            },
2518                        })
2519                    }
2520                    0x6df8cdf0acd4dfad => {
2521                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2522                        let mut req = fidl::new_empty!(
2523                            fidl::encoding::EmptyPayload,
2524                            fidl::encoding::DefaultFuchsiaResourceDialect
2525                        );
2526                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2527                        let control_handle =
2528                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2529                        Ok(WlanFullmacImpl_Request::QueryApfPacketFilterSupport {
2530                            responder: WlanFullmacImpl_QueryApfPacketFilterSupportResponder {
2531                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2532                                tx_id: header.tx_id,
2533                            },
2534                        })
2535                    }
2536                    0x21d21e42d6aa61b5 => {
2537                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2538                        let mut req = fidl::new_empty!(
2539                            fidl::encoding::EmptyPayload,
2540                            fidl::encoding::DefaultFuchsiaResourceDialect
2541                        );
2542                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2543                        let control_handle =
2544                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2545                        Ok(WlanFullmacImpl_Request::QueryRssiMonitorSupport {
2546                            responder: WlanFullmacImpl_QueryRssiMonitorSupportResponder {
2547                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2548                                tx_id: header.tx_id,
2549                            },
2550                        })
2551                    }
2552                    0x26c17bf595aa161c => {
2553                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2554                        let mut req = fidl::new_empty!(
2555                            WlanFullmacImplStartScanRequest,
2556                            fidl::encoding::DefaultFuchsiaResourceDialect
2557                        );
2558                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplStartScanRequest>(&header, _body_bytes, handles, &mut req)?;
2559                        let control_handle =
2560                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2561                        Ok(WlanFullmacImpl_Request::StartScan {
2562                            payload: req,
2563                            responder: WlanFullmacImpl_StartScanResponder {
2564                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2565                                tx_id: header.tx_id,
2566                            },
2567                        })
2568                    }
2569                    0x67bb4356265682d2 => {
2570                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2571                        let mut req = fidl::new_empty!(
2572                            WlanFullmacImplStartScheduledScanRequest,
2573                            fidl::encoding::DefaultFuchsiaResourceDialect
2574                        );
2575                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplStartScheduledScanRequest>(&header, _body_bytes, handles, &mut req)?;
2576                        let control_handle =
2577                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2578                        Ok(WlanFullmacImpl_Request::StartScheduledScan {
2579                            payload: req,
2580                            responder: WlanFullmacImpl_StartScheduledScanResponder {
2581                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2582                                tx_id: header.tx_id,
2583                            },
2584                        })
2585                    }
2586                    0x71bf2a03f2cdc10f => {
2587                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2588                        let mut req = fidl::new_empty!(
2589                            WlanFullmacImplStopScheduledScanRequest,
2590                            fidl::encoding::DefaultFuchsiaResourceDialect
2591                        );
2592                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplStopScheduledScanRequest>(&header, _body_bytes, handles, &mut req)?;
2593                        let control_handle =
2594                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2595                        Ok(WlanFullmacImpl_Request::StopScheduledScan {
2596                            payload: req,
2597                            responder: WlanFullmacImpl_StopScheduledScanResponder {
2598                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2599                                tx_id: header.tx_id,
2600                            },
2601                        })
2602                    }
2603                    0x96be6f11648f198 => {
2604                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2605                        let mut req = fidl::new_empty!(
2606                            fidl::encoding::EmptyPayload,
2607                            fidl::encoding::DefaultFuchsiaResourceDialect
2608                        );
2609                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2610                        let control_handle =
2611                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2612                        Ok(WlanFullmacImpl_Request::GetScheduledScanEnabled {
2613                            responder: WlanFullmacImpl_GetScheduledScanEnabledResponder {
2614                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2615                                tx_id: header.tx_id,
2616                            },
2617                        })
2618                    }
2619                    0x19eb0322efb07a76 => {
2620                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2621                        let mut req = fidl::new_empty!(
2622                            WlanFullmacImplConnectRequest,
2623                            fidl::encoding::DefaultFuchsiaResourceDialect
2624                        );
2625                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplConnectRequest>(&header, _body_bytes, handles, &mut req)?;
2626                        let control_handle =
2627                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2628                        Ok(WlanFullmacImpl_Request::Connect {
2629                            payload: req,
2630                            responder: WlanFullmacImpl_ConnectResponder {
2631                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2632                                tx_id: header.tx_id,
2633                            },
2634                        })
2635                    }
2636                    0x474084c4ef19ee71 => {
2637                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2638                        let mut req = fidl::new_empty!(
2639                            WlanFullmacImplReconnectRequest,
2640                            fidl::encoding::DefaultFuchsiaResourceDialect
2641                        );
2642                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplReconnectRequest>(&header, _body_bytes, handles, &mut req)?;
2643                        let control_handle =
2644                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2645                        Ok(WlanFullmacImpl_Request::Reconnect {
2646                            payload: req,
2647                            responder: WlanFullmacImpl_ReconnectResponder {
2648                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2649                                tx_id: header.tx_id,
2650                            },
2651                        })
2652                    }
2653                    0x1e35dcc98b124b64 => {
2654                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2655                        let mut req = fidl::new_empty!(
2656                            WlanFullmacImplRoamRequest,
2657                            fidl::encoding::DefaultFuchsiaResourceDialect
2658                        );
2659                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplRoamRequest>(&header, _body_bytes, handles, &mut req)?;
2660                        let control_handle =
2661                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2662                        Ok(WlanFullmacImpl_Request::Roam {
2663                            payload: req,
2664                            responder: WlanFullmacImpl_RoamResponder {
2665                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2666                                tx_id: header.tx_id,
2667                            },
2668                        })
2669                    }
2670                    0x5f7ea24b44a4aaeb => {
2671                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2672                        let mut req = fidl::new_empty!(
2673                            WlanFullmacImplAuthRespRequest,
2674                            fidl::encoding::DefaultFuchsiaResourceDialect
2675                        );
2676                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplAuthRespRequest>(&header, _body_bytes, handles, &mut req)?;
2677                        let control_handle =
2678                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2679                        Ok(WlanFullmacImpl_Request::AuthResp {
2680                            payload: req,
2681                            responder: WlanFullmacImpl_AuthRespResponder {
2682                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2683                                tx_id: header.tx_id,
2684                            },
2685                        })
2686                    }
2687                    0x112786eccbf12f37 => {
2688                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2689                        let mut req = fidl::new_empty!(
2690                            WlanFullmacImplDeauthRequest,
2691                            fidl::encoding::DefaultFuchsiaResourceDialect
2692                        );
2693                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplDeauthRequest>(&header, _body_bytes, handles, &mut req)?;
2694                        let control_handle =
2695                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2696                        Ok(WlanFullmacImpl_Request::Deauth {
2697                            payload: req,
2698                            responder: WlanFullmacImpl_DeauthResponder {
2699                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2700                                tx_id: header.tx_id,
2701                            },
2702                        })
2703                    }
2704                    0x5022ce6b8eefec2f => {
2705                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2706                        let mut req = fidl::new_empty!(
2707                            WlanFullmacImplAssocRespRequest,
2708                            fidl::encoding::DefaultFuchsiaResourceDialect
2709                        );
2710                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplAssocRespRequest>(&header, _body_bytes, handles, &mut req)?;
2711                        let control_handle =
2712                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2713                        Ok(WlanFullmacImpl_Request::AssocResp {
2714                            payload: req,
2715                            responder: WlanFullmacImpl_AssocRespResponder {
2716                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2717                                tx_id: header.tx_id,
2718                            },
2719                        })
2720                    }
2721                    0x9c0fc4e8de53e01 => {
2722                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2723                        let mut req = fidl::new_empty!(
2724                            WlanFullmacImplDisassocRequest,
2725                            fidl::encoding::DefaultFuchsiaResourceDialect
2726                        );
2727                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplDisassocRequest>(&header, _body_bytes, handles, &mut req)?;
2728                        let control_handle =
2729                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2730                        Ok(WlanFullmacImpl_Request::Disassoc {
2731                            payload: req,
2732                            responder: WlanFullmacImpl_DisassocResponder {
2733                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2734                                tx_id: header.tx_id,
2735                            },
2736                        })
2737                    }
2738                    0x6922644d6b1d341d => {
2739                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2740                        let mut req = fidl::new_empty!(
2741                            WlanFullmacImplStartBssRequest,
2742                            fidl::encoding::DefaultFuchsiaResourceDialect
2743                        );
2744                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplStartBssRequest>(&header, _body_bytes, handles, &mut req)?;
2745                        let control_handle =
2746                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2747                        Ok(WlanFullmacImpl_Request::StartBss {
2748                            payload: req,
2749                            responder: WlanFullmacImpl_StartBssResponder {
2750                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2751                                tx_id: header.tx_id,
2752                            },
2753                        })
2754                    }
2755                    0x5aeb9b72e7575268 => {
2756                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2757                        let mut req = fidl::new_empty!(
2758                            WlanFullmacImplStopBssRequest,
2759                            fidl::encoding::DefaultFuchsiaResourceDialect
2760                        );
2761                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplStopBssRequest>(&header, _body_bytes, handles, &mut req)?;
2762                        let control_handle =
2763                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2764                        Ok(WlanFullmacImpl_Request::StopBss {
2765                            payload: req,
2766                            responder: WlanFullmacImpl_StopBssResponder {
2767                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2768                                tx_id: header.tx_id,
2769                            },
2770                        })
2771                    }
2772                    0x20f46b1e039f0985 => {
2773                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2774                        let mut req = fidl::new_empty!(
2775                            WlanFullmacImplSetKeysRequest,
2776                            fidl::encoding::DefaultFuchsiaResourceDialect
2777                        );
2778                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplSetKeysRequest>(&header, _body_bytes, handles, &mut req)?;
2779                        let control_handle =
2780                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2781                        Ok(WlanFullmacImpl_Request::SetKeys {
2782                            payload: req,
2783                            responder: WlanFullmacImpl_SetKeysResponder {
2784                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2785                                tx_id: header.tx_id,
2786                            },
2787                        })
2788                    }
2789                    0x529a2d90fd4c8177 => {
2790                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2791                        let mut req = fidl::new_empty!(
2792                            WlanFullmacImplEapolTxRequest,
2793                            fidl::encoding::DefaultFuchsiaResourceDialect
2794                        );
2795                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplEapolTxRequest>(&header, _body_bytes, handles, &mut req)?;
2796                        let control_handle =
2797                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2798                        Ok(WlanFullmacImpl_Request::EapolTx {
2799                            payload: req,
2800                            responder: WlanFullmacImpl_EapolTxResponder {
2801                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2802                                tx_id: header.tx_id,
2803                            },
2804                        })
2805                    }
2806                    0x505563776ef0392f => {
2807                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2808                        let mut req = fidl::new_empty!(
2809                            fidl::encoding::EmptyPayload,
2810                            fidl::encoding::DefaultFuchsiaResourceDialect
2811                        );
2812                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2813                        let control_handle =
2814                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2815                        Ok(WlanFullmacImpl_Request::GetIfaceStats {
2816                            responder: WlanFullmacImpl_GetIfaceStatsResponder {
2817                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2818                                tx_id: header.tx_id,
2819                            },
2820                        })
2821                    }
2822                    0x503d586f30ccf2cd => {
2823                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2824                        let mut req = fidl::new_empty!(
2825                            fidl::encoding::EmptyPayload,
2826                            fidl::encoding::DefaultFuchsiaResourceDialect
2827                        );
2828                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2829                        let control_handle =
2830                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2831                        Ok(WlanFullmacImpl_Request::GetIfaceHistogramStats {
2832                            responder: WlanFullmacImpl_GetIfaceHistogramStatsResponder {
2833                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2834                                tx_id: header.tx_id,
2835                            },
2836                        })
2837                    }
2838                    0x5d93f056e4796bb3 => {
2839                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2840                        let mut req = fidl::new_empty!(
2841                            fidl::encoding::EmptyPayload,
2842                            fidl::encoding::DefaultFuchsiaResourceDialect
2843                        );
2844                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2845                        let control_handle =
2846                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2847                        Ok(WlanFullmacImpl_Request::GetSignalReport {
2848                            responder: WlanFullmacImpl_GetSignalReportResponder {
2849                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2850                                tx_id: header.tx_id,
2851                            },
2852                        })
2853                    }
2854                    0x72cd3a31ae5a54f6 => {
2855                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2856                        let mut req = fidl::new_empty!(
2857                            WlanFullmacImplSaeHandshakeRespRequest,
2858                            fidl::encoding::DefaultFuchsiaResourceDialect
2859                        );
2860                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplSaeHandshakeRespRequest>(&header, _body_bytes, handles, &mut req)?;
2861                        let control_handle =
2862                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2863                        Ok(WlanFullmacImpl_Request::SaeHandshakeResp {
2864                            payload: req,
2865                            responder: WlanFullmacImpl_SaeHandshakeRespResponder {
2866                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2867                                tx_id: header.tx_id,
2868                            },
2869                        })
2870                    }
2871                    0x4715ad5dc5a6340f => {
2872                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2873                        let mut req = fidl::new_empty!(
2874                            WlanFullmacImplSaeFrameTxRequest,
2875                            fidl::encoding::DefaultFuchsiaResourceDialect
2876                        );
2877                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplSaeFrameTxRequest>(&header, _body_bytes, handles, &mut req)?;
2878                        let control_handle =
2879                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2880                        Ok(WlanFullmacImpl_Request::SaeFrameTx {
2881                            frame: req.frame,
2882
2883                            responder: WlanFullmacImpl_SaeFrameTxResponder {
2884                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2885                                tx_id: header.tx_id,
2886                            },
2887                        })
2888                    }
2889                    0x635ecef3beb7a059 => {
2890                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2891                        let mut req = fidl::new_empty!(
2892                            fidl::encoding::EmptyPayload,
2893                            fidl::encoding::DefaultFuchsiaResourceDialect
2894                        );
2895                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2896                        let control_handle =
2897                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2898                        Ok(WlanFullmacImpl_Request::WmmStatusReq {
2899                            responder: WlanFullmacImpl_WmmStatusReqResponder {
2900                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2901                                tx_id: header.tx_id,
2902                            },
2903                        })
2904                    }
2905                    0x4d896e5b68e488d7 => {
2906                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2907                        let mut req = fidl::new_empty!(
2908                            WlanFullmacImplOnLinkStateChangedRequest,
2909                            fidl::encoding::DefaultFuchsiaResourceDialect
2910                        );
2911                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplOnLinkStateChangedRequest>(&header, _body_bytes, handles, &mut req)?;
2912                        let control_handle =
2913                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2914                        Ok(WlanFullmacImpl_Request::OnLinkStateChanged {
2915                            payload: req,
2916                            responder: WlanFullmacImpl_OnLinkStateChangedResponder {
2917                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2918                                tx_id: header.tx_id,
2919                            },
2920                        })
2921                    }
2922                    0x211a97f6f21ae5f0 => {
2923                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2924                        let mut req = fidl::new_empty!(
2925                            WlanFullmacImplSetMacAddressRequest,
2926                            fidl::encoding::DefaultFuchsiaResourceDialect
2927                        );
2928                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplSetMacAddressRequest>(&header, _body_bytes, handles, &mut req)?;
2929                        let control_handle =
2930                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2931                        Ok(WlanFullmacImpl_Request::SetMacAddress {
2932                            mac_addr: req.mac_addr,
2933
2934                            responder: WlanFullmacImpl_SetMacAddressResponder {
2935                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2936                                tx_id: header.tx_id,
2937                            },
2938                        })
2939                    }
2940                    0x14597eda84122115 => {
2941                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2942                        let mut req = fidl::new_empty!(
2943                            WlanFullmacImplInstallApfPacketFilterRequest,
2944                            fidl::encoding::DefaultFuchsiaResourceDialect
2945                        );
2946                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplInstallApfPacketFilterRequest>(&header, _body_bytes, handles, &mut req)?;
2947                        let control_handle =
2948                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2949                        Ok(WlanFullmacImpl_Request::InstallApfPacketFilter {
2950                            payload: req,
2951                            responder: WlanFullmacImpl_InstallApfPacketFilterResponder {
2952                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2953                                tx_id: header.tx_id,
2954                            },
2955                        })
2956                    }
2957                    0x6ddcf8a179553a3c => {
2958                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2959                        let mut req = fidl::new_empty!(
2960                            fidl::encoding::EmptyPayload,
2961                            fidl::encoding::DefaultFuchsiaResourceDialect
2962                        );
2963                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2964                        let control_handle =
2965                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2966                        Ok(WlanFullmacImpl_Request::ReadApfPacketFilterData {
2967                            responder: WlanFullmacImpl_ReadApfPacketFilterDataResponder {
2968                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2969                                tx_id: header.tx_id,
2970                            },
2971                        })
2972                    }
2973                    0x808792cade97d59 => {
2974                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2975                        let mut req = fidl::new_empty!(
2976                            WlanFullmacImplSetApfPacketFilterEnabledRequest,
2977                            fidl::encoding::DefaultFuchsiaResourceDialect
2978                        );
2979                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplSetApfPacketFilterEnabledRequest>(&header, _body_bytes, handles, &mut req)?;
2980                        let control_handle =
2981                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2982                        Ok(WlanFullmacImpl_Request::SetApfPacketFilterEnabled {
2983                            payload: req,
2984                            responder: WlanFullmacImpl_SetApfPacketFilterEnabledResponder {
2985                                control_handle: std::mem::ManuallyDrop::new(control_handle),
2986                                tx_id: header.tx_id,
2987                            },
2988                        })
2989                    }
2990                    0x284e1725471e3ae7 => {
2991                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
2992                        let mut req = fidl::new_empty!(
2993                            fidl::encoding::EmptyPayload,
2994                            fidl::encoding::DefaultFuchsiaResourceDialect
2995                        );
2996                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
2997                        let control_handle =
2998                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
2999                        Ok(WlanFullmacImpl_Request::GetApfPacketFilterEnabled {
3000                            responder: WlanFullmacImpl_GetApfPacketFilterEnabledResponder {
3001                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3002                                tx_id: header.tx_id,
3003                            },
3004                        })
3005                    }
3006                    0x5e6e8feead94acec => {
3007                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3008                        let mut req = fidl::new_empty!(
3009                            WlanFullmacImplStartRssiMonitorRequest,
3010                            fidl::encoding::DefaultFuchsiaResourceDialect
3011                        );
3012                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplStartRssiMonitorRequest>(&header, _body_bytes, handles, &mut req)?;
3013                        let control_handle =
3014                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
3015                        Ok(WlanFullmacImpl_Request::StartRssiMonitor {
3016                            payload: req,
3017                            responder: WlanFullmacImpl_StartRssiMonitorResponder {
3018                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3019                                tx_id: header.tx_id,
3020                            },
3021                        })
3022                    }
3023                    0x45795dfdd5760880 => {
3024                        header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
3025                        let mut req = fidl::new_empty!(
3026                            fidl::encoding::EmptyPayload,
3027                            fidl::encoding::DefaultFuchsiaResourceDialect
3028                        );
3029                        fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<fidl::encoding::EmptyPayload>(&header, _body_bytes, handles, &mut req)?;
3030                        let control_handle =
3031                            WlanFullmacImpl_ControlHandle { inner: this.inner.clone() };
3032                        Ok(WlanFullmacImpl_Request::StopRssiMonitor {
3033                            responder: WlanFullmacImpl_StopRssiMonitorResponder {
3034                                control_handle: std::mem::ManuallyDrop::new(control_handle),
3035                                tx_id: header.tx_id,
3036                            },
3037                        })
3038                    }
3039                    _ if header.tx_id == 0
3040                        && header
3041                            .dynamic_flags()
3042                            .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3043                    {
3044                        Ok(WlanFullmacImpl_Request::_UnknownMethod {
3045                            ordinal: header.ordinal,
3046                            control_handle: WlanFullmacImpl_ControlHandle {
3047                                inner: this.inner.clone(),
3048                            },
3049                            method_type: fidl::MethodType::OneWay,
3050                        })
3051                    }
3052                    _ if header
3053                        .dynamic_flags()
3054                        .contains(fidl::encoding::DynamicFlags::FLEXIBLE) =>
3055                    {
3056                        this.inner.send_framework_err(
3057                            fidl::encoding::FrameworkErr::UnknownMethod,
3058                            header.tx_id,
3059                            header.ordinal,
3060                            header.dynamic_flags(),
3061                            (bytes, handles),
3062                        )?;
3063                        Ok(WlanFullmacImpl_Request::_UnknownMethod {
3064                            ordinal: header.ordinal,
3065                            control_handle: WlanFullmacImpl_ControlHandle {
3066                                inner: this.inner.clone(),
3067                            },
3068                            method_type: fidl::MethodType::TwoWay,
3069                        })
3070                    }
3071                    _ => Err(fidl::Error::UnknownOrdinal {
3072                        ordinal: header.ordinal,
3073                        protocol_name:
3074                            <WlanFullmacImpl_Marker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
3075                    }),
3076                }))
3077            },
3078        )
3079    }
3080}
3081
3082/// Protocol definition for communication from the platform to the fullmac
3083/// vendor driver.
3084#[derive(Debug)]
3085pub enum WlanFullmacImpl_Request {
3086    /// Initialize the FullMAC driver. This is the first request that the platform will make to the
3087    /// FullMAC driver.
3088    ///
3089    /// On initialization, MLME provides the client end to the WlanFullmacImplIfc protocol. The
3090    /// driver must return the SME server end channel, which is used internally by the platform.
3091    /// Typically, the SME server end channel is given to the FullMAC driver by
3092    /// fuchsia.wlan.phy/WlanPhy.CreateIface.
3093    ///
3094    /// If `Init` completes successfully, the platform will begin making other WlanFullmacImpl
3095    /// requests to the FullMAC driver, and the FullMAC driver is free to make WlanFullmacImplIfc
3096    /// requests to the platform. The platform may continue making WlanFullmacImpl requests until
3097    /// the WlanFullmacImpl server unbinds.
3098    ///
3099    /// Common errors include:
3100    ///   - `ZX_ERR_ALREADY_BOUND`: `Init` was already called on this FullMAC driver.
3101    Init {
3102        payload: WlanFullmacImplInitRequest,
3103        responder: WlanFullmacImpl_InitResponder,
3104    },
3105    /// Returns high-level information describing the state of the FullMAC driver.
3106    /// This is safe to call even before the call to WlanFullmacImpl::Start.
3107    Query {
3108        responder: WlanFullmacImpl_QueryResponder,
3109    },
3110    QuerySecuritySupport {
3111        responder: WlanFullmacImpl_QuerySecuritySupportResponder,
3112    },
3113    QuerySpectrumManagementSupport {
3114        responder: WlanFullmacImpl_QuerySpectrumManagementSupportResponder,
3115    },
3116    QueryTelemetrySupport {
3117        responder: WlanFullmacImpl_QueryTelemetrySupportResponder,
3118    },
3119    QueryApfPacketFilterSupport {
3120        responder: WlanFullmacImpl_QueryApfPacketFilterSupportResponder,
3121    },
3122    QueryRssiMonitorSupport {
3123        responder: WlanFullmacImpl_QueryRssiMonitorSupportResponder,
3124    },
3125    StartScan {
3126        payload: WlanFullmacImplStartScanRequest,
3127        responder: WlanFullmacImpl_StartScanResponder,
3128    },
3129    /// Starts scheduled scanning.
3130    StartScheduledScan {
3131        payload: WlanFullmacImplStartScheduledScanRequest,
3132        responder: WlanFullmacImpl_StartScheduledScanResponder,
3133    },
3134    /// Stops scheduled scanning.
3135    ///
3136    /// The successful return value indicates that the scan has been stopped.
3137    /// The driver will NOT send an `OnScheduledScanStoppedByFirmware` event in response to this call.
3138    /// `OnScheduledScanStoppedByFirmware` is reserved for firmware-initiated stops or errors.
3139    StopScheduledScan {
3140        payload: WlanFullmacImplStopScheduledScanRequest,
3141        responder: WlanFullmacImpl_StopScheduledScanResponder,
3142    },
3143    /// Returns the transaction IDs of any currently active scheduled scans.
3144    GetScheduledScanEnabled {
3145        responder: WlanFullmacImpl_GetScheduledScanEnabledResponder,
3146    },
3147    Connect {
3148        payload: WlanFullmacImplConnectRequest,
3149        responder: WlanFullmacImpl_ConnectResponder,
3150    },
3151    Reconnect {
3152        payload: WlanFullmacImplReconnectRequest,
3153        responder: WlanFullmacImpl_ReconnectResponder,
3154    },
3155    /// Initiate a roam attempt, which moves association to a different BSS within the ESS.
3156    Roam {
3157        payload: WlanFullmacImplRoamRequest,
3158        responder: WlanFullmacImpl_RoamResponder,
3159    },
3160    AuthResp {
3161        payload: WlanFullmacImplAuthRespRequest,
3162        responder: WlanFullmacImpl_AuthRespResponder,
3163    },
3164    Deauth {
3165        payload: WlanFullmacImplDeauthRequest,
3166        responder: WlanFullmacImpl_DeauthResponder,
3167    },
3168    AssocResp {
3169        payload: WlanFullmacImplAssocRespRequest,
3170        responder: WlanFullmacImpl_AssocRespResponder,
3171    },
3172    Disassoc {
3173        payload: WlanFullmacImplDisassocRequest,
3174        responder: WlanFullmacImpl_DisassocResponder,
3175    },
3176    StartBss {
3177        payload: WlanFullmacImplStartBssRequest,
3178        responder: WlanFullmacImpl_StartBssResponder,
3179    },
3180    StopBss {
3181        payload: WlanFullmacImplStopBssRequest,
3182        responder: WlanFullmacImpl_StopBssResponder,
3183    },
3184    /// Sets security keys for a connection. This is typically called after a successful key
3185    /// exchange.
3186    ///
3187    /// Note that the platform assumes that the driver will automatically delete keys on a
3188    /// disconnect or key rotation.
3189    SetKeys {
3190        payload: WlanFullmacImplSetKeysRequest,
3191        responder: WlanFullmacImpl_SetKeysResponder,
3192    },
3193    EapolTx {
3194        payload: WlanFullmacImplEapolTxRequest,
3195        responder: WlanFullmacImpl_EapolTxResponder,
3196    },
3197    GetIfaceStats {
3198        responder: WlanFullmacImpl_GetIfaceStatsResponder,
3199    },
3200    GetIfaceHistogramStats {
3201        responder: WlanFullmacImpl_GetIfaceHistogramStatsResponder,
3202    },
3203    GetSignalReport {
3204        responder: WlanFullmacImpl_GetSignalReportResponder,
3205    },
3206    /// Informs the driver of the result of an SAE handshake.
3207    SaeHandshakeResp {
3208        payload: WlanFullmacImplSaeHandshakeRespRequest,
3209        responder: WlanFullmacImpl_SaeHandshakeRespResponder,
3210    },
3211    /// Transmit an SAE authentication frame.
3212    SaeFrameTx {
3213        frame: SaeFrame,
3214        responder: WlanFullmacImpl_SaeFrameTxResponder,
3215    },
3216    WmmStatusReq {
3217        responder: WlanFullmacImpl_WmmStatusReqResponder,
3218    },
3219    OnLinkStateChanged {
3220        payload: WlanFullmacImplOnLinkStateChangedRequest,
3221        responder: WlanFullmacImpl_OnLinkStateChangedResponder,
3222    },
3223    /// Sets the MAC address for the interface, which may be retrieved via the Query() method. To
3224    /// reset to the default/factory MAC address, use the Query() method to retrieve the `factory_addr`,
3225    /// and pass that value to this method.
3226    SetMacAddress {
3227        mac_addr: [u8; 6],
3228        responder: WlanFullmacImpl_SetMacAddressResponder,
3229    },
3230    /// Installs an APF program, replacing an existing program if present. This method does not
3231    /// enable the program.
3232    InstallApfPacketFilter {
3233        payload: WlanFullmacImplInstallApfPacketFilterRequest,
3234        responder: WlanFullmacImpl_InstallApfPacketFilterResponder,
3235    },
3236    /// Fetches a consistent snapshot of the entire APF program and working
3237    /// memory buffer and returns it to the host. The returned buffer contains
3238    /// both code and data. Its length must match the most recently returned
3239    /// QueryPacketFilterSupport().max_filter_length.
3240    ///
3241    /// While the snapshot is being fetched, the APF interpreter must not execute
3242    /// and all incoming packets must be passed to the host as if there was no
3243    /// APF program installed.
3244    ReadApfPacketFilterData {
3245        responder: WlanFullmacImpl_ReadApfPacketFilterDataResponder,
3246    },
3247    SetApfPacketFilterEnabled {
3248        payload: WlanFullmacImplSetApfPacketFilterEnabledRequest,
3249        responder: WlanFullmacImpl_SetApfPacketFilterEnabledResponder,
3250    },
3251    GetApfPacketFilterEnabled {
3252        responder: WlanFullmacImpl_GetApfPacketFilterEnabledResponder,
3253    },
3254    /// Configures a monitoring threshold for connection RSSI.
3255    ///
3256    /// When an RSSI is detected less than `min_rssi_dbm` or above `max_rssi_dbm`
3257    /// it is reported by WlanFullmacImplIfc::OnRssiThresholdBreached.
3258    ///
3259    /// Calling StartRssiMonitor multiple times will replace the monitoring
3260    /// threshold with the latest provided values.
3261    ///
3262    /// RSSI monitoring halts when StopRssiMonitor is called, or automatically
3263    /// on connection loss.
3264    StartRssiMonitor {
3265        payload: WlanFullmacImplStartRssiMonitorRequest,
3266        responder: WlanFullmacImpl_StartRssiMonitorResponder,
3267    },
3268    StopRssiMonitor {
3269        responder: WlanFullmacImpl_StopRssiMonitorResponder,
3270    },
3271    /// An interaction was received which does not match any known method.
3272    #[non_exhaustive]
3273    _UnknownMethod {
3274        /// Ordinal of the method that was called.
3275        ordinal: u64,
3276        control_handle: WlanFullmacImpl_ControlHandle,
3277        method_type: fidl::MethodType,
3278    },
3279}
3280
3281impl WlanFullmacImpl_Request {
3282    #[allow(irrefutable_let_patterns)]
3283    pub fn into_init(self) -> Option<(WlanFullmacImplInitRequest, WlanFullmacImpl_InitResponder)> {
3284        if let WlanFullmacImpl_Request::Init { payload, responder } = self {
3285            Some((payload, responder))
3286        } else {
3287            None
3288        }
3289    }
3290
3291    #[allow(irrefutable_let_patterns)]
3292    pub fn into_query(self) -> Option<(WlanFullmacImpl_QueryResponder)> {
3293        if let WlanFullmacImpl_Request::Query { responder } = self {
3294            Some((responder))
3295        } else {
3296            None
3297        }
3298    }
3299
3300    #[allow(irrefutable_let_patterns)]
3301    pub fn into_query_security_support(
3302        self,
3303    ) -> Option<(WlanFullmacImpl_QuerySecuritySupportResponder)> {
3304        if let WlanFullmacImpl_Request::QuerySecuritySupport { responder } = self {
3305            Some((responder))
3306        } else {
3307            None
3308        }
3309    }
3310
3311    #[allow(irrefutable_let_patterns)]
3312    pub fn into_query_spectrum_management_support(
3313        self,
3314    ) -> Option<(WlanFullmacImpl_QuerySpectrumManagementSupportResponder)> {
3315        if let WlanFullmacImpl_Request::QuerySpectrumManagementSupport { responder } = self {
3316            Some((responder))
3317        } else {
3318            None
3319        }
3320    }
3321
3322    #[allow(irrefutable_let_patterns)]
3323    pub fn into_query_telemetry_support(
3324        self,
3325    ) -> Option<(WlanFullmacImpl_QueryTelemetrySupportResponder)> {
3326        if let WlanFullmacImpl_Request::QueryTelemetrySupport { responder } = self {
3327            Some((responder))
3328        } else {
3329            None
3330        }
3331    }
3332
3333    #[allow(irrefutable_let_patterns)]
3334    pub fn into_query_apf_packet_filter_support(
3335        self,
3336    ) -> Option<(WlanFullmacImpl_QueryApfPacketFilterSupportResponder)> {
3337        if let WlanFullmacImpl_Request::QueryApfPacketFilterSupport { responder } = self {
3338            Some((responder))
3339        } else {
3340            None
3341        }
3342    }
3343
3344    #[allow(irrefutable_let_patterns)]
3345    pub fn into_query_rssi_monitor_support(
3346        self,
3347    ) -> Option<(WlanFullmacImpl_QueryRssiMonitorSupportResponder)> {
3348        if let WlanFullmacImpl_Request::QueryRssiMonitorSupport { responder } = self {
3349            Some((responder))
3350        } else {
3351            None
3352        }
3353    }
3354
3355    #[allow(irrefutable_let_patterns)]
3356    pub fn into_start_scan(
3357        self,
3358    ) -> Option<(WlanFullmacImplStartScanRequest, WlanFullmacImpl_StartScanResponder)> {
3359        if let WlanFullmacImpl_Request::StartScan { payload, responder } = self {
3360            Some((payload, responder))
3361        } else {
3362            None
3363        }
3364    }
3365
3366    #[allow(irrefutable_let_patterns)]
3367    pub fn into_start_scheduled_scan(
3368        self,
3369    ) -> Option<(
3370        WlanFullmacImplStartScheduledScanRequest,
3371        WlanFullmacImpl_StartScheduledScanResponder,
3372    )> {
3373        if let WlanFullmacImpl_Request::StartScheduledScan { payload, responder } = self {
3374            Some((payload, responder))
3375        } else {
3376            None
3377        }
3378    }
3379
3380    #[allow(irrefutable_let_patterns)]
3381    pub fn into_stop_scheduled_scan(
3382        self,
3383    ) -> Option<(WlanFullmacImplStopScheduledScanRequest, WlanFullmacImpl_StopScheduledScanResponder)>
3384    {
3385        if let WlanFullmacImpl_Request::StopScheduledScan { payload, responder } = self {
3386            Some((payload, responder))
3387        } else {
3388            None
3389        }
3390    }
3391
3392    #[allow(irrefutable_let_patterns)]
3393    pub fn into_get_scheduled_scan_enabled(
3394        self,
3395    ) -> Option<(WlanFullmacImpl_GetScheduledScanEnabledResponder)> {
3396        if let WlanFullmacImpl_Request::GetScheduledScanEnabled { responder } = self {
3397            Some((responder))
3398        } else {
3399            None
3400        }
3401    }
3402
3403    #[allow(irrefutable_let_patterns)]
3404    pub fn into_connect(
3405        self,
3406    ) -> Option<(WlanFullmacImplConnectRequest, WlanFullmacImpl_ConnectResponder)> {
3407        if let WlanFullmacImpl_Request::Connect { payload, responder } = self {
3408            Some((payload, responder))
3409        } else {
3410            None
3411        }
3412    }
3413
3414    #[allow(irrefutable_let_patterns)]
3415    pub fn into_reconnect(
3416        self,
3417    ) -> Option<(WlanFullmacImplReconnectRequest, WlanFullmacImpl_ReconnectResponder)> {
3418        if let WlanFullmacImpl_Request::Reconnect { payload, responder } = self {
3419            Some((payload, responder))
3420        } else {
3421            None
3422        }
3423    }
3424
3425    #[allow(irrefutable_let_patterns)]
3426    pub fn into_roam(self) -> Option<(WlanFullmacImplRoamRequest, WlanFullmacImpl_RoamResponder)> {
3427        if let WlanFullmacImpl_Request::Roam { payload, responder } = self {
3428            Some((payload, responder))
3429        } else {
3430            None
3431        }
3432    }
3433
3434    #[allow(irrefutable_let_patterns)]
3435    pub fn into_auth_resp(
3436        self,
3437    ) -> Option<(WlanFullmacImplAuthRespRequest, WlanFullmacImpl_AuthRespResponder)> {
3438        if let WlanFullmacImpl_Request::AuthResp { payload, responder } = self {
3439            Some((payload, responder))
3440        } else {
3441            None
3442        }
3443    }
3444
3445    #[allow(irrefutable_let_patterns)]
3446    pub fn into_deauth(
3447        self,
3448    ) -> Option<(WlanFullmacImplDeauthRequest, WlanFullmacImpl_DeauthResponder)> {
3449        if let WlanFullmacImpl_Request::Deauth { payload, responder } = self {
3450            Some((payload, responder))
3451        } else {
3452            None
3453        }
3454    }
3455
3456    #[allow(irrefutable_let_patterns)]
3457    pub fn into_assoc_resp(
3458        self,
3459    ) -> Option<(WlanFullmacImplAssocRespRequest, WlanFullmacImpl_AssocRespResponder)> {
3460        if let WlanFullmacImpl_Request::AssocResp { payload, responder } = self {
3461            Some((payload, responder))
3462        } else {
3463            None
3464        }
3465    }
3466
3467    #[allow(irrefutable_let_patterns)]
3468    pub fn into_disassoc(
3469        self,
3470    ) -> Option<(WlanFullmacImplDisassocRequest, WlanFullmacImpl_DisassocResponder)> {
3471        if let WlanFullmacImpl_Request::Disassoc { payload, responder } = self {
3472            Some((payload, responder))
3473        } else {
3474            None
3475        }
3476    }
3477
3478    #[allow(irrefutable_let_patterns)]
3479    pub fn into_start_bss(
3480        self,
3481    ) -> Option<(WlanFullmacImplStartBssRequest, WlanFullmacImpl_StartBssResponder)> {
3482        if let WlanFullmacImpl_Request::StartBss { payload, responder } = self {
3483            Some((payload, responder))
3484        } else {
3485            None
3486        }
3487    }
3488
3489    #[allow(irrefutable_let_patterns)]
3490    pub fn into_stop_bss(
3491        self,
3492    ) -> Option<(WlanFullmacImplStopBssRequest, WlanFullmacImpl_StopBssResponder)> {
3493        if let WlanFullmacImpl_Request::StopBss { payload, responder } = self {
3494            Some((payload, responder))
3495        } else {
3496            None
3497        }
3498    }
3499
3500    #[allow(irrefutable_let_patterns)]
3501    pub fn into_set_keys(
3502        self,
3503    ) -> Option<(WlanFullmacImplSetKeysRequest, WlanFullmacImpl_SetKeysResponder)> {
3504        if let WlanFullmacImpl_Request::SetKeys { payload, responder } = self {
3505            Some((payload, responder))
3506        } else {
3507            None
3508        }
3509    }
3510
3511    #[allow(irrefutable_let_patterns)]
3512    pub fn into_eapol_tx(
3513        self,
3514    ) -> Option<(WlanFullmacImplEapolTxRequest, WlanFullmacImpl_EapolTxResponder)> {
3515        if let WlanFullmacImpl_Request::EapolTx { payload, responder } = self {
3516            Some((payload, responder))
3517        } else {
3518            None
3519        }
3520    }
3521
3522    #[allow(irrefutable_let_patterns)]
3523    pub fn into_get_iface_stats(self) -> Option<(WlanFullmacImpl_GetIfaceStatsResponder)> {
3524        if let WlanFullmacImpl_Request::GetIfaceStats { responder } = self {
3525            Some((responder))
3526        } else {
3527            None
3528        }
3529    }
3530
3531    #[allow(irrefutable_let_patterns)]
3532    pub fn into_get_iface_histogram_stats(
3533        self,
3534    ) -> Option<(WlanFullmacImpl_GetIfaceHistogramStatsResponder)> {
3535        if let WlanFullmacImpl_Request::GetIfaceHistogramStats { responder } = self {
3536            Some((responder))
3537        } else {
3538            None
3539        }
3540    }
3541
3542    #[allow(irrefutable_let_patterns)]
3543    pub fn into_get_signal_report(self) -> Option<(WlanFullmacImpl_GetSignalReportResponder)> {
3544        if let WlanFullmacImpl_Request::GetSignalReport { responder } = self {
3545            Some((responder))
3546        } else {
3547            None
3548        }
3549    }
3550
3551    #[allow(irrefutable_let_patterns)]
3552    pub fn into_sae_handshake_resp(
3553        self,
3554    ) -> Option<(WlanFullmacImplSaeHandshakeRespRequest, WlanFullmacImpl_SaeHandshakeRespResponder)>
3555    {
3556        if let WlanFullmacImpl_Request::SaeHandshakeResp { payload, responder } = self {
3557            Some((payload, responder))
3558        } else {
3559            None
3560        }
3561    }
3562
3563    #[allow(irrefutable_let_patterns)]
3564    pub fn into_sae_frame_tx(self) -> Option<(SaeFrame, WlanFullmacImpl_SaeFrameTxResponder)> {
3565        if let WlanFullmacImpl_Request::SaeFrameTx { frame, responder } = self {
3566            Some((frame, responder))
3567        } else {
3568            None
3569        }
3570    }
3571
3572    #[allow(irrefutable_let_patterns)]
3573    pub fn into_wmm_status_req(self) -> Option<(WlanFullmacImpl_WmmStatusReqResponder)> {
3574        if let WlanFullmacImpl_Request::WmmStatusReq { responder } = self {
3575            Some((responder))
3576        } else {
3577            None
3578        }
3579    }
3580
3581    #[allow(irrefutable_let_patterns)]
3582    pub fn into_on_link_state_changed(
3583        self,
3584    ) -> Option<(
3585        WlanFullmacImplOnLinkStateChangedRequest,
3586        WlanFullmacImpl_OnLinkStateChangedResponder,
3587    )> {
3588        if let WlanFullmacImpl_Request::OnLinkStateChanged { payload, responder } = self {
3589            Some((payload, responder))
3590        } else {
3591            None
3592        }
3593    }
3594
3595    #[allow(irrefutable_let_patterns)]
3596    pub fn into_set_mac_address(self) -> Option<([u8; 6], WlanFullmacImpl_SetMacAddressResponder)> {
3597        if let WlanFullmacImpl_Request::SetMacAddress { mac_addr, responder } = self {
3598            Some((mac_addr, responder))
3599        } else {
3600            None
3601        }
3602    }
3603
3604    #[allow(irrefutable_let_patterns)]
3605    pub fn into_install_apf_packet_filter(
3606        self,
3607    ) -> Option<(
3608        WlanFullmacImplInstallApfPacketFilterRequest,
3609        WlanFullmacImpl_InstallApfPacketFilterResponder,
3610    )> {
3611        if let WlanFullmacImpl_Request::InstallApfPacketFilter { payload, responder } = self {
3612            Some((payload, responder))
3613        } else {
3614            None
3615        }
3616    }
3617
3618    #[allow(irrefutable_let_patterns)]
3619    pub fn into_read_apf_packet_filter_data(
3620        self,
3621    ) -> Option<(WlanFullmacImpl_ReadApfPacketFilterDataResponder)> {
3622        if let WlanFullmacImpl_Request::ReadApfPacketFilterData { responder } = self {
3623            Some((responder))
3624        } else {
3625            None
3626        }
3627    }
3628
3629    #[allow(irrefutable_let_patterns)]
3630    pub fn into_set_apf_packet_filter_enabled(
3631        self,
3632    ) -> Option<(
3633        WlanFullmacImplSetApfPacketFilterEnabledRequest,
3634        WlanFullmacImpl_SetApfPacketFilterEnabledResponder,
3635    )> {
3636        if let WlanFullmacImpl_Request::SetApfPacketFilterEnabled { payload, responder } = self {
3637            Some((payload, responder))
3638        } else {
3639            None
3640        }
3641    }
3642
3643    #[allow(irrefutable_let_patterns)]
3644    pub fn into_get_apf_packet_filter_enabled(
3645        self,
3646    ) -> Option<(WlanFullmacImpl_GetApfPacketFilterEnabledResponder)> {
3647        if let WlanFullmacImpl_Request::GetApfPacketFilterEnabled { responder } = self {
3648            Some((responder))
3649        } else {
3650            None
3651        }
3652    }
3653
3654    #[allow(irrefutable_let_patterns)]
3655    pub fn into_start_rssi_monitor(
3656        self,
3657    ) -> Option<(WlanFullmacImplStartRssiMonitorRequest, WlanFullmacImpl_StartRssiMonitorResponder)>
3658    {
3659        if let WlanFullmacImpl_Request::StartRssiMonitor { payload, responder } = self {
3660            Some((payload, responder))
3661        } else {
3662            None
3663        }
3664    }
3665
3666    #[allow(irrefutable_let_patterns)]
3667    pub fn into_stop_rssi_monitor(self) -> Option<(WlanFullmacImpl_StopRssiMonitorResponder)> {
3668        if let WlanFullmacImpl_Request::StopRssiMonitor { responder } = self {
3669            Some((responder))
3670        } else {
3671            None
3672        }
3673    }
3674
3675    /// Name of the method defined in FIDL
3676    pub fn method_name(&self) -> &'static str {
3677        match *self {
3678            WlanFullmacImpl_Request::Init { .. } => "init",
3679            WlanFullmacImpl_Request::Query { .. } => "query",
3680            WlanFullmacImpl_Request::QuerySecuritySupport { .. } => "query_security_support",
3681            WlanFullmacImpl_Request::QuerySpectrumManagementSupport { .. } => {
3682                "query_spectrum_management_support"
3683            }
3684            WlanFullmacImpl_Request::QueryTelemetrySupport { .. } => "query_telemetry_support",
3685            WlanFullmacImpl_Request::QueryApfPacketFilterSupport { .. } => {
3686                "query_apf_packet_filter_support"
3687            }
3688            WlanFullmacImpl_Request::QueryRssiMonitorSupport { .. } => "query_rssi_monitor_support",
3689            WlanFullmacImpl_Request::StartScan { .. } => "start_scan",
3690            WlanFullmacImpl_Request::StartScheduledScan { .. } => "start_scheduled_scan",
3691            WlanFullmacImpl_Request::StopScheduledScan { .. } => "stop_scheduled_scan",
3692            WlanFullmacImpl_Request::GetScheduledScanEnabled { .. } => "get_scheduled_scan_enabled",
3693            WlanFullmacImpl_Request::Connect { .. } => "connect",
3694            WlanFullmacImpl_Request::Reconnect { .. } => "reconnect",
3695            WlanFullmacImpl_Request::Roam { .. } => "roam",
3696            WlanFullmacImpl_Request::AuthResp { .. } => "auth_resp",
3697            WlanFullmacImpl_Request::Deauth { .. } => "deauth",
3698            WlanFullmacImpl_Request::AssocResp { .. } => "assoc_resp",
3699            WlanFullmacImpl_Request::Disassoc { .. } => "disassoc",
3700            WlanFullmacImpl_Request::StartBss { .. } => "start_bss",
3701            WlanFullmacImpl_Request::StopBss { .. } => "stop_bss",
3702            WlanFullmacImpl_Request::SetKeys { .. } => "set_keys",
3703            WlanFullmacImpl_Request::EapolTx { .. } => "eapol_tx",
3704            WlanFullmacImpl_Request::GetIfaceStats { .. } => "get_iface_stats",
3705            WlanFullmacImpl_Request::GetIfaceHistogramStats { .. } => "get_iface_histogram_stats",
3706            WlanFullmacImpl_Request::GetSignalReport { .. } => "get_signal_report",
3707            WlanFullmacImpl_Request::SaeHandshakeResp { .. } => "sae_handshake_resp",
3708            WlanFullmacImpl_Request::SaeFrameTx { .. } => "sae_frame_tx",
3709            WlanFullmacImpl_Request::WmmStatusReq { .. } => "wmm_status_req",
3710            WlanFullmacImpl_Request::OnLinkStateChanged { .. } => "on_link_state_changed",
3711            WlanFullmacImpl_Request::SetMacAddress { .. } => "set_mac_address",
3712            WlanFullmacImpl_Request::InstallApfPacketFilter { .. } => "install_apf_packet_filter",
3713            WlanFullmacImpl_Request::ReadApfPacketFilterData { .. } => {
3714                "read_apf_packet_filter_data"
3715            }
3716            WlanFullmacImpl_Request::SetApfPacketFilterEnabled { .. } => {
3717                "set_apf_packet_filter_enabled"
3718            }
3719            WlanFullmacImpl_Request::GetApfPacketFilterEnabled { .. } => {
3720                "get_apf_packet_filter_enabled"
3721            }
3722            WlanFullmacImpl_Request::StartRssiMonitor { .. } => "start_rssi_monitor",
3723            WlanFullmacImpl_Request::StopRssiMonitor { .. } => "stop_rssi_monitor",
3724            WlanFullmacImpl_Request::_UnknownMethod {
3725                method_type: fidl::MethodType::OneWay,
3726                ..
3727            } => "unknown one-way method",
3728            WlanFullmacImpl_Request::_UnknownMethod {
3729                method_type: fidl::MethodType::TwoWay,
3730                ..
3731            } => "unknown two-way method",
3732        }
3733    }
3734}
3735
3736#[derive(Debug, Clone)]
3737pub struct WlanFullmacImpl_ControlHandle {
3738    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
3739}
3740
3741impl WlanFullmacImpl_ControlHandle {
3742    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
3743        self.inner.shutdown_with_epitaph(status.into())
3744    }
3745}
3746
3747impl fidl::endpoints::ControlHandle for WlanFullmacImpl_ControlHandle {
3748    fn shutdown(&self) {
3749        self.inner.shutdown()
3750    }
3751
3752    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
3753        self.inner.shutdown_with_epitaph(status)
3754    }
3755
3756    fn is_closed(&self) -> bool {
3757        self.inner.channel().is_closed()
3758    }
3759    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
3760        self.inner.channel().on_closed()
3761    }
3762
3763    #[cfg(target_os = "fuchsia")]
3764    fn signal_peer(
3765        &self,
3766        clear_mask: zx::Signals,
3767        set_mask: zx::Signals,
3768    ) -> Result<(), zx_status::Status> {
3769        use fidl::Peered;
3770        self.inner.channel().signal_peer(clear_mask, set_mask)
3771    }
3772}
3773
3774impl WlanFullmacImpl_ControlHandle {}
3775
3776#[must_use = "FIDL methods require a response to be sent"]
3777#[derive(Debug)]
3778pub struct WlanFullmacImpl_InitResponder {
3779    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
3780    tx_id: u32,
3781}
3782
3783/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
3784/// if the responder is dropped without sending a response, so that the client
3785/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3786impl std::ops::Drop for WlanFullmacImpl_InitResponder {
3787    fn drop(&mut self) {
3788        self.control_handle.shutdown();
3789        // Safety: drops once, never accessed again
3790        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3791    }
3792}
3793
3794impl fidl::endpoints::Responder for WlanFullmacImpl_InitResponder {
3795    type ControlHandle = WlanFullmacImpl_ControlHandle;
3796
3797    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
3798        &self.control_handle
3799    }
3800
3801    fn drop_without_shutdown(mut self) {
3802        // Safety: drops once, never accessed again due to mem::forget
3803        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3804        // Prevent Drop from running (which would shut down the channel)
3805        std::mem::forget(self);
3806    }
3807}
3808
3809impl WlanFullmacImpl_InitResponder {
3810    /// Sends a response to the FIDL transaction.
3811    ///
3812    /// Sets the channel to shutdown if an error occurs.
3813    pub fn send(
3814        self,
3815        mut result: Result<WlanFullmacImplInitResponse, i32>,
3816    ) -> Result<(), fidl::Error> {
3817        let _result = self.send_raw(result);
3818        if _result.is_err() {
3819            self.control_handle.shutdown();
3820        }
3821        self.drop_without_shutdown();
3822        _result
3823    }
3824
3825    /// Similar to "send" but does not shutdown the channel if an error occurs.
3826    pub fn send_no_shutdown_on_err(
3827        self,
3828        mut result: Result<WlanFullmacImplInitResponse, i32>,
3829    ) -> Result<(), fidl::Error> {
3830        let _result = self.send_raw(result);
3831        self.drop_without_shutdown();
3832        _result
3833    }
3834
3835    fn send_raw(
3836        &self,
3837        mut result: Result<WlanFullmacImplInitResponse, i32>,
3838    ) -> Result<(), fidl::Error> {
3839        self.control_handle
3840            .inner
3841            .send::<fidl::encoding::ResultType<WlanFullmacImplInitResponse, i32>>(
3842                result.as_mut().map_err(|e| *e),
3843                self.tx_id,
3844                0x593dfb6cb3f0f1aa,
3845                fidl::encoding::DynamicFlags::empty(),
3846            )
3847    }
3848}
3849
3850#[must_use = "FIDL methods require a response to be sent"]
3851#[derive(Debug)]
3852pub struct WlanFullmacImpl_QueryResponder {
3853    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
3854    tx_id: u32,
3855}
3856
3857/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
3858/// if the responder is dropped without sending a response, so that the client
3859/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3860impl std::ops::Drop for WlanFullmacImpl_QueryResponder {
3861    fn drop(&mut self) {
3862        self.control_handle.shutdown();
3863        // Safety: drops once, never accessed again
3864        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3865    }
3866}
3867
3868impl fidl::endpoints::Responder for WlanFullmacImpl_QueryResponder {
3869    type ControlHandle = WlanFullmacImpl_ControlHandle;
3870
3871    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
3872        &self.control_handle
3873    }
3874
3875    fn drop_without_shutdown(mut self) {
3876        // Safety: drops once, never accessed again due to mem::forget
3877        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3878        // Prevent Drop from running (which would shut down the channel)
3879        std::mem::forget(self);
3880    }
3881}
3882
3883impl WlanFullmacImpl_QueryResponder {
3884    /// Sends a response to the FIDL transaction.
3885    ///
3886    /// Sets the channel to shutdown if an error occurs.
3887    pub fn send(
3888        self,
3889        mut result: Result<&WlanFullmacImplQueryResponse, i32>,
3890    ) -> Result<(), fidl::Error> {
3891        let _result = self.send_raw(result);
3892        if _result.is_err() {
3893            self.control_handle.shutdown();
3894        }
3895        self.drop_without_shutdown();
3896        _result
3897    }
3898
3899    /// Similar to "send" but does not shutdown the channel if an error occurs.
3900    pub fn send_no_shutdown_on_err(
3901        self,
3902        mut result: Result<&WlanFullmacImplQueryResponse, i32>,
3903    ) -> Result<(), fidl::Error> {
3904        let _result = self.send_raw(result);
3905        self.drop_without_shutdown();
3906        _result
3907    }
3908
3909    fn send_raw(
3910        &self,
3911        mut result: Result<&WlanFullmacImplQueryResponse, i32>,
3912    ) -> Result<(), fidl::Error> {
3913        self.control_handle
3914            .inner
3915            .send::<fidl::encoding::ResultType<WlanFullmacImplQueryResponse, i32>>(
3916                result,
3917                self.tx_id,
3918                0x28ac65f9da3941d4,
3919                fidl::encoding::DynamicFlags::empty(),
3920            )
3921    }
3922}
3923
3924#[must_use = "FIDL methods require a response to be sent"]
3925#[derive(Debug)]
3926pub struct WlanFullmacImpl_QuerySecuritySupportResponder {
3927    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
3928    tx_id: u32,
3929}
3930
3931/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
3932/// if the responder is dropped without sending a response, so that the client
3933/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
3934impl std::ops::Drop for WlanFullmacImpl_QuerySecuritySupportResponder {
3935    fn drop(&mut self) {
3936        self.control_handle.shutdown();
3937        // Safety: drops once, never accessed again
3938        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3939    }
3940}
3941
3942impl fidl::endpoints::Responder for WlanFullmacImpl_QuerySecuritySupportResponder {
3943    type ControlHandle = WlanFullmacImpl_ControlHandle;
3944
3945    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
3946        &self.control_handle
3947    }
3948
3949    fn drop_without_shutdown(mut self) {
3950        // Safety: drops once, never accessed again due to mem::forget
3951        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
3952        // Prevent Drop from running (which would shut down the channel)
3953        std::mem::forget(self);
3954    }
3955}
3956
3957impl WlanFullmacImpl_QuerySecuritySupportResponder {
3958    /// Sends a response to the FIDL transaction.
3959    ///
3960    /// Sets the channel to shutdown if an error occurs.
3961    pub fn send(
3962        self,
3963        mut result: Result<&WlanFullmacImplQuerySecuritySupportResponse, i32>,
3964    ) -> Result<(), fidl::Error> {
3965        let _result = self.send_raw(result);
3966        if _result.is_err() {
3967            self.control_handle.shutdown();
3968        }
3969        self.drop_without_shutdown();
3970        _result
3971    }
3972
3973    /// Similar to "send" but does not shutdown the channel if an error occurs.
3974    pub fn send_no_shutdown_on_err(
3975        self,
3976        mut result: Result<&WlanFullmacImplQuerySecuritySupportResponse, i32>,
3977    ) -> Result<(), fidl::Error> {
3978        let _result = self.send_raw(result);
3979        self.drop_without_shutdown();
3980        _result
3981    }
3982
3983    fn send_raw(
3984        &self,
3985        mut result: Result<&WlanFullmacImplQuerySecuritySupportResponse, i32>,
3986    ) -> Result<(), fidl::Error> {
3987        self.control_handle.inner.send::<fidl::encoding::ResultType<
3988            WlanFullmacImplQuerySecuritySupportResponse,
3989            i32,
3990        >>(
3991            result,
3992            self.tx_id,
3993            0x11cf3fa6eeb93f84,
3994            fidl::encoding::DynamicFlags::empty(),
3995        )
3996    }
3997}
3998
3999#[must_use = "FIDL methods require a response to be sent"]
4000#[derive(Debug)]
4001pub struct WlanFullmacImpl_QuerySpectrumManagementSupportResponder {
4002    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4003    tx_id: u32,
4004}
4005
4006/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4007/// if the responder is dropped without sending a response, so that the client
4008/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4009impl std::ops::Drop for WlanFullmacImpl_QuerySpectrumManagementSupportResponder {
4010    fn drop(&mut self) {
4011        self.control_handle.shutdown();
4012        // Safety: drops once, never accessed again
4013        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4014    }
4015}
4016
4017impl fidl::endpoints::Responder for WlanFullmacImpl_QuerySpectrumManagementSupportResponder {
4018    type ControlHandle = WlanFullmacImpl_ControlHandle;
4019
4020    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4021        &self.control_handle
4022    }
4023
4024    fn drop_without_shutdown(mut self) {
4025        // Safety: drops once, never accessed again due to mem::forget
4026        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4027        // Prevent Drop from running (which would shut down the channel)
4028        std::mem::forget(self);
4029    }
4030}
4031
4032impl WlanFullmacImpl_QuerySpectrumManagementSupportResponder {
4033    /// Sends a response to the FIDL transaction.
4034    ///
4035    /// Sets the channel to shutdown if an error occurs.
4036    pub fn send(
4037        self,
4038        mut result: Result<&WlanFullmacImplQuerySpectrumManagementSupportResponse, i32>,
4039    ) -> Result<(), fidl::Error> {
4040        let _result = self.send_raw(result);
4041        if _result.is_err() {
4042            self.control_handle.shutdown();
4043        }
4044        self.drop_without_shutdown();
4045        _result
4046    }
4047
4048    /// Similar to "send" but does not shutdown the channel if an error occurs.
4049    pub fn send_no_shutdown_on_err(
4050        self,
4051        mut result: Result<&WlanFullmacImplQuerySpectrumManagementSupportResponse, i32>,
4052    ) -> Result<(), fidl::Error> {
4053        let _result = self.send_raw(result);
4054        self.drop_without_shutdown();
4055        _result
4056    }
4057
4058    fn send_raw(
4059        &self,
4060        mut result: Result<&WlanFullmacImplQuerySpectrumManagementSupportResponse, i32>,
4061    ) -> Result<(), fidl::Error> {
4062        self.control_handle.inner.send::<fidl::encoding::ResultType<
4063            WlanFullmacImplQuerySpectrumManagementSupportResponse,
4064            i32,
4065        >>(
4066            result,
4067            self.tx_id,
4068            0x22ae7551d855b83a,
4069            fidl::encoding::DynamicFlags::empty(),
4070        )
4071    }
4072}
4073
4074#[must_use = "FIDL methods require a response to be sent"]
4075#[derive(Debug)]
4076pub struct WlanFullmacImpl_QueryTelemetrySupportResponder {
4077    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4078    tx_id: u32,
4079}
4080
4081/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4082/// if the responder is dropped without sending a response, so that the client
4083/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4084impl std::ops::Drop for WlanFullmacImpl_QueryTelemetrySupportResponder {
4085    fn drop(&mut self) {
4086        self.control_handle.shutdown();
4087        // Safety: drops once, never accessed again
4088        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4089    }
4090}
4091
4092impl fidl::endpoints::Responder for WlanFullmacImpl_QueryTelemetrySupportResponder {
4093    type ControlHandle = WlanFullmacImpl_ControlHandle;
4094
4095    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4096        &self.control_handle
4097    }
4098
4099    fn drop_without_shutdown(mut self) {
4100        // Safety: drops once, never accessed again due to mem::forget
4101        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4102        // Prevent Drop from running (which would shut down the channel)
4103        std::mem::forget(self);
4104    }
4105}
4106
4107impl WlanFullmacImpl_QueryTelemetrySupportResponder {
4108    /// Sends a response to the FIDL transaction.
4109    ///
4110    /// Sets the channel to shutdown if an error occurs.
4111    pub fn send(
4112        self,
4113        mut result: Result<&WlanFullmacImplQueryTelemetrySupportResponse, i32>,
4114    ) -> Result<(), fidl::Error> {
4115        let _result = self.send_raw(result);
4116        if _result.is_err() {
4117            self.control_handle.shutdown();
4118        }
4119        self.drop_without_shutdown();
4120        _result
4121    }
4122
4123    /// Similar to "send" but does not shutdown the channel if an error occurs.
4124    pub fn send_no_shutdown_on_err(
4125        self,
4126        mut result: Result<&WlanFullmacImplQueryTelemetrySupportResponse, i32>,
4127    ) -> Result<(), fidl::Error> {
4128        let _result = self.send_raw(result);
4129        self.drop_without_shutdown();
4130        _result
4131    }
4132
4133    fn send_raw(
4134        &self,
4135        mut result: Result<&WlanFullmacImplQueryTelemetrySupportResponse, i32>,
4136    ) -> Result<(), fidl::Error> {
4137        self.control_handle.inner.send::<fidl::encoding::ResultType<
4138            WlanFullmacImplQueryTelemetrySupportResponse,
4139            i32,
4140        >>(
4141            result,
4142            self.tx_id,
4143            0x4561479ca560827f,
4144            fidl::encoding::DynamicFlags::empty(),
4145        )
4146    }
4147}
4148
4149#[must_use = "FIDL methods require a response to be sent"]
4150#[derive(Debug)]
4151pub struct WlanFullmacImpl_QueryApfPacketFilterSupportResponder {
4152    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4153    tx_id: u32,
4154}
4155
4156/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4157/// if the responder is dropped without sending a response, so that the client
4158/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4159impl std::ops::Drop for WlanFullmacImpl_QueryApfPacketFilterSupportResponder {
4160    fn drop(&mut self) {
4161        self.control_handle.shutdown();
4162        // Safety: drops once, never accessed again
4163        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4164    }
4165}
4166
4167impl fidl::endpoints::Responder for WlanFullmacImpl_QueryApfPacketFilterSupportResponder {
4168    type ControlHandle = WlanFullmacImpl_ControlHandle;
4169
4170    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4171        &self.control_handle
4172    }
4173
4174    fn drop_without_shutdown(mut self) {
4175        // Safety: drops once, never accessed again due to mem::forget
4176        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4177        // Prevent Drop from running (which would shut down the channel)
4178        std::mem::forget(self);
4179    }
4180}
4181
4182impl WlanFullmacImpl_QueryApfPacketFilterSupportResponder {
4183    /// Sends a response to the FIDL transaction.
4184    ///
4185    /// Sets the channel to shutdown if an error occurs.
4186    pub fn send(
4187        self,
4188        mut result: Result<&WlanFullmacImplQueryApfPacketFilterSupportResponse, i32>,
4189    ) -> Result<(), fidl::Error> {
4190        let _result = self.send_raw(result);
4191        if _result.is_err() {
4192            self.control_handle.shutdown();
4193        }
4194        self.drop_without_shutdown();
4195        _result
4196    }
4197
4198    /// Similar to "send" but does not shutdown the channel if an error occurs.
4199    pub fn send_no_shutdown_on_err(
4200        self,
4201        mut result: Result<&WlanFullmacImplQueryApfPacketFilterSupportResponse, i32>,
4202    ) -> Result<(), fidl::Error> {
4203        let _result = self.send_raw(result);
4204        self.drop_without_shutdown();
4205        _result
4206    }
4207
4208    fn send_raw(
4209        &self,
4210        mut result: Result<&WlanFullmacImplQueryApfPacketFilterSupportResponse, i32>,
4211    ) -> Result<(), fidl::Error> {
4212        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4213            WlanFullmacImplQueryApfPacketFilterSupportResponse,
4214            i32,
4215        >>(
4216            fidl::encoding::FlexibleResult::new(result),
4217            self.tx_id,
4218            0x6df8cdf0acd4dfad,
4219            fidl::encoding::DynamicFlags::FLEXIBLE,
4220        )
4221    }
4222}
4223
4224#[must_use = "FIDL methods require a response to be sent"]
4225#[derive(Debug)]
4226pub struct WlanFullmacImpl_QueryRssiMonitorSupportResponder {
4227    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4228    tx_id: u32,
4229}
4230
4231/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4232/// if the responder is dropped without sending a response, so that the client
4233/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4234impl std::ops::Drop for WlanFullmacImpl_QueryRssiMonitorSupportResponder {
4235    fn drop(&mut self) {
4236        self.control_handle.shutdown();
4237        // Safety: drops once, never accessed again
4238        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4239    }
4240}
4241
4242impl fidl::endpoints::Responder for WlanFullmacImpl_QueryRssiMonitorSupportResponder {
4243    type ControlHandle = WlanFullmacImpl_ControlHandle;
4244
4245    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4246        &self.control_handle
4247    }
4248
4249    fn drop_without_shutdown(mut self) {
4250        // Safety: drops once, never accessed again due to mem::forget
4251        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4252        // Prevent Drop from running (which would shut down the channel)
4253        std::mem::forget(self);
4254    }
4255}
4256
4257impl WlanFullmacImpl_QueryRssiMonitorSupportResponder {
4258    /// Sends a response to the FIDL transaction.
4259    ///
4260    /// Sets the channel to shutdown if an error occurs.
4261    pub fn send(
4262        self,
4263        mut result: Result<&WlanFullmacImplQueryRssiMonitorSupportResponse, i32>,
4264    ) -> Result<(), fidl::Error> {
4265        let _result = self.send_raw(result);
4266        if _result.is_err() {
4267            self.control_handle.shutdown();
4268        }
4269        self.drop_without_shutdown();
4270        _result
4271    }
4272
4273    /// Similar to "send" but does not shutdown the channel if an error occurs.
4274    pub fn send_no_shutdown_on_err(
4275        self,
4276        mut result: Result<&WlanFullmacImplQueryRssiMonitorSupportResponse, i32>,
4277    ) -> Result<(), fidl::Error> {
4278        let _result = self.send_raw(result);
4279        self.drop_without_shutdown();
4280        _result
4281    }
4282
4283    fn send_raw(
4284        &self,
4285        mut result: Result<&WlanFullmacImplQueryRssiMonitorSupportResponse, i32>,
4286    ) -> Result<(), fidl::Error> {
4287        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4288            WlanFullmacImplQueryRssiMonitorSupportResponse,
4289            i32,
4290        >>(
4291            fidl::encoding::FlexibleResult::new(result),
4292            self.tx_id,
4293            0x21d21e42d6aa61b5,
4294            fidl::encoding::DynamicFlags::FLEXIBLE,
4295        )
4296    }
4297}
4298
4299#[must_use = "FIDL methods require a response to be sent"]
4300#[derive(Debug)]
4301pub struct WlanFullmacImpl_StartScanResponder {
4302    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4303    tx_id: u32,
4304}
4305
4306/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4307/// if the responder is dropped without sending a response, so that the client
4308/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4309impl std::ops::Drop for WlanFullmacImpl_StartScanResponder {
4310    fn drop(&mut self) {
4311        self.control_handle.shutdown();
4312        // Safety: drops once, never accessed again
4313        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4314    }
4315}
4316
4317impl fidl::endpoints::Responder for WlanFullmacImpl_StartScanResponder {
4318    type ControlHandle = WlanFullmacImpl_ControlHandle;
4319
4320    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4321        &self.control_handle
4322    }
4323
4324    fn drop_without_shutdown(mut self) {
4325        // Safety: drops once, never accessed again due to mem::forget
4326        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4327        // Prevent Drop from running (which would shut down the channel)
4328        std::mem::forget(self);
4329    }
4330}
4331
4332impl WlanFullmacImpl_StartScanResponder {
4333    /// Sends a response to the FIDL transaction.
4334    ///
4335    /// Sets the channel to shutdown if an error occurs.
4336    pub fn send(self) -> Result<(), fidl::Error> {
4337        let _result = self.send_raw();
4338        if _result.is_err() {
4339            self.control_handle.shutdown();
4340        }
4341        self.drop_without_shutdown();
4342        _result
4343    }
4344
4345    /// Similar to "send" but does not shutdown the channel if an error occurs.
4346    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4347        let _result = self.send_raw();
4348        self.drop_without_shutdown();
4349        _result
4350    }
4351
4352    fn send_raw(&self) -> Result<(), fidl::Error> {
4353        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4354            (),
4355            self.tx_id,
4356            0x26c17bf595aa161c,
4357            fidl::encoding::DynamicFlags::empty(),
4358        )
4359    }
4360}
4361
4362#[must_use = "FIDL methods require a response to be sent"]
4363#[derive(Debug)]
4364pub struct WlanFullmacImpl_StartScheduledScanResponder {
4365    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4366    tx_id: u32,
4367}
4368
4369/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4370/// if the responder is dropped without sending a response, so that the client
4371/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4372impl std::ops::Drop for WlanFullmacImpl_StartScheduledScanResponder {
4373    fn drop(&mut self) {
4374        self.control_handle.shutdown();
4375        // Safety: drops once, never accessed again
4376        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4377    }
4378}
4379
4380impl fidl::endpoints::Responder for WlanFullmacImpl_StartScheduledScanResponder {
4381    type ControlHandle = WlanFullmacImpl_ControlHandle;
4382
4383    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4384        &self.control_handle
4385    }
4386
4387    fn drop_without_shutdown(mut self) {
4388        // Safety: drops once, never accessed again due to mem::forget
4389        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4390        // Prevent Drop from running (which would shut down the channel)
4391        std::mem::forget(self);
4392    }
4393}
4394
4395impl WlanFullmacImpl_StartScheduledScanResponder {
4396    /// Sends a response to the FIDL transaction.
4397    ///
4398    /// Sets the channel to shutdown if an error occurs.
4399    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4400        let _result = self.send_raw(result);
4401        if _result.is_err() {
4402            self.control_handle.shutdown();
4403        }
4404        self.drop_without_shutdown();
4405        _result
4406    }
4407
4408    /// Similar to "send" but does not shutdown the channel if an error occurs.
4409    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4410        let _result = self.send_raw(result);
4411        self.drop_without_shutdown();
4412        _result
4413    }
4414
4415    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4416        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4417            fidl::encoding::EmptyStruct,
4418            i32,
4419        >>(
4420            fidl::encoding::FlexibleResult::new(result),
4421            self.tx_id,
4422            0x67bb4356265682d2,
4423            fidl::encoding::DynamicFlags::FLEXIBLE,
4424        )
4425    }
4426}
4427
4428#[must_use = "FIDL methods require a response to be sent"]
4429#[derive(Debug)]
4430pub struct WlanFullmacImpl_StopScheduledScanResponder {
4431    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4432    tx_id: u32,
4433}
4434
4435/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4436/// if the responder is dropped without sending a response, so that the client
4437/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4438impl std::ops::Drop for WlanFullmacImpl_StopScheduledScanResponder {
4439    fn drop(&mut self) {
4440        self.control_handle.shutdown();
4441        // Safety: drops once, never accessed again
4442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4443    }
4444}
4445
4446impl fidl::endpoints::Responder for WlanFullmacImpl_StopScheduledScanResponder {
4447    type ControlHandle = WlanFullmacImpl_ControlHandle;
4448
4449    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4450        &self.control_handle
4451    }
4452
4453    fn drop_without_shutdown(mut self) {
4454        // Safety: drops once, never accessed again due to mem::forget
4455        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4456        // Prevent Drop from running (which would shut down the channel)
4457        std::mem::forget(self);
4458    }
4459}
4460
4461impl WlanFullmacImpl_StopScheduledScanResponder {
4462    /// Sends a response to the FIDL transaction.
4463    ///
4464    /// Sets the channel to shutdown if an error occurs.
4465    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4466        let _result = self.send_raw(result);
4467        if _result.is_err() {
4468            self.control_handle.shutdown();
4469        }
4470        self.drop_without_shutdown();
4471        _result
4472    }
4473
4474    /// Similar to "send" but does not shutdown the channel if an error occurs.
4475    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4476        let _result = self.send_raw(result);
4477        self.drop_without_shutdown();
4478        _result
4479    }
4480
4481    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
4482        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4483            fidl::encoding::EmptyStruct,
4484            i32,
4485        >>(
4486            fidl::encoding::FlexibleResult::new(result),
4487            self.tx_id,
4488            0x71bf2a03f2cdc10f,
4489            fidl::encoding::DynamicFlags::FLEXIBLE,
4490        )
4491    }
4492}
4493
4494#[must_use = "FIDL methods require a response to be sent"]
4495#[derive(Debug)]
4496pub struct WlanFullmacImpl_GetScheduledScanEnabledResponder {
4497    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4498    tx_id: u32,
4499}
4500
4501/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4502/// if the responder is dropped without sending a response, so that the client
4503/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4504impl std::ops::Drop for WlanFullmacImpl_GetScheduledScanEnabledResponder {
4505    fn drop(&mut self) {
4506        self.control_handle.shutdown();
4507        // Safety: drops once, never accessed again
4508        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4509    }
4510}
4511
4512impl fidl::endpoints::Responder for WlanFullmacImpl_GetScheduledScanEnabledResponder {
4513    type ControlHandle = WlanFullmacImpl_ControlHandle;
4514
4515    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4516        &self.control_handle
4517    }
4518
4519    fn drop_without_shutdown(mut self) {
4520        // Safety: drops once, never accessed again due to mem::forget
4521        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4522        // Prevent Drop from running (which would shut down the channel)
4523        std::mem::forget(self);
4524    }
4525}
4526
4527impl WlanFullmacImpl_GetScheduledScanEnabledResponder {
4528    /// Sends a response to the FIDL transaction.
4529    ///
4530    /// Sets the channel to shutdown if an error occurs.
4531    pub fn send(
4532        self,
4533        mut result: Result<&WlanFullmacImplGetScheduledScanEnabledResponse, i32>,
4534    ) -> Result<(), fidl::Error> {
4535        let _result = self.send_raw(result);
4536        if _result.is_err() {
4537            self.control_handle.shutdown();
4538        }
4539        self.drop_without_shutdown();
4540        _result
4541    }
4542
4543    /// Similar to "send" but does not shutdown the channel if an error occurs.
4544    pub fn send_no_shutdown_on_err(
4545        self,
4546        mut result: Result<&WlanFullmacImplGetScheduledScanEnabledResponse, i32>,
4547    ) -> Result<(), fidl::Error> {
4548        let _result = self.send_raw(result);
4549        self.drop_without_shutdown();
4550        _result
4551    }
4552
4553    fn send_raw(
4554        &self,
4555        mut result: Result<&WlanFullmacImplGetScheduledScanEnabledResponse, i32>,
4556    ) -> Result<(), fidl::Error> {
4557        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
4558            WlanFullmacImplGetScheduledScanEnabledResponse,
4559            i32,
4560        >>(
4561            fidl::encoding::FlexibleResult::new(result),
4562            self.tx_id,
4563            0x96be6f11648f198,
4564            fidl::encoding::DynamicFlags::FLEXIBLE,
4565        )
4566    }
4567}
4568
4569#[must_use = "FIDL methods require a response to be sent"]
4570#[derive(Debug)]
4571pub struct WlanFullmacImpl_ConnectResponder {
4572    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4573    tx_id: u32,
4574}
4575
4576/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4577/// if the responder is dropped without sending a response, so that the client
4578/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4579impl std::ops::Drop for WlanFullmacImpl_ConnectResponder {
4580    fn drop(&mut self) {
4581        self.control_handle.shutdown();
4582        // Safety: drops once, never accessed again
4583        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4584    }
4585}
4586
4587impl fidl::endpoints::Responder for WlanFullmacImpl_ConnectResponder {
4588    type ControlHandle = WlanFullmacImpl_ControlHandle;
4589
4590    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4591        &self.control_handle
4592    }
4593
4594    fn drop_without_shutdown(mut self) {
4595        // Safety: drops once, never accessed again due to mem::forget
4596        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4597        // Prevent Drop from running (which would shut down the channel)
4598        std::mem::forget(self);
4599    }
4600}
4601
4602impl WlanFullmacImpl_ConnectResponder {
4603    /// Sends a response to the FIDL transaction.
4604    ///
4605    /// Sets the channel to shutdown if an error occurs.
4606    pub fn send(self) -> Result<(), fidl::Error> {
4607        let _result = self.send_raw();
4608        if _result.is_err() {
4609            self.control_handle.shutdown();
4610        }
4611        self.drop_without_shutdown();
4612        _result
4613    }
4614
4615    /// Similar to "send" but does not shutdown the channel if an error occurs.
4616    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4617        let _result = self.send_raw();
4618        self.drop_without_shutdown();
4619        _result
4620    }
4621
4622    fn send_raw(&self) -> Result<(), fidl::Error> {
4623        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4624            (),
4625            self.tx_id,
4626            0x19eb0322efb07a76,
4627            fidl::encoding::DynamicFlags::empty(),
4628        )
4629    }
4630}
4631
4632#[must_use = "FIDL methods require a response to be sent"]
4633#[derive(Debug)]
4634pub struct WlanFullmacImpl_ReconnectResponder {
4635    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4636    tx_id: u32,
4637}
4638
4639/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4640/// if the responder is dropped without sending a response, so that the client
4641/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4642impl std::ops::Drop for WlanFullmacImpl_ReconnectResponder {
4643    fn drop(&mut self) {
4644        self.control_handle.shutdown();
4645        // Safety: drops once, never accessed again
4646        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4647    }
4648}
4649
4650impl fidl::endpoints::Responder for WlanFullmacImpl_ReconnectResponder {
4651    type ControlHandle = WlanFullmacImpl_ControlHandle;
4652
4653    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4654        &self.control_handle
4655    }
4656
4657    fn drop_without_shutdown(mut self) {
4658        // Safety: drops once, never accessed again due to mem::forget
4659        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4660        // Prevent Drop from running (which would shut down the channel)
4661        std::mem::forget(self);
4662    }
4663}
4664
4665impl WlanFullmacImpl_ReconnectResponder {
4666    /// Sends a response to the FIDL transaction.
4667    ///
4668    /// Sets the channel to shutdown if an error occurs.
4669    pub fn send(self) -> Result<(), fidl::Error> {
4670        let _result = self.send_raw();
4671        if _result.is_err() {
4672            self.control_handle.shutdown();
4673        }
4674        self.drop_without_shutdown();
4675        _result
4676    }
4677
4678    /// Similar to "send" but does not shutdown the channel if an error occurs.
4679    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4680        let _result = self.send_raw();
4681        self.drop_without_shutdown();
4682        _result
4683    }
4684
4685    fn send_raw(&self) -> Result<(), fidl::Error> {
4686        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4687            (),
4688            self.tx_id,
4689            0x474084c4ef19ee71,
4690            fidl::encoding::DynamicFlags::empty(),
4691        )
4692    }
4693}
4694
4695#[must_use = "FIDL methods require a response to be sent"]
4696#[derive(Debug)]
4697pub struct WlanFullmacImpl_RoamResponder {
4698    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4699    tx_id: u32,
4700}
4701
4702/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4703/// if the responder is dropped without sending a response, so that the client
4704/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4705impl std::ops::Drop for WlanFullmacImpl_RoamResponder {
4706    fn drop(&mut self) {
4707        self.control_handle.shutdown();
4708        // Safety: drops once, never accessed again
4709        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4710    }
4711}
4712
4713impl fidl::endpoints::Responder for WlanFullmacImpl_RoamResponder {
4714    type ControlHandle = WlanFullmacImpl_ControlHandle;
4715
4716    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4717        &self.control_handle
4718    }
4719
4720    fn drop_without_shutdown(mut self) {
4721        // Safety: drops once, never accessed again due to mem::forget
4722        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4723        // Prevent Drop from running (which would shut down the channel)
4724        std::mem::forget(self);
4725    }
4726}
4727
4728impl WlanFullmacImpl_RoamResponder {
4729    /// Sends a response to the FIDL transaction.
4730    ///
4731    /// Sets the channel to shutdown if an error occurs.
4732    pub fn send(self) -> Result<(), fidl::Error> {
4733        let _result = self.send_raw();
4734        if _result.is_err() {
4735            self.control_handle.shutdown();
4736        }
4737        self.drop_without_shutdown();
4738        _result
4739    }
4740
4741    /// Similar to "send" but does not shutdown the channel if an error occurs.
4742    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4743        let _result = self.send_raw();
4744        self.drop_without_shutdown();
4745        _result
4746    }
4747
4748    fn send_raw(&self) -> Result<(), fidl::Error> {
4749        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4750            (),
4751            self.tx_id,
4752            0x1e35dcc98b124b64,
4753            fidl::encoding::DynamicFlags::empty(),
4754        )
4755    }
4756}
4757
4758#[must_use = "FIDL methods require a response to be sent"]
4759#[derive(Debug)]
4760pub struct WlanFullmacImpl_AuthRespResponder {
4761    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4762    tx_id: u32,
4763}
4764
4765/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4766/// if the responder is dropped without sending a response, so that the client
4767/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4768impl std::ops::Drop for WlanFullmacImpl_AuthRespResponder {
4769    fn drop(&mut self) {
4770        self.control_handle.shutdown();
4771        // Safety: drops once, never accessed again
4772        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4773    }
4774}
4775
4776impl fidl::endpoints::Responder for WlanFullmacImpl_AuthRespResponder {
4777    type ControlHandle = WlanFullmacImpl_ControlHandle;
4778
4779    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4780        &self.control_handle
4781    }
4782
4783    fn drop_without_shutdown(mut self) {
4784        // Safety: drops once, never accessed again due to mem::forget
4785        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4786        // Prevent Drop from running (which would shut down the channel)
4787        std::mem::forget(self);
4788    }
4789}
4790
4791impl WlanFullmacImpl_AuthRespResponder {
4792    /// Sends a response to the FIDL transaction.
4793    ///
4794    /// Sets the channel to shutdown if an error occurs.
4795    pub fn send(self) -> Result<(), fidl::Error> {
4796        let _result = self.send_raw();
4797        if _result.is_err() {
4798            self.control_handle.shutdown();
4799        }
4800        self.drop_without_shutdown();
4801        _result
4802    }
4803
4804    /// Similar to "send" but does not shutdown the channel if an error occurs.
4805    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4806        let _result = self.send_raw();
4807        self.drop_without_shutdown();
4808        _result
4809    }
4810
4811    fn send_raw(&self) -> Result<(), fidl::Error> {
4812        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4813            (),
4814            self.tx_id,
4815            0x5f7ea24b44a4aaeb,
4816            fidl::encoding::DynamicFlags::empty(),
4817        )
4818    }
4819}
4820
4821#[must_use = "FIDL methods require a response to be sent"]
4822#[derive(Debug)]
4823pub struct WlanFullmacImpl_DeauthResponder {
4824    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4825    tx_id: u32,
4826}
4827
4828/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4829/// if the responder is dropped without sending a response, so that the client
4830/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4831impl std::ops::Drop for WlanFullmacImpl_DeauthResponder {
4832    fn drop(&mut self) {
4833        self.control_handle.shutdown();
4834        // Safety: drops once, never accessed again
4835        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4836    }
4837}
4838
4839impl fidl::endpoints::Responder for WlanFullmacImpl_DeauthResponder {
4840    type ControlHandle = WlanFullmacImpl_ControlHandle;
4841
4842    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4843        &self.control_handle
4844    }
4845
4846    fn drop_without_shutdown(mut self) {
4847        // Safety: drops once, never accessed again due to mem::forget
4848        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4849        // Prevent Drop from running (which would shut down the channel)
4850        std::mem::forget(self);
4851    }
4852}
4853
4854impl WlanFullmacImpl_DeauthResponder {
4855    /// Sends a response to the FIDL transaction.
4856    ///
4857    /// Sets the channel to shutdown if an error occurs.
4858    pub fn send(self) -> Result<(), fidl::Error> {
4859        let _result = self.send_raw();
4860        if _result.is_err() {
4861            self.control_handle.shutdown();
4862        }
4863        self.drop_without_shutdown();
4864        _result
4865    }
4866
4867    /// Similar to "send" but does not shutdown the channel if an error occurs.
4868    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4869        let _result = self.send_raw();
4870        self.drop_without_shutdown();
4871        _result
4872    }
4873
4874    fn send_raw(&self) -> Result<(), fidl::Error> {
4875        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4876            (),
4877            self.tx_id,
4878            0x112786eccbf12f37,
4879            fidl::encoding::DynamicFlags::empty(),
4880        )
4881    }
4882}
4883
4884#[must_use = "FIDL methods require a response to be sent"]
4885#[derive(Debug)]
4886pub struct WlanFullmacImpl_AssocRespResponder {
4887    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4888    tx_id: u32,
4889}
4890
4891/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4892/// if the responder is dropped without sending a response, so that the client
4893/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4894impl std::ops::Drop for WlanFullmacImpl_AssocRespResponder {
4895    fn drop(&mut self) {
4896        self.control_handle.shutdown();
4897        // Safety: drops once, never accessed again
4898        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4899    }
4900}
4901
4902impl fidl::endpoints::Responder for WlanFullmacImpl_AssocRespResponder {
4903    type ControlHandle = WlanFullmacImpl_ControlHandle;
4904
4905    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4906        &self.control_handle
4907    }
4908
4909    fn drop_without_shutdown(mut self) {
4910        // Safety: drops once, never accessed again due to mem::forget
4911        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4912        // Prevent Drop from running (which would shut down the channel)
4913        std::mem::forget(self);
4914    }
4915}
4916
4917impl WlanFullmacImpl_AssocRespResponder {
4918    /// Sends a response to the FIDL transaction.
4919    ///
4920    /// Sets the channel to shutdown if an error occurs.
4921    pub fn send(self) -> Result<(), fidl::Error> {
4922        let _result = self.send_raw();
4923        if _result.is_err() {
4924            self.control_handle.shutdown();
4925        }
4926        self.drop_without_shutdown();
4927        _result
4928    }
4929
4930    /// Similar to "send" but does not shutdown the channel if an error occurs.
4931    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4932        let _result = self.send_raw();
4933        self.drop_without_shutdown();
4934        _result
4935    }
4936
4937    fn send_raw(&self) -> Result<(), fidl::Error> {
4938        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
4939            (),
4940            self.tx_id,
4941            0x5022ce6b8eefec2f,
4942            fidl::encoding::DynamicFlags::empty(),
4943        )
4944    }
4945}
4946
4947#[must_use = "FIDL methods require a response to be sent"]
4948#[derive(Debug)]
4949pub struct WlanFullmacImpl_DisassocResponder {
4950    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
4951    tx_id: u32,
4952}
4953
4954/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
4955/// if the responder is dropped without sending a response, so that the client
4956/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
4957impl std::ops::Drop for WlanFullmacImpl_DisassocResponder {
4958    fn drop(&mut self) {
4959        self.control_handle.shutdown();
4960        // Safety: drops once, never accessed again
4961        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4962    }
4963}
4964
4965impl fidl::endpoints::Responder for WlanFullmacImpl_DisassocResponder {
4966    type ControlHandle = WlanFullmacImpl_ControlHandle;
4967
4968    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
4969        &self.control_handle
4970    }
4971
4972    fn drop_without_shutdown(mut self) {
4973        // Safety: drops once, never accessed again due to mem::forget
4974        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
4975        // Prevent Drop from running (which would shut down the channel)
4976        std::mem::forget(self);
4977    }
4978}
4979
4980impl WlanFullmacImpl_DisassocResponder {
4981    /// Sends a response to the FIDL transaction.
4982    ///
4983    /// Sets the channel to shutdown if an error occurs.
4984    pub fn send(self) -> Result<(), fidl::Error> {
4985        let _result = self.send_raw();
4986        if _result.is_err() {
4987            self.control_handle.shutdown();
4988        }
4989        self.drop_without_shutdown();
4990        _result
4991    }
4992
4993    /// Similar to "send" but does not shutdown the channel if an error occurs.
4994    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
4995        let _result = self.send_raw();
4996        self.drop_without_shutdown();
4997        _result
4998    }
4999
5000    fn send_raw(&self) -> Result<(), fidl::Error> {
5001        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5002            (),
5003            self.tx_id,
5004            0x9c0fc4e8de53e01,
5005            fidl::encoding::DynamicFlags::empty(),
5006        )
5007    }
5008}
5009
5010#[must_use = "FIDL methods require a response to be sent"]
5011#[derive(Debug)]
5012pub struct WlanFullmacImpl_StartBssResponder {
5013    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5014    tx_id: u32,
5015}
5016
5017/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5018/// if the responder is dropped without sending a response, so that the client
5019/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5020impl std::ops::Drop for WlanFullmacImpl_StartBssResponder {
5021    fn drop(&mut self) {
5022        self.control_handle.shutdown();
5023        // Safety: drops once, never accessed again
5024        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5025    }
5026}
5027
5028impl fidl::endpoints::Responder for WlanFullmacImpl_StartBssResponder {
5029    type ControlHandle = WlanFullmacImpl_ControlHandle;
5030
5031    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5032        &self.control_handle
5033    }
5034
5035    fn drop_without_shutdown(mut self) {
5036        // Safety: drops once, never accessed again due to mem::forget
5037        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5038        // Prevent Drop from running (which would shut down the channel)
5039        std::mem::forget(self);
5040    }
5041}
5042
5043impl WlanFullmacImpl_StartBssResponder {
5044    /// Sends a response to the FIDL transaction.
5045    ///
5046    /// Sets the channel to shutdown if an error occurs.
5047    pub fn send(self) -> Result<(), fidl::Error> {
5048        let _result = self.send_raw();
5049        if _result.is_err() {
5050            self.control_handle.shutdown();
5051        }
5052        self.drop_without_shutdown();
5053        _result
5054    }
5055
5056    /// Similar to "send" but does not shutdown the channel if an error occurs.
5057    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
5058        let _result = self.send_raw();
5059        self.drop_without_shutdown();
5060        _result
5061    }
5062
5063    fn send_raw(&self) -> Result<(), fidl::Error> {
5064        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5065            (),
5066            self.tx_id,
5067            0x6922644d6b1d341d,
5068            fidl::encoding::DynamicFlags::empty(),
5069        )
5070    }
5071}
5072
5073#[must_use = "FIDL methods require a response to be sent"]
5074#[derive(Debug)]
5075pub struct WlanFullmacImpl_StopBssResponder {
5076    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5077    tx_id: u32,
5078}
5079
5080/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5081/// if the responder is dropped without sending a response, so that the client
5082/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5083impl std::ops::Drop for WlanFullmacImpl_StopBssResponder {
5084    fn drop(&mut self) {
5085        self.control_handle.shutdown();
5086        // Safety: drops once, never accessed again
5087        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5088    }
5089}
5090
5091impl fidl::endpoints::Responder for WlanFullmacImpl_StopBssResponder {
5092    type ControlHandle = WlanFullmacImpl_ControlHandle;
5093
5094    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5095        &self.control_handle
5096    }
5097
5098    fn drop_without_shutdown(mut self) {
5099        // Safety: drops once, never accessed again due to mem::forget
5100        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5101        // Prevent Drop from running (which would shut down the channel)
5102        std::mem::forget(self);
5103    }
5104}
5105
5106impl WlanFullmacImpl_StopBssResponder {
5107    /// Sends a response to the FIDL transaction.
5108    ///
5109    /// Sets the channel to shutdown if an error occurs.
5110    pub fn send(self) -> Result<(), fidl::Error> {
5111        let _result = self.send_raw();
5112        if _result.is_err() {
5113            self.control_handle.shutdown();
5114        }
5115        self.drop_without_shutdown();
5116        _result
5117    }
5118
5119    /// Similar to "send" but does not shutdown the channel if an error occurs.
5120    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
5121        let _result = self.send_raw();
5122        self.drop_without_shutdown();
5123        _result
5124    }
5125
5126    fn send_raw(&self) -> Result<(), fidl::Error> {
5127        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5128            (),
5129            self.tx_id,
5130            0x5aeb9b72e7575268,
5131            fidl::encoding::DynamicFlags::empty(),
5132        )
5133    }
5134}
5135
5136#[must_use = "FIDL methods require a response to be sent"]
5137#[derive(Debug)]
5138pub struct WlanFullmacImpl_SetKeysResponder {
5139    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5140    tx_id: u32,
5141}
5142
5143/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5144/// if the responder is dropped without sending a response, so that the client
5145/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5146impl std::ops::Drop for WlanFullmacImpl_SetKeysResponder {
5147    fn drop(&mut self) {
5148        self.control_handle.shutdown();
5149        // Safety: drops once, never accessed again
5150        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5151    }
5152}
5153
5154impl fidl::endpoints::Responder for WlanFullmacImpl_SetKeysResponder {
5155    type ControlHandle = WlanFullmacImpl_ControlHandle;
5156
5157    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5158        &self.control_handle
5159    }
5160
5161    fn drop_without_shutdown(mut self) {
5162        // Safety: drops once, never accessed again due to mem::forget
5163        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5164        // Prevent Drop from running (which would shut down the channel)
5165        std::mem::forget(self);
5166    }
5167}
5168
5169impl WlanFullmacImpl_SetKeysResponder {
5170    /// Sends a response to the FIDL transaction.
5171    ///
5172    /// Sets the channel to shutdown if an error occurs.
5173    pub fn send(self, mut resp: &WlanFullmacSetKeysResp) -> Result<(), fidl::Error> {
5174        let _result = self.send_raw(resp);
5175        if _result.is_err() {
5176            self.control_handle.shutdown();
5177        }
5178        self.drop_without_shutdown();
5179        _result
5180    }
5181
5182    /// Similar to "send" but does not shutdown the channel if an error occurs.
5183    pub fn send_no_shutdown_on_err(
5184        self,
5185        mut resp: &WlanFullmacSetKeysResp,
5186    ) -> Result<(), fidl::Error> {
5187        let _result = self.send_raw(resp);
5188        self.drop_without_shutdown();
5189        _result
5190    }
5191
5192    fn send_raw(&self, mut resp: &WlanFullmacSetKeysResp) -> Result<(), fidl::Error> {
5193        self.control_handle.inner.send::<WlanFullmacImplSetKeysResponse>(
5194            (resp,),
5195            self.tx_id,
5196            0x20f46b1e039f0985,
5197            fidl::encoding::DynamicFlags::empty(),
5198        )
5199    }
5200}
5201
5202#[must_use = "FIDL methods require a response to be sent"]
5203#[derive(Debug)]
5204pub struct WlanFullmacImpl_EapolTxResponder {
5205    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5206    tx_id: u32,
5207}
5208
5209/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5210/// if the responder is dropped without sending a response, so that the client
5211/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5212impl std::ops::Drop for WlanFullmacImpl_EapolTxResponder {
5213    fn drop(&mut self) {
5214        self.control_handle.shutdown();
5215        // Safety: drops once, never accessed again
5216        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5217    }
5218}
5219
5220impl fidl::endpoints::Responder for WlanFullmacImpl_EapolTxResponder {
5221    type ControlHandle = WlanFullmacImpl_ControlHandle;
5222
5223    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5224        &self.control_handle
5225    }
5226
5227    fn drop_without_shutdown(mut self) {
5228        // Safety: drops once, never accessed again due to mem::forget
5229        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5230        // Prevent Drop from running (which would shut down the channel)
5231        std::mem::forget(self);
5232    }
5233}
5234
5235impl WlanFullmacImpl_EapolTxResponder {
5236    /// Sends a response to the FIDL transaction.
5237    ///
5238    /// Sets the channel to shutdown if an error occurs.
5239    pub fn send(self) -> Result<(), fidl::Error> {
5240        let _result = self.send_raw();
5241        if _result.is_err() {
5242            self.control_handle.shutdown();
5243        }
5244        self.drop_without_shutdown();
5245        _result
5246    }
5247
5248    /// Similar to "send" but does not shutdown the channel if an error occurs.
5249    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
5250        let _result = self.send_raw();
5251        self.drop_without_shutdown();
5252        _result
5253    }
5254
5255    fn send_raw(&self) -> Result<(), fidl::Error> {
5256        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5257            (),
5258            self.tx_id,
5259            0x529a2d90fd4c8177,
5260            fidl::encoding::DynamicFlags::empty(),
5261        )
5262    }
5263}
5264
5265#[must_use = "FIDL methods require a response to be sent"]
5266#[derive(Debug)]
5267pub struct WlanFullmacImpl_GetIfaceStatsResponder {
5268    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5269    tx_id: u32,
5270}
5271
5272/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5273/// if the responder is dropped without sending a response, so that the client
5274/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5275impl std::ops::Drop for WlanFullmacImpl_GetIfaceStatsResponder {
5276    fn drop(&mut self) {
5277        self.control_handle.shutdown();
5278        // Safety: drops once, never accessed again
5279        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5280    }
5281}
5282
5283impl fidl::endpoints::Responder for WlanFullmacImpl_GetIfaceStatsResponder {
5284    type ControlHandle = WlanFullmacImpl_ControlHandle;
5285
5286    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5287        &self.control_handle
5288    }
5289
5290    fn drop_without_shutdown(mut self) {
5291        // Safety: drops once, never accessed again due to mem::forget
5292        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5293        // Prevent Drop from running (which would shut down the channel)
5294        std::mem::forget(self);
5295    }
5296}
5297
5298impl WlanFullmacImpl_GetIfaceStatsResponder {
5299    /// Sends a response to the FIDL transaction.
5300    ///
5301    /// Sets the channel to shutdown if an error occurs.
5302    pub fn send(
5303        self,
5304        mut result: Result<&fidl_fuchsia_wlan_stats::IfaceStats, i32>,
5305    ) -> Result<(), fidl::Error> {
5306        let _result = self.send_raw(result);
5307        if _result.is_err() {
5308            self.control_handle.shutdown();
5309        }
5310        self.drop_without_shutdown();
5311        _result
5312    }
5313
5314    /// Similar to "send" but does not shutdown the channel if an error occurs.
5315    pub fn send_no_shutdown_on_err(
5316        self,
5317        mut result: Result<&fidl_fuchsia_wlan_stats::IfaceStats, i32>,
5318    ) -> Result<(), fidl::Error> {
5319        let _result = self.send_raw(result);
5320        self.drop_without_shutdown();
5321        _result
5322    }
5323
5324    fn send_raw(
5325        &self,
5326        mut result: Result<&fidl_fuchsia_wlan_stats::IfaceStats, i32>,
5327    ) -> Result<(), fidl::Error> {
5328        self.control_handle.inner.send::<fidl::encoding::ResultType<
5329            WlanFullmacImplGetIfaceStatsResponse,
5330            i32,
5331        >>(
5332            result.map(|stats| (stats,)),
5333            self.tx_id,
5334            0x505563776ef0392f,
5335            fidl::encoding::DynamicFlags::empty(),
5336        )
5337    }
5338}
5339
5340#[must_use = "FIDL methods require a response to be sent"]
5341#[derive(Debug)]
5342pub struct WlanFullmacImpl_GetIfaceHistogramStatsResponder {
5343    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5344    tx_id: u32,
5345}
5346
5347/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5348/// if the responder is dropped without sending a response, so that the client
5349/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5350impl std::ops::Drop for WlanFullmacImpl_GetIfaceHistogramStatsResponder {
5351    fn drop(&mut self) {
5352        self.control_handle.shutdown();
5353        // Safety: drops once, never accessed again
5354        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5355    }
5356}
5357
5358impl fidl::endpoints::Responder for WlanFullmacImpl_GetIfaceHistogramStatsResponder {
5359    type ControlHandle = WlanFullmacImpl_ControlHandle;
5360
5361    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5362        &self.control_handle
5363    }
5364
5365    fn drop_without_shutdown(mut self) {
5366        // Safety: drops once, never accessed again due to mem::forget
5367        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5368        // Prevent Drop from running (which would shut down the channel)
5369        std::mem::forget(self);
5370    }
5371}
5372
5373impl WlanFullmacImpl_GetIfaceHistogramStatsResponder {
5374    /// Sends a response to the FIDL transaction.
5375    ///
5376    /// Sets the channel to shutdown if an error occurs.
5377    pub fn send(
5378        self,
5379        mut result: Result<&fidl_fuchsia_wlan_stats::IfaceHistogramStats, i32>,
5380    ) -> Result<(), fidl::Error> {
5381        let _result = self.send_raw(result);
5382        if _result.is_err() {
5383            self.control_handle.shutdown();
5384        }
5385        self.drop_without_shutdown();
5386        _result
5387    }
5388
5389    /// Similar to "send" but does not shutdown the channel if an error occurs.
5390    pub fn send_no_shutdown_on_err(
5391        self,
5392        mut result: Result<&fidl_fuchsia_wlan_stats::IfaceHistogramStats, i32>,
5393    ) -> Result<(), fidl::Error> {
5394        let _result = self.send_raw(result);
5395        self.drop_without_shutdown();
5396        _result
5397    }
5398
5399    fn send_raw(
5400        &self,
5401        mut result: Result<&fidl_fuchsia_wlan_stats::IfaceHistogramStats, i32>,
5402    ) -> Result<(), fidl::Error> {
5403        self.control_handle.inner.send::<fidl::encoding::ResultType<
5404            WlanFullmacImplGetIfaceHistogramStatsResponse,
5405            i32,
5406        >>(
5407            result.map(|stats| (stats,)),
5408            self.tx_id,
5409            0x503d586f30ccf2cd,
5410            fidl::encoding::DynamicFlags::empty(),
5411        )
5412    }
5413}
5414
5415#[must_use = "FIDL methods require a response to be sent"]
5416#[derive(Debug)]
5417pub struct WlanFullmacImpl_GetSignalReportResponder {
5418    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5419    tx_id: u32,
5420}
5421
5422/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5423/// if the responder is dropped without sending a response, so that the client
5424/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5425impl std::ops::Drop for WlanFullmacImpl_GetSignalReportResponder {
5426    fn drop(&mut self) {
5427        self.control_handle.shutdown();
5428        // Safety: drops once, never accessed again
5429        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5430    }
5431}
5432
5433impl fidl::endpoints::Responder for WlanFullmacImpl_GetSignalReportResponder {
5434    type ControlHandle = WlanFullmacImpl_ControlHandle;
5435
5436    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5437        &self.control_handle
5438    }
5439
5440    fn drop_without_shutdown(mut self) {
5441        // Safety: drops once, never accessed again due to mem::forget
5442        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5443        // Prevent Drop from running (which would shut down the channel)
5444        std::mem::forget(self);
5445    }
5446}
5447
5448impl WlanFullmacImpl_GetSignalReportResponder {
5449    /// Sends a response to the FIDL transaction.
5450    ///
5451    /// Sets the channel to shutdown if an error occurs.
5452    pub fn send(
5453        self,
5454        mut result: Result<&fidl_fuchsia_wlan_stats::SignalReport, i32>,
5455    ) -> Result<(), fidl::Error> {
5456        let _result = self.send_raw(result);
5457        if _result.is_err() {
5458            self.control_handle.shutdown();
5459        }
5460        self.drop_without_shutdown();
5461        _result
5462    }
5463
5464    /// Similar to "send" but does not shutdown the channel if an error occurs.
5465    pub fn send_no_shutdown_on_err(
5466        self,
5467        mut result: Result<&fidl_fuchsia_wlan_stats::SignalReport, i32>,
5468    ) -> Result<(), fidl::Error> {
5469        let _result = self.send_raw(result);
5470        self.drop_without_shutdown();
5471        _result
5472    }
5473
5474    fn send_raw(
5475        &self,
5476        mut result: Result<&fidl_fuchsia_wlan_stats::SignalReport, i32>,
5477    ) -> Result<(), fidl::Error> {
5478        self.control_handle.inner.send::<fidl::encoding::ResultType<
5479            fidl_fuchsia_wlan_stats::SignalReport,
5480            i32,
5481        >>(
5482            result,
5483            self.tx_id,
5484            0x5d93f056e4796bb3,
5485            fidl::encoding::DynamicFlags::empty(),
5486        )
5487    }
5488}
5489
5490#[must_use = "FIDL methods require a response to be sent"]
5491#[derive(Debug)]
5492pub struct WlanFullmacImpl_SaeHandshakeRespResponder {
5493    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5494    tx_id: u32,
5495}
5496
5497/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5498/// if the responder is dropped without sending a response, so that the client
5499/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5500impl std::ops::Drop for WlanFullmacImpl_SaeHandshakeRespResponder {
5501    fn drop(&mut self) {
5502        self.control_handle.shutdown();
5503        // Safety: drops once, never accessed again
5504        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5505    }
5506}
5507
5508impl fidl::endpoints::Responder for WlanFullmacImpl_SaeHandshakeRespResponder {
5509    type ControlHandle = WlanFullmacImpl_ControlHandle;
5510
5511    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5512        &self.control_handle
5513    }
5514
5515    fn drop_without_shutdown(mut self) {
5516        // Safety: drops once, never accessed again due to mem::forget
5517        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5518        // Prevent Drop from running (which would shut down the channel)
5519        std::mem::forget(self);
5520    }
5521}
5522
5523impl WlanFullmacImpl_SaeHandshakeRespResponder {
5524    /// Sends a response to the FIDL transaction.
5525    ///
5526    /// Sets the channel to shutdown if an error occurs.
5527    pub fn send(self) -> Result<(), fidl::Error> {
5528        let _result = self.send_raw();
5529        if _result.is_err() {
5530            self.control_handle.shutdown();
5531        }
5532        self.drop_without_shutdown();
5533        _result
5534    }
5535
5536    /// Similar to "send" but does not shutdown the channel if an error occurs.
5537    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
5538        let _result = self.send_raw();
5539        self.drop_without_shutdown();
5540        _result
5541    }
5542
5543    fn send_raw(&self) -> Result<(), fidl::Error> {
5544        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5545            (),
5546            self.tx_id,
5547            0x72cd3a31ae5a54f6,
5548            fidl::encoding::DynamicFlags::empty(),
5549        )
5550    }
5551}
5552
5553#[must_use = "FIDL methods require a response to be sent"]
5554#[derive(Debug)]
5555pub struct WlanFullmacImpl_SaeFrameTxResponder {
5556    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5557    tx_id: u32,
5558}
5559
5560/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5561/// if the responder is dropped without sending a response, so that the client
5562/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5563impl std::ops::Drop for WlanFullmacImpl_SaeFrameTxResponder {
5564    fn drop(&mut self) {
5565        self.control_handle.shutdown();
5566        // Safety: drops once, never accessed again
5567        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5568    }
5569}
5570
5571impl fidl::endpoints::Responder for WlanFullmacImpl_SaeFrameTxResponder {
5572    type ControlHandle = WlanFullmacImpl_ControlHandle;
5573
5574    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5575        &self.control_handle
5576    }
5577
5578    fn drop_without_shutdown(mut self) {
5579        // Safety: drops once, never accessed again due to mem::forget
5580        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5581        // Prevent Drop from running (which would shut down the channel)
5582        std::mem::forget(self);
5583    }
5584}
5585
5586impl WlanFullmacImpl_SaeFrameTxResponder {
5587    /// Sends a response to the FIDL transaction.
5588    ///
5589    /// Sets the channel to shutdown if an error occurs.
5590    pub fn send(self) -> Result<(), fidl::Error> {
5591        let _result = self.send_raw();
5592        if _result.is_err() {
5593            self.control_handle.shutdown();
5594        }
5595        self.drop_without_shutdown();
5596        _result
5597    }
5598
5599    /// Similar to "send" but does not shutdown the channel if an error occurs.
5600    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
5601        let _result = self.send_raw();
5602        self.drop_without_shutdown();
5603        _result
5604    }
5605
5606    fn send_raw(&self) -> Result<(), fidl::Error> {
5607        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5608            (),
5609            self.tx_id,
5610            0x4715ad5dc5a6340f,
5611            fidl::encoding::DynamicFlags::empty(),
5612        )
5613    }
5614}
5615
5616#[must_use = "FIDL methods require a response to be sent"]
5617#[derive(Debug)]
5618pub struct WlanFullmacImpl_WmmStatusReqResponder {
5619    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5620    tx_id: u32,
5621}
5622
5623/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5624/// if the responder is dropped without sending a response, so that the client
5625/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5626impl std::ops::Drop for WlanFullmacImpl_WmmStatusReqResponder {
5627    fn drop(&mut self) {
5628        self.control_handle.shutdown();
5629        // Safety: drops once, never accessed again
5630        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5631    }
5632}
5633
5634impl fidl::endpoints::Responder for WlanFullmacImpl_WmmStatusReqResponder {
5635    type ControlHandle = WlanFullmacImpl_ControlHandle;
5636
5637    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5638        &self.control_handle
5639    }
5640
5641    fn drop_without_shutdown(mut self) {
5642        // Safety: drops once, never accessed again due to mem::forget
5643        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5644        // Prevent Drop from running (which would shut down the channel)
5645        std::mem::forget(self);
5646    }
5647}
5648
5649impl WlanFullmacImpl_WmmStatusReqResponder {
5650    /// Sends a response to the FIDL transaction.
5651    ///
5652    /// Sets the channel to shutdown if an error occurs.
5653    pub fn send(self) -> Result<(), fidl::Error> {
5654        let _result = self.send_raw();
5655        if _result.is_err() {
5656            self.control_handle.shutdown();
5657        }
5658        self.drop_without_shutdown();
5659        _result
5660    }
5661
5662    /// Similar to "send" but does not shutdown the channel if an error occurs.
5663    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
5664        let _result = self.send_raw();
5665        self.drop_without_shutdown();
5666        _result
5667    }
5668
5669    fn send_raw(&self) -> Result<(), fidl::Error> {
5670        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5671            (),
5672            self.tx_id,
5673            0x635ecef3beb7a059,
5674            fidl::encoding::DynamicFlags::empty(),
5675        )
5676    }
5677}
5678
5679#[must_use = "FIDL methods require a response to be sent"]
5680#[derive(Debug)]
5681pub struct WlanFullmacImpl_OnLinkStateChangedResponder {
5682    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5683    tx_id: u32,
5684}
5685
5686/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5687/// if the responder is dropped without sending a response, so that the client
5688/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5689impl std::ops::Drop for WlanFullmacImpl_OnLinkStateChangedResponder {
5690    fn drop(&mut self) {
5691        self.control_handle.shutdown();
5692        // Safety: drops once, never accessed again
5693        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5694    }
5695}
5696
5697impl fidl::endpoints::Responder for WlanFullmacImpl_OnLinkStateChangedResponder {
5698    type ControlHandle = WlanFullmacImpl_ControlHandle;
5699
5700    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5701        &self.control_handle
5702    }
5703
5704    fn drop_without_shutdown(mut self) {
5705        // Safety: drops once, never accessed again due to mem::forget
5706        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5707        // Prevent Drop from running (which would shut down the channel)
5708        std::mem::forget(self);
5709    }
5710}
5711
5712impl WlanFullmacImpl_OnLinkStateChangedResponder {
5713    /// Sends a response to the FIDL transaction.
5714    ///
5715    /// Sets the channel to shutdown if an error occurs.
5716    pub fn send(self) -> Result<(), fidl::Error> {
5717        let _result = self.send_raw();
5718        if _result.is_err() {
5719            self.control_handle.shutdown();
5720        }
5721        self.drop_without_shutdown();
5722        _result
5723    }
5724
5725    /// Similar to "send" but does not shutdown the channel if an error occurs.
5726    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
5727        let _result = self.send_raw();
5728        self.drop_without_shutdown();
5729        _result
5730    }
5731
5732    fn send_raw(&self) -> Result<(), fidl::Error> {
5733        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
5734            (),
5735            self.tx_id,
5736            0x4d896e5b68e488d7,
5737            fidl::encoding::DynamicFlags::empty(),
5738        )
5739    }
5740}
5741
5742#[must_use = "FIDL methods require a response to be sent"]
5743#[derive(Debug)]
5744pub struct WlanFullmacImpl_SetMacAddressResponder {
5745    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5746    tx_id: u32,
5747}
5748
5749/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5750/// if the responder is dropped without sending a response, so that the client
5751/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5752impl std::ops::Drop for WlanFullmacImpl_SetMacAddressResponder {
5753    fn drop(&mut self) {
5754        self.control_handle.shutdown();
5755        // Safety: drops once, never accessed again
5756        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5757    }
5758}
5759
5760impl fidl::endpoints::Responder for WlanFullmacImpl_SetMacAddressResponder {
5761    type ControlHandle = WlanFullmacImpl_ControlHandle;
5762
5763    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5764        &self.control_handle
5765    }
5766
5767    fn drop_without_shutdown(mut self) {
5768        // Safety: drops once, never accessed again due to mem::forget
5769        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5770        // Prevent Drop from running (which would shut down the channel)
5771        std::mem::forget(self);
5772    }
5773}
5774
5775impl WlanFullmacImpl_SetMacAddressResponder {
5776    /// Sends a response to the FIDL transaction.
5777    ///
5778    /// Sets the channel to shutdown if an error occurs.
5779    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5780        let _result = self.send_raw(result);
5781        if _result.is_err() {
5782            self.control_handle.shutdown();
5783        }
5784        self.drop_without_shutdown();
5785        _result
5786    }
5787
5788    /// Similar to "send" but does not shutdown the channel if an error occurs.
5789    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5790        let _result = self.send_raw(result);
5791        self.drop_without_shutdown();
5792        _result
5793    }
5794
5795    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5796        self.control_handle
5797            .inner
5798            .send::<fidl::encoding::ResultType<fidl::encoding::EmptyStruct, i32>>(
5799                result,
5800                self.tx_id,
5801                0x211a97f6f21ae5f0,
5802                fidl::encoding::DynamicFlags::empty(),
5803            )
5804    }
5805}
5806
5807#[must_use = "FIDL methods require a response to be sent"]
5808#[derive(Debug)]
5809pub struct WlanFullmacImpl_InstallApfPacketFilterResponder {
5810    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5811    tx_id: u32,
5812}
5813
5814/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5815/// if the responder is dropped without sending a response, so that the client
5816/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5817impl std::ops::Drop for WlanFullmacImpl_InstallApfPacketFilterResponder {
5818    fn drop(&mut self) {
5819        self.control_handle.shutdown();
5820        // Safety: drops once, never accessed again
5821        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5822    }
5823}
5824
5825impl fidl::endpoints::Responder for WlanFullmacImpl_InstallApfPacketFilterResponder {
5826    type ControlHandle = WlanFullmacImpl_ControlHandle;
5827
5828    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5829        &self.control_handle
5830    }
5831
5832    fn drop_without_shutdown(mut self) {
5833        // Safety: drops once, never accessed again due to mem::forget
5834        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5835        // Prevent Drop from running (which would shut down the channel)
5836        std::mem::forget(self);
5837    }
5838}
5839
5840impl WlanFullmacImpl_InstallApfPacketFilterResponder {
5841    /// Sends a response to the FIDL transaction.
5842    ///
5843    /// Sets the channel to shutdown if an error occurs.
5844    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5845        let _result = self.send_raw(result);
5846        if _result.is_err() {
5847            self.control_handle.shutdown();
5848        }
5849        self.drop_without_shutdown();
5850        _result
5851    }
5852
5853    /// Similar to "send" but does not shutdown the channel if an error occurs.
5854    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5855        let _result = self.send_raw(result);
5856        self.drop_without_shutdown();
5857        _result
5858    }
5859
5860    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5861        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
5862            fidl::encoding::EmptyStruct,
5863            i32,
5864        >>(
5865            fidl::encoding::FlexibleResult::new(result),
5866            self.tx_id,
5867            0x14597eda84122115,
5868            fidl::encoding::DynamicFlags::FLEXIBLE,
5869        )
5870    }
5871}
5872
5873#[must_use = "FIDL methods require a response to be sent"]
5874#[derive(Debug)]
5875pub struct WlanFullmacImpl_ReadApfPacketFilterDataResponder {
5876    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5877    tx_id: u32,
5878}
5879
5880/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5881/// if the responder is dropped without sending a response, so that the client
5882/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5883impl std::ops::Drop for WlanFullmacImpl_ReadApfPacketFilterDataResponder {
5884    fn drop(&mut self) {
5885        self.control_handle.shutdown();
5886        // Safety: drops once, never accessed again
5887        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5888    }
5889}
5890
5891impl fidl::endpoints::Responder for WlanFullmacImpl_ReadApfPacketFilterDataResponder {
5892    type ControlHandle = WlanFullmacImpl_ControlHandle;
5893
5894    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5895        &self.control_handle
5896    }
5897
5898    fn drop_without_shutdown(mut self) {
5899        // Safety: drops once, never accessed again due to mem::forget
5900        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5901        // Prevent Drop from running (which would shut down the channel)
5902        std::mem::forget(self);
5903    }
5904}
5905
5906impl WlanFullmacImpl_ReadApfPacketFilterDataResponder {
5907    /// Sends a response to the FIDL transaction.
5908    ///
5909    /// Sets the channel to shutdown if an error occurs.
5910    pub fn send(
5911        self,
5912        mut result: Result<&WlanFullmacImplReadApfPacketFilterDataResponse, i32>,
5913    ) -> Result<(), fidl::Error> {
5914        let _result = self.send_raw(result);
5915        if _result.is_err() {
5916            self.control_handle.shutdown();
5917        }
5918        self.drop_without_shutdown();
5919        _result
5920    }
5921
5922    /// Similar to "send" but does not shutdown the channel if an error occurs.
5923    pub fn send_no_shutdown_on_err(
5924        self,
5925        mut result: Result<&WlanFullmacImplReadApfPacketFilterDataResponse, i32>,
5926    ) -> Result<(), fidl::Error> {
5927        let _result = self.send_raw(result);
5928        self.drop_without_shutdown();
5929        _result
5930    }
5931
5932    fn send_raw(
5933        &self,
5934        mut result: Result<&WlanFullmacImplReadApfPacketFilterDataResponse, i32>,
5935    ) -> Result<(), fidl::Error> {
5936        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
5937            WlanFullmacImplReadApfPacketFilterDataResponse,
5938            i32,
5939        >>(
5940            fidl::encoding::FlexibleResult::new(result),
5941            self.tx_id,
5942            0x6ddcf8a179553a3c,
5943            fidl::encoding::DynamicFlags::FLEXIBLE,
5944        )
5945    }
5946}
5947
5948#[must_use = "FIDL methods require a response to be sent"]
5949#[derive(Debug)]
5950pub struct WlanFullmacImpl_SetApfPacketFilterEnabledResponder {
5951    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
5952    tx_id: u32,
5953}
5954
5955/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
5956/// if the responder is dropped without sending a response, so that the client
5957/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
5958impl std::ops::Drop for WlanFullmacImpl_SetApfPacketFilterEnabledResponder {
5959    fn drop(&mut self) {
5960        self.control_handle.shutdown();
5961        // Safety: drops once, never accessed again
5962        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5963    }
5964}
5965
5966impl fidl::endpoints::Responder for WlanFullmacImpl_SetApfPacketFilterEnabledResponder {
5967    type ControlHandle = WlanFullmacImpl_ControlHandle;
5968
5969    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
5970        &self.control_handle
5971    }
5972
5973    fn drop_without_shutdown(mut self) {
5974        // Safety: drops once, never accessed again due to mem::forget
5975        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
5976        // Prevent Drop from running (which would shut down the channel)
5977        std::mem::forget(self);
5978    }
5979}
5980
5981impl WlanFullmacImpl_SetApfPacketFilterEnabledResponder {
5982    /// Sends a response to the FIDL transaction.
5983    ///
5984    /// Sets the channel to shutdown if an error occurs.
5985    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5986        let _result = self.send_raw(result);
5987        if _result.is_err() {
5988            self.control_handle.shutdown();
5989        }
5990        self.drop_without_shutdown();
5991        _result
5992    }
5993
5994    /// Similar to "send" but does not shutdown the channel if an error occurs.
5995    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
5996        let _result = self.send_raw(result);
5997        self.drop_without_shutdown();
5998        _result
5999    }
6000
6001    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6002        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
6003            fidl::encoding::EmptyStruct,
6004            i32,
6005        >>(
6006            fidl::encoding::FlexibleResult::new(result),
6007            self.tx_id,
6008            0x808792cade97d59,
6009            fidl::encoding::DynamicFlags::FLEXIBLE,
6010        )
6011    }
6012}
6013
6014#[must_use = "FIDL methods require a response to be sent"]
6015#[derive(Debug)]
6016pub struct WlanFullmacImpl_GetApfPacketFilterEnabledResponder {
6017    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
6018    tx_id: u32,
6019}
6020
6021/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
6022/// if the responder is dropped without sending a response, so that the client
6023/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
6024impl std::ops::Drop for WlanFullmacImpl_GetApfPacketFilterEnabledResponder {
6025    fn drop(&mut self) {
6026        self.control_handle.shutdown();
6027        // Safety: drops once, never accessed again
6028        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6029    }
6030}
6031
6032impl fidl::endpoints::Responder for WlanFullmacImpl_GetApfPacketFilterEnabledResponder {
6033    type ControlHandle = WlanFullmacImpl_ControlHandle;
6034
6035    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
6036        &self.control_handle
6037    }
6038
6039    fn drop_without_shutdown(mut self) {
6040        // Safety: drops once, never accessed again due to mem::forget
6041        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6042        // Prevent Drop from running (which would shut down the channel)
6043        std::mem::forget(self);
6044    }
6045}
6046
6047impl WlanFullmacImpl_GetApfPacketFilterEnabledResponder {
6048    /// Sends a response to the FIDL transaction.
6049    ///
6050    /// Sets the channel to shutdown if an error occurs.
6051    pub fn send(
6052        self,
6053        mut result: Result<&WlanFullmacImplGetApfPacketFilterEnabledResponse, i32>,
6054    ) -> Result<(), fidl::Error> {
6055        let _result = self.send_raw(result);
6056        if _result.is_err() {
6057            self.control_handle.shutdown();
6058        }
6059        self.drop_without_shutdown();
6060        _result
6061    }
6062
6063    /// Similar to "send" but does not shutdown the channel if an error occurs.
6064    pub fn send_no_shutdown_on_err(
6065        self,
6066        mut result: Result<&WlanFullmacImplGetApfPacketFilterEnabledResponse, i32>,
6067    ) -> Result<(), fidl::Error> {
6068        let _result = self.send_raw(result);
6069        self.drop_without_shutdown();
6070        _result
6071    }
6072
6073    fn send_raw(
6074        &self,
6075        mut result: Result<&WlanFullmacImplGetApfPacketFilterEnabledResponse, i32>,
6076    ) -> Result<(), fidl::Error> {
6077        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
6078            WlanFullmacImplGetApfPacketFilterEnabledResponse,
6079            i32,
6080        >>(
6081            fidl::encoding::FlexibleResult::new(result),
6082            self.tx_id,
6083            0x284e1725471e3ae7,
6084            fidl::encoding::DynamicFlags::FLEXIBLE,
6085        )
6086    }
6087}
6088
6089#[must_use = "FIDL methods require a response to be sent"]
6090#[derive(Debug)]
6091pub struct WlanFullmacImpl_StartRssiMonitorResponder {
6092    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
6093    tx_id: u32,
6094}
6095
6096/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
6097/// if the responder is dropped without sending a response, so that the client
6098/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
6099impl std::ops::Drop for WlanFullmacImpl_StartRssiMonitorResponder {
6100    fn drop(&mut self) {
6101        self.control_handle.shutdown();
6102        // Safety: drops once, never accessed again
6103        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6104    }
6105}
6106
6107impl fidl::endpoints::Responder for WlanFullmacImpl_StartRssiMonitorResponder {
6108    type ControlHandle = WlanFullmacImpl_ControlHandle;
6109
6110    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
6111        &self.control_handle
6112    }
6113
6114    fn drop_without_shutdown(mut self) {
6115        // Safety: drops once, never accessed again due to mem::forget
6116        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6117        // Prevent Drop from running (which would shut down the channel)
6118        std::mem::forget(self);
6119    }
6120}
6121
6122impl WlanFullmacImpl_StartRssiMonitorResponder {
6123    /// Sends a response to the FIDL transaction.
6124    ///
6125    /// Sets the channel to shutdown if an error occurs.
6126    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6127        let _result = self.send_raw(result);
6128        if _result.is_err() {
6129            self.control_handle.shutdown();
6130        }
6131        self.drop_without_shutdown();
6132        _result
6133    }
6134
6135    /// Similar to "send" but does not shutdown the channel if an error occurs.
6136    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6137        let _result = self.send_raw(result);
6138        self.drop_without_shutdown();
6139        _result
6140    }
6141
6142    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6143        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
6144            fidl::encoding::EmptyStruct,
6145            i32,
6146        >>(
6147            fidl::encoding::FlexibleResult::new(result),
6148            self.tx_id,
6149            0x5e6e8feead94acec,
6150            fidl::encoding::DynamicFlags::FLEXIBLE,
6151        )
6152    }
6153}
6154
6155#[must_use = "FIDL methods require a response to be sent"]
6156#[derive(Debug)]
6157pub struct WlanFullmacImpl_StopRssiMonitorResponder {
6158    control_handle: std::mem::ManuallyDrop<WlanFullmacImpl_ControlHandle>,
6159    tx_id: u32,
6160}
6161
6162/// Set the the channel to be shutdown (see [`WlanFullmacImpl_ControlHandle::shutdown`])
6163/// if the responder is dropped without sending a response, so that the client
6164/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
6165impl std::ops::Drop for WlanFullmacImpl_StopRssiMonitorResponder {
6166    fn drop(&mut self) {
6167        self.control_handle.shutdown();
6168        // Safety: drops once, never accessed again
6169        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6170    }
6171}
6172
6173impl fidl::endpoints::Responder for WlanFullmacImpl_StopRssiMonitorResponder {
6174    type ControlHandle = WlanFullmacImpl_ControlHandle;
6175
6176    fn control_handle(&self) -> &WlanFullmacImpl_ControlHandle {
6177        &self.control_handle
6178    }
6179
6180    fn drop_without_shutdown(mut self) {
6181        // Safety: drops once, never accessed again due to mem::forget
6182        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
6183        // Prevent Drop from running (which would shut down the channel)
6184        std::mem::forget(self);
6185    }
6186}
6187
6188impl WlanFullmacImpl_StopRssiMonitorResponder {
6189    /// Sends a response to the FIDL transaction.
6190    ///
6191    /// Sets the channel to shutdown if an error occurs.
6192    pub fn send(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6193        let _result = self.send_raw(result);
6194        if _result.is_err() {
6195            self.control_handle.shutdown();
6196        }
6197        self.drop_without_shutdown();
6198        _result
6199    }
6200
6201    /// Similar to "send" but does not shutdown the channel if an error occurs.
6202    pub fn send_no_shutdown_on_err(self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6203        let _result = self.send_raw(result);
6204        self.drop_without_shutdown();
6205        _result
6206    }
6207
6208    fn send_raw(&self, mut result: Result<(), i32>) -> Result<(), fidl::Error> {
6209        self.control_handle.inner.send::<fidl::encoding::FlexibleResultType<
6210            fidl::encoding::EmptyStruct,
6211            i32,
6212        >>(
6213            fidl::encoding::FlexibleResult::new(result),
6214            self.tx_id,
6215            0x45795dfdd5760880,
6216            fidl::encoding::DynamicFlags::FLEXIBLE,
6217        )
6218    }
6219}
6220
6221#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
6222pub struct WlanFullmacImplIfcMarker;
6223
6224impl fidl::endpoints::ProtocolMarker for WlanFullmacImplIfcMarker {
6225    type Proxy = WlanFullmacImplIfcProxy;
6226    type RequestStream = WlanFullmacImplIfcRequestStream;
6227    #[cfg(target_os = "fuchsia")]
6228    type SynchronousProxy = WlanFullmacImplIfcSynchronousProxy;
6229
6230    const DEBUG_NAME: &'static str = "fuchsia.wlan.fullmac.WlanFullmacImplIfc";
6231}
6232impl fidl::endpoints::DiscoverableProtocolMarker for WlanFullmacImplIfcMarker {}
6233
6234pub trait WlanFullmacImplIfcProxyInterface: Send + Sync {
6235    type OnScanResultResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6236    fn r#on_scan_result(
6237        &self,
6238        payload: &WlanFullmacImplIfcOnScanResultRequest,
6239    ) -> Self::OnScanResultResponseFut;
6240    type OnScanEndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6241    fn r#on_scan_end(
6242        &self,
6243        payload: &WlanFullmacImplIfcOnScanEndRequest,
6244    ) -> Self::OnScanEndResponseFut;
6245    fn r#on_scheduled_scan_matches_available(
6246        &self,
6247        payload: &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest,
6248    ) -> Result<(), fidl::Error>;
6249    fn r#on_scheduled_scan_stopped_by_firmware(
6250        &self,
6251        payload: &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest,
6252    ) -> Result<(), fidl::Error>;
6253    type ConnectConfResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6254    fn r#connect_conf(
6255        &self,
6256        payload: &WlanFullmacImplIfcConnectConfRequest,
6257    ) -> Self::ConnectConfResponseFut;
6258    type RoamConfResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6259    fn r#roam_conf(&self, payload: &WlanFullmacImplIfcRoamConfRequest)
6260    -> Self::RoamConfResponseFut;
6261    type RoamStartIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6262    fn r#roam_start_ind(
6263        &self,
6264        payload: &WlanFullmacImplIfcRoamStartIndRequest,
6265    ) -> Self::RoamStartIndResponseFut;
6266    type RoamResultIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6267    fn r#roam_result_ind(
6268        &self,
6269        payload: &WlanFullmacImplIfcRoamResultIndRequest,
6270    ) -> Self::RoamResultIndResponseFut;
6271    type AuthIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6272    fn r#auth_ind(&self, payload: &WlanFullmacImplIfcAuthIndRequest) -> Self::AuthIndResponseFut;
6273    type DeauthConfResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6274    fn r#deauth_conf(
6275        &self,
6276        payload: &WlanFullmacImplIfcDeauthConfRequest,
6277    ) -> Self::DeauthConfResponseFut;
6278    type DeauthIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6279    fn r#deauth_ind(
6280        &self,
6281        payload: &WlanFullmacImplIfcDeauthIndRequest,
6282    ) -> Self::DeauthIndResponseFut;
6283    type AssocIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6284    fn r#assoc_ind(&self, payload: &WlanFullmacImplIfcAssocIndRequest)
6285    -> Self::AssocIndResponseFut;
6286    type DisassocConfResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6287    fn r#disassoc_conf(
6288        &self,
6289        payload: &WlanFullmacImplIfcDisassocConfRequest,
6290    ) -> Self::DisassocConfResponseFut;
6291    type DisassocIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6292    fn r#disassoc_ind(
6293        &self,
6294        payload: &WlanFullmacImplIfcDisassocIndRequest,
6295    ) -> Self::DisassocIndResponseFut;
6296    type StartConfResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6297    fn r#start_conf(
6298        &self,
6299        payload: &WlanFullmacImplIfcStartConfRequest,
6300    ) -> Self::StartConfResponseFut;
6301    type StopConfResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6302    fn r#stop_conf(&self, payload: &WlanFullmacImplIfcStopConfRequest)
6303    -> Self::StopConfResponseFut;
6304    type EapolConfResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6305    fn r#eapol_conf(
6306        &self,
6307        payload: &WlanFullmacImplIfcEapolConfRequest,
6308    ) -> Self::EapolConfResponseFut;
6309    type OnChannelSwitchResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6310    fn r#on_channel_switch(
6311        &self,
6312        ind: &WlanFullmacChannelSwitchInfo,
6313    ) -> Self::OnChannelSwitchResponseFut;
6314    type SignalReportResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6315    fn r#signal_report(
6316        &self,
6317        ind: &WlanFullmacSignalReportIndication,
6318    ) -> Self::SignalReportResponseFut;
6319    fn r#on_rssi_threshold_breached(
6320        &self,
6321        payload: &WlanFullmacImplIfcOnRssiThresholdBreachedRequest,
6322    ) -> Result<(), fidl::Error>;
6323    type EapolIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6324    fn r#eapol_ind(&self, payload: &WlanFullmacImplIfcEapolIndRequest)
6325    -> Self::EapolIndResponseFut;
6326    type OnPmkAvailableResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6327    fn r#on_pmk_available(
6328        &self,
6329        payload: &WlanFullmacImplIfcOnPmkAvailableRequest,
6330    ) -> Self::OnPmkAvailableResponseFut;
6331    type SaeHandshakeIndResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6332    fn r#sae_handshake_ind(
6333        &self,
6334        payload: &WlanFullmacImplIfcSaeHandshakeIndRequest,
6335    ) -> Self::SaeHandshakeIndResponseFut;
6336    type SaeFrameRxResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6337    fn r#sae_frame_rx(&self, frame: &SaeFrame) -> Self::SaeFrameRxResponseFut;
6338    type OnWmmStatusRespResponseFut: std::future::Future<Output = Result<(), fidl::Error>> + Send;
6339    fn r#on_wmm_status_resp(
6340        &self,
6341        status: i32,
6342        wmm_params: &fidl_fuchsia_wlan_driver::WlanWmmParameters,
6343    ) -> Self::OnWmmStatusRespResponseFut;
6344}
6345#[derive(Debug)]
6346#[cfg(target_os = "fuchsia")]
6347pub struct WlanFullmacImplIfcSynchronousProxy {
6348    client: fidl::client::sync::Client,
6349}
6350
6351#[cfg(target_os = "fuchsia")]
6352impl fidl::endpoints::SynchronousProxy for WlanFullmacImplIfcSynchronousProxy {
6353    type Proxy = WlanFullmacImplIfcProxy;
6354    type Protocol = WlanFullmacImplIfcMarker;
6355
6356    fn from_channel(inner: fidl::Channel) -> Self {
6357        Self::new(inner)
6358    }
6359
6360    fn into_channel(self) -> fidl::Channel {
6361        self.client.into_channel()
6362    }
6363
6364    fn as_channel(&self) -> &fidl::Channel {
6365        self.client.as_channel()
6366    }
6367}
6368
6369#[cfg(target_os = "fuchsia")]
6370impl WlanFullmacImplIfcSynchronousProxy {
6371    pub fn new(channel: fidl::Channel) -> Self {
6372        Self { client: fidl::client::sync::Client::new(channel) }
6373    }
6374
6375    pub fn into_channel(self) -> fidl::Channel {
6376        self.client.into_channel()
6377    }
6378
6379    /// Waits until an event arrives and returns it. It is safe for other
6380    /// threads to make concurrent requests while waiting for an event.
6381    pub fn wait_for_event(
6382        &self,
6383        deadline: zx::MonotonicInstant,
6384    ) -> Result<WlanFullmacImplIfcEvent, fidl::Error> {
6385        WlanFullmacImplIfcEvent::decode(
6386            self.client.wait_for_event::<WlanFullmacImplIfcMarker>(deadline)?,
6387        )
6388    }
6389
6390    pub fn r#on_scan_result(
6391        &self,
6392        mut payload: &WlanFullmacImplIfcOnScanResultRequest,
6393        ___deadline: zx::MonotonicInstant,
6394    ) -> Result<(), fidl::Error> {
6395        let _response = self.client.send_query::<
6396            WlanFullmacImplIfcOnScanResultRequest,
6397            fidl::encoding::EmptyPayload,
6398            WlanFullmacImplIfcMarker,
6399        >(
6400            payload,
6401            0x29aa81dc570f7a3e,
6402            fidl::encoding::DynamicFlags::empty(),
6403            ___deadline,
6404        )?;
6405        Ok(_response)
6406    }
6407
6408    pub fn r#on_scan_end(
6409        &self,
6410        mut payload: &WlanFullmacImplIfcOnScanEndRequest,
6411        ___deadline: zx::MonotonicInstant,
6412    ) -> Result<(), fidl::Error> {
6413        let _response = self.client.send_query::<
6414            WlanFullmacImplIfcOnScanEndRequest,
6415            fidl::encoding::EmptyPayload,
6416            WlanFullmacImplIfcMarker,
6417        >(
6418            payload,
6419            0x7cd8aff80d27073c,
6420            fidl::encoding::DynamicFlags::empty(),
6421            ___deadline,
6422        )?;
6423        Ok(_response)
6424    }
6425
6426    /// Indicates to MLME that an individual scan within the scheduled scan plan has been completed
6427    /// and results are available.
6428    pub fn r#on_scheduled_scan_matches_available(
6429        &self,
6430        mut payload: &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest,
6431    ) -> Result<(), fidl::Error> {
6432        self.client.send::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(
6433            payload,
6434            0x3036cd8b8b35e81b,
6435            fidl::encoding::DynamicFlags::empty(),
6436        )
6437    }
6438
6439    /// Indicates to MLME that scheduled scanning has been stopped by the firmware.
6440    pub fn r#on_scheduled_scan_stopped_by_firmware(
6441        &self,
6442        mut payload: &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest,
6443    ) -> Result<(), fidl::Error> {
6444        self.client.send::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(
6445            payload,
6446            0x50353be2c3029817,
6447            fidl::encoding::DynamicFlags::empty(),
6448        )
6449    }
6450
6451    pub fn r#connect_conf(
6452        &self,
6453        mut payload: &WlanFullmacImplIfcConnectConfRequest,
6454        ___deadline: zx::MonotonicInstant,
6455    ) -> Result<(), fidl::Error> {
6456        let _response = self.client.send_query::<
6457            WlanFullmacImplIfcConnectConfRequest,
6458            fidl::encoding::EmptyPayload,
6459            WlanFullmacImplIfcMarker,
6460        >(
6461            payload,
6462            0x3c22c6d80b2a2759,
6463            fidl::encoding::DynamicFlags::empty(),
6464            ___deadline,
6465        )?;
6466        Ok(_response)
6467    }
6468
6469    /// Report the result of an MLME-initiated roam attempt.
6470    pub fn r#roam_conf(
6471        &self,
6472        mut payload: &WlanFullmacImplIfcRoamConfRequest,
6473        ___deadline: zx::MonotonicInstant,
6474    ) -> Result<(), fidl::Error> {
6475        let _response = self.client.send_query::<
6476            WlanFullmacImplIfcRoamConfRequest,
6477            fidl::encoding::EmptyPayload,
6478            WlanFullmacImplIfcMarker,
6479        >(
6480            payload,
6481            0x368b2a5b903b3f7b,
6482            fidl::encoding::DynamicFlags::empty(),
6483            ___deadline,
6484        )?;
6485        Ok(_response)
6486    }
6487
6488    /// Report that a fullmac-initiated roam attempt is in progress.
6489    /// Fullmac must send this start indication for all roam attempts.
6490    pub fn r#roam_start_ind(
6491        &self,
6492        mut payload: &WlanFullmacImplIfcRoamStartIndRequest,
6493        ___deadline: zx::MonotonicInstant,
6494    ) -> Result<(), fidl::Error> {
6495        let _response = self.client.send_query::<
6496            WlanFullmacImplIfcRoamStartIndRequest,
6497            fidl::encoding::EmptyPayload,
6498            WlanFullmacImplIfcMarker,
6499        >(
6500            payload,
6501            0x23e1d9368935e7e4,
6502            fidl::encoding::DynamicFlags::empty(),
6503            ___deadline,
6504        )?;
6505        Ok(_response)
6506    }
6507
6508    /// Report the result of a fullmac-initiated roam attempt.
6509    pub fn r#roam_result_ind(
6510        &self,
6511        mut payload: &WlanFullmacImplIfcRoamResultIndRequest,
6512        ___deadline: zx::MonotonicInstant,
6513    ) -> Result<(), fidl::Error> {
6514        let _response = self.client.send_query::<
6515            WlanFullmacImplIfcRoamResultIndRequest,
6516            fidl::encoding::EmptyPayload,
6517            WlanFullmacImplIfcMarker,
6518        >(
6519            payload,
6520            0x7081c1b1ceea4914,
6521            fidl::encoding::DynamicFlags::empty(),
6522            ___deadline,
6523        )?;
6524        Ok(_response)
6525    }
6526
6527    pub fn r#auth_ind(
6528        &self,
6529        mut payload: &WlanFullmacImplIfcAuthIndRequest,
6530        ___deadline: zx::MonotonicInstant,
6531    ) -> Result<(), fidl::Error> {
6532        let _response = self.client.send_query::<
6533            WlanFullmacImplIfcAuthIndRequest,
6534            fidl::encoding::EmptyPayload,
6535            WlanFullmacImplIfcMarker,
6536        >(
6537            payload,
6538            0x270e1f8889650d0b,
6539            fidl::encoding::DynamicFlags::empty(),
6540            ___deadline,
6541        )?;
6542        Ok(_response)
6543    }
6544
6545    pub fn r#deauth_conf(
6546        &self,
6547        mut payload: &WlanFullmacImplIfcDeauthConfRequest,
6548        ___deadline: zx::MonotonicInstant,
6549    ) -> Result<(), fidl::Error> {
6550        let _response = self.client.send_query::<
6551            WlanFullmacImplIfcDeauthConfRequest,
6552            fidl::encoding::EmptyPayload,
6553            WlanFullmacImplIfcMarker,
6554        >(
6555            payload,
6556            0x2c94b0d7258111b7,
6557            fidl::encoding::DynamicFlags::empty(),
6558            ___deadline,
6559        )?;
6560        Ok(_response)
6561    }
6562
6563    /// Report that the driver deauthenticated.
6564    pub fn r#deauth_ind(
6565        &self,
6566        mut payload: &WlanFullmacImplIfcDeauthIndRequest,
6567        ___deadline: zx::MonotonicInstant,
6568    ) -> Result<(), fidl::Error> {
6569        let _response = self.client.send_query::<
6570            WlanFullmacImplIfcDeauthIndRequest,
6571            fidl::encoding::EmptyPayload,
6572            WlanFullmacImplIfcMarker,
6573        >(
6574            payload,
6575            0x26cd27cdadd8dbaf,
6576            fidl::encoding::DynamicFlags::empty(),
6577            ___deadline,
6578        )?;
6579        Ok(_response)
6580    }
6581
6582    pub fn r#assoc_ind(
6583        &self,
6584        mut payload: &WlanFullmacImplIfcAssocIndRequest,
6585        ___deadline: zx::MonotonicInstant,
6586    ) -> Result<(), fidl::Error> {
6587        let _response = self.client.send_query::<
6588            WlanFullmacImplIfcAssocIndRequest,
6589            fidl::encoding::EmptyPayload,
6590            WlanFullmacImplIfcMarker,
6591        >(
6592            payload,
6593            0x3e44529e3dc179ce,
6594            fidl::encoding::DynamicFlags::empty(),
6595            ___deadline,
6596        )?;
6597        Ok(_response)
6598    }
6599
6600    /// Report the result of a previously-issued disassociate request. IEEE 802.11-2020 6.3.9.2.
6601    pub fn r#disassoc_conf(
6602        &self,
6603        mut payload: &WlanFullmacImplIfcDisassocConfRequest,
6604        ___deadline: zx::MonotonicInstant,
6605    ) -> Result<(), fidl::Error> {
6606        let _response = self.client.send_query::<
6607            WlanFullmacImplIfcDisassocConfRequest,
6608            fidl::encoding::EmptyPayload,
6609            WlanFullmacImplIfcMarker,
6610        >(
6611            payload,
6612            0x7c713bcd58a76cb3,
6613            fidl::encoding::DynamicFlags::empty(),
6614            ___deadline,
6615        )?;
6616        Ok(_response)
6617    }
6618
6619    /// Report that disassociation with the specified peer occurred (IEEE 802.11-2020 6.3.9.3).
6620    pub fn r#disassoc_ind(
6621        &self,
6622        mut payload: &WlanFullmacImplIfcDisassocIndRequest,
6623        ___deadline: zx::MonotonicInstant,
6624    ) -> Result<(), fidl::Error> {
6625        let _response = self.client.send_query::<
6626            WlanFullmacImplIfcDisassocIndRequest,
6627            fidl::encoding::EmptyPayload,
6628            WlanFullmacImplIfcMarker,
6629        >(
6630            payload,
6631            0x6667b381b7f3990f,
6632            fidl::encoding::DynamicFlags::empty(),
6633            ___deadline,
6634        )?;
6635        Ok(_response)
6636    }
6637
6638    /// Report the result of a WlanFullmacImpl::StartBss request.
6639    pub fn r#start_conf(
6640        &self,
6641        mut payload: &WlanFullmacImplIfcStartConfRequest,
6642        ___deadline: zx::MonotonicInstant,
6643    ) -> Result<(), fidl::Error> {
6644        let _response = self.client.send_query::<
6645            WlanFullmacImplIfcStartConfRequest,
6646            fidl::encoding::EmptyPayload,
6647            WlanFullmacImplIfcMarker,
6648        >(
6649            payload,
6650            0x3e9b9641f3ddc7fc,
6651            fidl::encoding::DynamicFlags::empty(),
6652            ___deadline,
6653        )?;
6654        Ok(_response)
6655    }
6656
6657    /// Report the result of a WlanFullmacImpl::StopBss request.
6658    pub fn r#stop_conf(
6659        &self,
6660        mut payload: &WlanFullmacImplIfcStopConfRequest,
6661        ___deadline: zx::MonotonicInstant,
6662    ) -> Result<(), fidl::Error> {
6663        let _response = self.client.send_query::<
6664            WlanFullmacImplIfcStopConfRequest,
6665            fidl::encoding::EmptyPayload,
6666            WlanFullmacImplIfcMarker,
6667        >(
6668            payload,
6669            0x320a5ff227a4e9df,
6670            fidl::encoding::DynamicFlags::empty(),
6671            ___deadline,
6672        )?;
6673        Ok(_response)
6674    }
6675
6676    /// Report the result of a EAPoL frame transmission (IEEE 802.11-2020 6.3.22.2).
6677    /// EAPoL frames are transmitted by the platform via WlanFullmacImpl::EapolTx.
6678    pub fn r#eapol_conf(
6679        &self,
6680        mut payload: &WlanFullmacImplIfcEapolConfRequest,
6681        ___deadline: zx::MonotonicInstant,
6682    ) -> Result<(), fidl::Error> {
6683        let _response = self.client.send_query::<
6684            WlanFullmacImplIfcEapolConfRequest,
6685            fidl::encoding::EmptyPayload,
6686            WlanFullmacImplIfcMarker,
6687        >(
6688            payload,
6689            0x77364db9cc3970ec,
6690            fidl::encoding::DynamicFlags::empty(),
6691            ___deadline,
6692        )?;
6693        Ok(_response)
6694    }
6695
6696    pub fn r#on_channel_switch(
6697        &self,
6698        mut ind: &WlanFullmacChannelSwitchInfo,
6699        ___deadline: zx::MonotonicInstant,
6700    ) -> Result<(), fidl::Error> {
6701        let _response = self.client.send_query::<
6702            WlanFullmacImplIfcOnChannelSwitchRequest,
6703            fidl::encoding::EmptyPayload,
6704            WlanFullmacImplIfcMarker,
6705        >(
6706            (ind,),
6707            0x21db0b8f71cae647,
6708            fidl::encoding::DynamicFlags::empty(),
6709            ___deadline,
6710        )?;
6711        Ok(_response)
6712    }
6713
6714    pub fn r#signal_report(
6715        &self,
6716        mut ind: &WlanFullmacSignalReportIndication,
6717        ___deadline: zx::MonotonicInstant,
6718    ) -> Result<(), fidl::Error> {
6719        let _response = self.client.send_query::<
6720            WlanFullmacImplIfcSignalReportRequest,
6721            fidl::encoding::EmptyPayload,
6722            WlanFullmacImplIfcMarker,
6723        >(
6724            (ind,),
6725            0x79679fa8789c3d9f,
6726            fidl::encoding::DynamicFlags::empty(),
6727            ___deadline,
6728        )?;
6729        Ok(_response)
6730    }
6731
6732    /// Report that the monitored RSSI crossed a configured threshold.
6733    pub fn r#on_rssi_threshold_breached(
6734        &self,
6735        mut payload: &WlanFullmacImplIfcOnRssiThresholdBreachedRequest,
6736    ) -> Result<(), fidl::Error> {
6737        self.client.send::<WlanFullmacImplIfcOnRssiThresholdBreachedRequest>(
6738            payload,
6739            0x5ddcf835177124b6,
6740            fidl::encoding::DynamicFlags::empty(),
6741        )
6742    }
6743
6744    /// Report that an EAPoL frame was received.
6745    pub fn r#eapol_ind(
6746        &self,
6747        mut payload: &WlanFullmacImplIfcEapolIndRequest,
6748        ___deadline: zx::MonotonicInstant,
6749    ) -> Result<(), fidl::Error> {
6750        let _response = self.client.send_query::<
6751            WlanFullmacImplIfcEapolIndRequest,
6752            fidl::encoding::EmptyPayload,
6753            WlanFullmacImplIfcMarker,
6754        >(
6755            payload,
6756            0x3de8ec1eda10d1d0,
6757            fidl::encoding::DynamicFlags::empty(),
6758            ___deadline,
6759        )?;
6760        Ok(_response)
6761    }
6762
6763    /// Inform the platform that the PMK is available after a driver-handled SAE handshake.
6764    pub fn r#on_pmk_available(
6765        &self,
6766        mut payload: &WlanFullmacImplIfcOnPmkAvailableRequest,
6767        ___deadline: zx::MonotonicInstant,
6768    ) -> Result<(), fidl::Error> {
6769        let _response = self.client.send_query::<
6770            WlanFullmacImplIfcOnPmkAvailableRequest,
6771            fidl::encoding::EmptyPayload,
6772            WlanFullmacImplIfcMarker,
6773        >(
6774            payload,
6775            0x5cedd8d9be28a17e,
6776            fidl::encoding::DynamicFlags::empty(),
6777            ___deadline,
6778        )?;
6779        Ok(_response)
6780    }
6781
6782    pub fn r#sae_handshake_ind(
6783        &self,
6784        mut payload: &WlanFullmacImplIfcSaeHandshakeIndRequest,
6785        ___deadline: zx::MonotonicInstant,
6786    ) -> Result<(), fidl::Error> {
6787        let _response = self.client.send_query::<
6788            WlanFullmacImplIfcSaeHandshakeIndRequest,
6789            fidl::encoding::EmptyPayload,
6790            WlanFullmacImplIfcMarker,
6791        >(
6792            payload,
6793            0x4f3d53885503a1d8,
6794            fidl::encoding::DynamicFlags::empty(),
6795            ___deadline,
6796        )?;
6797        Ok(_response)
6798    }
6799
6800    /// Receive an SAE authentication frame.
6801    pub fn r#sae_frame_rx(
6802        &self,
6803        mut frame: &SaeFrame,
6804        ___deadline: zx::MonotonicInstant,
6805    ) -> Result<(), fidl::Error> {
6806        let _response = self.client.send_query::<
6807            WlanFullmacImplIfcSaeFrameRxRequest,
6808            fidl::encoding::EmptyPayload,
6809            WlanFullmacImplIfcMarker,
6810        >(
6811            (frame,),
6812            0x51650906857ed4d4,
6813            fidl::encoding::DynamicFlags::empty(),
6814            ___deadline,
6815        )?;
6816        Ok(_response)
6817    }
6818
6819    pub fn r#on_wmm_status_resp(
6820        &self,
6821        mut status: i32,
6822        mut wmm_params: &fidl_fuchsia_wlan_driver::WlanWmmParameters,
6823        ___deadline: zx::MonotonicInstant,
6824    ) -> Result<(), fidl::Error> {
6825        let _response = self.client.send_query::<
6826            WlanFullmacImplIfcOnWmmStatusRespRequest,
6827            fidl::encoding::EmptyPayload,
6828            WlanFullmacImplIfcMarker,
6829        >(
6830            (status, wmm_params,),
6831            0x6823a88bf3ba8b2a,
6832            fidl::encoding::DynamicFlags::empty(),
6833            ___deadline,
6834        )?;
6835        Ok(_response)
6836    }
6837}
6838
6839#[cfg(target_os = "fuchsia")]
6840impl From<WlanFullmacImplIfcSynchronousProxy> for zx::NullableHandle {
6841    fn from(value: WlanFullmacImplIfcSynchronousProxy) -> Self {
6842        value.into_channel().into()
6843    }
6844}
6845
6846#[cfg(target_os = "fuchsia")]
6847impl From<fidl::Channel> for WlanFullmacImplIfcSynchronousProxy {
6848    fn from(value: fidl::Channel) -> Self {
6849        Self::new(value)
6850    }
6851}
6852
6853#[cfg(target_os = "fuchsia")]
6854impl fidl::endpoints::FromClient for WlanFullmacImplIfcSynchronousProxy {
6855    type Protocol = WlanFullmacImplIfcMarker;
6856
6857    fn from_client(value: fidl::endpoints::ClientEnd<WlanFullmacImplIfcMarker>) -> Self {
6858        Self::new(value.into_channel())
6859    }
6860}
6861
6862#[derive(Debug, Clone)]
6863pub struct WlanFullmacImplIfcProxy {
6864    client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
6865}
6866
6867impl fidl::endpoints::Proxy for WlanFullmacImplIfcProxy {
6868    type Protocol = WlanFullmacImplIfcMarker;
6869
6870    fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
6871        Self::new(inner)
6872    }
6873
6874    fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
6875        self.client.into_channel().map_err(|client| Self { client })
6876    }
6877
6878    fn as_channel(&self) -> &::fidl::AsyncChannel {
6879        self.client.as_channel()
6880    }
6881}
6882
6883impl WlanFullmacImplIfcProxy {
6884    /// Create a new Proxy for fuchsia.wlan.fullmac/WlanFullmacImplIfc.
6885    pub fn new(channel: ::fidl::AsyncChannel) -> Self {
6886        let protocol_name =
6887            <WlanFullmacImplIfcMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
6888        Self { client: fidl::client::Client::new(channel, protocol_name) }
6889    }
6890
6891    /// Get a Stream of events from the remote end of the protocol.
6892    ///
6893    /// # Panics
6894    ///
6895    /// Panics if the event stream was already taken.
6896    pub fn take_event_stream(&self) -> WlanFullmacImplIfcEventStream {
6897        WlanFullmacImplIfcEventStream { event_receiver: self.client.take_event_receiver() }
6898    }
6899
6900    pub fn r#on_scan_result(
6901        &self,
6902        mut payload: &WlanFullmacImplIfcOnScanResultRequest,
6903    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6904        WlanFullmacImplIfcProxyInterface::r#on_scan_result(self, payload)
6905    }
6906
6907    pub fn r#on_scan_end(
6908        &self,
6909        mut payload: &WlanFullmacImplIfcOnScanEndRequest,
6910    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6911        WlanFullmacImplIfcProxyInterface::r#on_scan_end(self, payload)
6912    }
6913
6914    /// Indicates to MLME that an individual scan within the scheduled scan plan has been completed
6915    /// and results are available.
6916    pub fn r#on_scheduled_scan_matches_available(
6917        &self,
6918        mut payload: &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest,
6919    ) -> Result<(), fidl::Error> {
6920        WlanFullmacImplIfcProxyInterface::r#on_scheduled_scan_matches_available(self, payload)
6921    }
6922
6923    /// Indicates to MLME that scheduled scanning has been stopped by the firmware.
6924    pub fn r#on_scheduled_scan_stopped_by_firmware(
6925        &self,
6926        mut payload: &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest,
6927    ) -> Result<(), fidl::Error> {
6928        WlanFullmacImplIfcProxyInterface::r#on_scheduled_scan_stopped_by_firmware(self, payload)
6929    }
6930
6931    pub fn r#connect_conf(
6932        &self,
6933        mut payload: &WlanFullmacImplIfcConnectConfRequest,
6934    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6935        WlanFullmacImplIfcProxyInterface::r#connect_conf(self, payload)
6936    }
6937
6938    /// Report the result of an MLME-initiated roam attempt.
6939    pub fn r#roam_conf(
6940        &self,
6941        mut payload: &WlanFullmacImplIfcRoamConfRequest,
6942    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6943        WlanFullmacImplIfcProxyInterface::r#roam_conf(self, payload)
6944    }
6945
6946    /// Report that a fullmac-initiated roam attempt is in progress.
6947    /// Fullmac must send this start indication for all roam attempts.
6948    pub fn r#roam_start_ind(
6949        &self,
6950        mut payload: &WlanFullmacImplIfcRoamStartIndRequest,
6951    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6952        WlanFullmacImplIfcProxyInterface::r#roam_start_ind(self, payload)
6953    }
6954
6955    /// Report the result of a fullmac-initiated roam attempt.
6956    pub fn r#roam_result_ind(
6957        &self,
6958        mut payload: &WlanFullmacImplIfcRoamResultIndRequest,
6959    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6960        WlanFullmacImplIfcProxyInterface::r#roam_result_ind(self, payload)
6961    }
6962
6963    pub fn r#auth_ind(
6964        &self,
6965        mut payload: &WlanFullmacImplIfcAuthIndRequest,
6966    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6967        WlanFullmacImplIfcProxyInterface::r#auth_ind(self, payload)
6968    }
6969
6970    pub fn r#deauth_conf(
6971        &self,
6972        mut payload: &WlanFullmacImplIfcDeauthConfRequest,
6973    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6974        WlanFullmacImplIfcProxyInterface::r#deauth_conf(self, payload)
6975    }
6976
6977    /// Report that the driver deauthenticated.
6978    pub fn r#deauth_ind(
6979        &self,
6980        mut payload: &WlanFullmacImplIfcDeauthIndRequest,
6981    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6982        WlanFullmacImplIfcProxyInterface::r#deauth_ind(self, payload)
6983    }
6984
6985    pub fn r#assoc_ind(
6986        &self,
6987        mut payload: &WlanFullmacImplIfcAssocIndRequest,
6988    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6989        WlanFullmacImplIfcProxyInterface::r#assoc_ind(self, payload)
6990    }
6991
6992    /// Report the result of a previously-issued disassociate request. IEEE 802.11-2020 6.3.9.2.
6993    pub fn r#disassoc_conf(
6994        &self,
6995        mut payload: &WlanFullmacImplIfcDisassocConfRequest,
6996    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
6997        WlanFullmacImplIfcProxyInterface::r#disassoc_conf(self, payload)
6998    }
6999
7000    /// Report that disassociation with the specified peer occurred (IEEE 802.11-2020 6.3.9.3).
7001    pub fn r#disassoc_ind(
7002        &self,
7003        mut payload: &WlanFullmacImplIfcDisassocIndRequest,
7004    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7005        WlanFullmacImplIfcProxyInterface::r#disassoc_ind(self, payload)
7006    }
7007
7008    /// Report the result of a WlanFullmacImpl::StartBss request.
7009    pub fn r#start_conf(
7010        &self,
7011        mut payload: &WlanFullmacImplIfcStartConfRequest,
7012    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7013        WlanFullmacImplIfcProxyInterface::r#start_conf(self, payload)
7014    }
7015
7016    /// Report the result of a WlanFullmacImpl::StopBss request.
7017    pub fn r#stop_conf(
7018        &self,
7019        mut payload: &WlanFullmacImplIfcStopConfRequest,
7020    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7021        WlanFullmacImplIfcProxyInterface::r#stop_conf(self, payload)
7022    }
7023
7024    /// Report the result of a EAPoL frame transmission (IEEE 802.11-2020 6.3.22.2).
7025    /// EAPoL frames are transmitted by the platform via WlanFullmacImpl::EapolTx.
7026    pub fn r#eapol_conf(
7027        &self,
7028        mut payload: &WlanFullmacImplIfcEapolConfRequest,
7029    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7030        WlanFullmacImplIfcProxyInterface::r#eapol_conf(self, payload)
7031    }
7032
7033    pub fn r#on_channel_switch(
7034        &self,
7035        mut ind: &WlanFullmacChannelSwitchInfo,
7036    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7037        WlanFullmacImplIfcProxyInterface::r#on_channel_switch(self, ind)
7038    }
7039
7040    pub fn r#signal_report(
7041        &self,
7042        mut ind: &WlanFullmacSignalReportIndication,
7043    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7044        WlanFullmacImplIfcProxyInterface::r#signal_report(self, ind)
7045    }
7046
7047    /// Report that the monitored RSSI crossed a configured threshold.
7048    pub fn r#on_rssi_threshold_breached(
7049        &self,
7050        mut payload: &WlanFullmacImplIfcOnRssiThresholdBreachedRequest,
7051    ) -> Result<(), fidl::Error> {
7052        WlanFullmacImplIfcProxyInterface::r#on_rssi_threshold_breached(self, payload)
7053    }
7054
7055    /// Report that an EAPoL frame was received.
7056    pub fn r#eapol_ind(
7057        &self,
7058        mut payload: &WlanFullmacImplIfcEapolIndRequest,
7059    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7060        WlanFullmacImplIfcProxyInterface::r#eapol_ind(self, payload)
7061    }
7062
7063    /// Inform the platform that the PMK is available after a driver-handled SAE handshake.
7064    pub fn r#on_pmk_available(
7065        &self,
7066        mut payload: &WlanFullmacImplIfcOnPmkAvailableRequest,
7067    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7068        WlanFullmacImplIfcProxyInterface::r#on_pmk_available(self, payload)
7069    }
7070
7071    pub fn r#sae_handshake_ind(
7072        &self,
7073        mut payload: &WlanFullmacImplIfcSaeHandshakeIndRequest,
7074    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7075        WlanFullmacImplIfcProxyInterface::r#sae_handshake_ind(self, payload)
7076    }
7077
7078    /// Receive an SAE authentication frame.
7079    pub fn r#sae_frame_rx(
7080        &self,
7081        mut frame: &SaeFrame,
7082    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7083        WlanFullmacImplIfcProxyInterface::r#sae_frame_rx(self, frame)
7084    }
7085
7086    pub fn r#on_wmm_status_resp(
7087        &self,
7088        mut status: i32,
7089        mut wmm_params: &fidl_fuchsia_wlan_driver::WlanWmmParameters,
7090    ) -> fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect> {
7091        WlanFullmacImplIfcProxyInterface::r#on_wmm_status_resp(self, status, wmm_params)
7092    }
7093}
7094
7095impl WlanFullmacImplIfcProxyInterface for WlanFullmacImplIfcProxy {
7096    type OnScanResultResponseFut =
7097        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7098    fn r#on_scan_result(
7099        &self,
7100        mut payload: &WlanFullmacImplIfcOnScanResultRequest,
7101    ) -> Self::OnScanResultResponseFut {
7102        fn _decode(
7103            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7104        ) -> Result<(), fidl::Error> {
7105            let _response = fidl::client::decode_transaction_body::<
7106                fidl::encoding::EmptyPayload,
7107                fidl::encoding::DefaultFuchsiaResourceDialect,
7108                0x29aa81dc570f7a3e,
7109            >(_buf?)?;
7110            Ok(_response)
7111        }
7112        self.client.send_query_and_decode::<WlanFullmacImplIfcOnScanResultRequest, ()>(
7113            payload,
7114            0x29aa81dc570f7a3e,
7115            fidl::encoding::DynamicFlags::empty(),
7116            _decode,
7117        )
7118    }
7119
7120    type OnScanEndResponseFut =
7121        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7122    fn r#on_scan_end(
7123        &self,
7124        mut payload: &WlanFullmacImplIfcOnScanEndRequest,
7125    ) -> Self::OnScanEndResponseFut {
7126        fn _decode(
7127            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7128        ) -> Result<(), fidl::Error> {
7129            let _response = fidl::client::decode_transaction_body::<
7130                fidl::encoding::EmptyPayload,
7131                fidl::encoding::DefaultFuchsiaResourceDialect,
7132                0x7cd8aff80d27073c,
7133            >(_buf?)?;
7134            Ok(_response)
7135        }
7136        self.client.send_query_and_decode::<WlanFullmacImplIfcOnScanEndRequest, ()>(
7137            payload,
7138            0x7cd8aff80d27073c,
7139            fidl::encoding::DynamicFlags::empty(),
7140            _decode,
7141        )
7142    }
7143
7144    fn r#on_scheduled_scan_matches_available(
7145        &self,
7146        mut payload: &WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest,
7147    ) -> Result<(), fidl::Error> {
7148        self.client.send::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(
7149            payload,
7150            0x3036cd8b8b35e81b,
7151            fidl::encoding::DynamicFlags::empty(),
7152        )
7153    }
7154
7155    fn r#on_scheduled_scan_stopped_by_firmware(
7156        &self,
7157        mut payload: &WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest,
7158    ) -> Result<(), fidl::Error> {
7159        self.client.send::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(
7160            payload,
7161            0x50353be2c3029817,
7162            fidl::encoding::DynamicFlags::empty(),
7163        )
7164    }
7165
7166    type ConnectConfResponseFut =
7167        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7168    fn r#connect_conf(
7169        &self,
7170        mut payload: &WlanFullmacImplIfcConnectConfRequest,
7171    ) -> Self::ConnectConfResponseFut {
7172        fn _decode(
7173            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7174        ) -> Result<(), fidl::Error> {
7175            let _response = fidl::client::decode_transaction_body::<
7176                fidl::encoding::EmptyPayload,
7177                fidl::encoding::DefaultFuchsiaResourceDialect,
7178                0x3c22c6d80b2a2759,
7179            >(_buf?)?;
7180            Ok(_response)
7181        }
7182        self.client.send_query_and_decode::<WlanFullmacImplIfcConnectConfRequest, ()>(
7183            payload,
7184            0x3c22c6d80b2a2759,
7185            fidl::encoding::DynamicFlags::empty(),
7186            _decode,
7187        )
7188    }
7189
7190    type RoamConfResponseFut =
7191        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7192    fn r#roam_conf(
7193        &self,
7194        mut payload: &WlanFullmacImplIfcRoamConfRequest,
7195    ) -> Self::RoamConfResponseFut {
7196        fn _decode(
7197            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7198        ) -> Result<(), fidl::Error> {
7199            let _response = fidl::client::decode_transaction_body::<
7200                fidl::encoding::EmptyPayload,
7201                fidl::encoding::DefaultFuchsiaResourceDialect,
7202                0x368b2a5b903b3f7b,
7203            >(_buf?)?;
7204            Ok(_response)
7205        }
7206        self.client.send_query_and_decode::<WlanFullmacImplIfcRoamConfRequest, ()>(
7207            payload,
7208            0x368b2a5b903b3f7b,
7209            fidl::encoding::DynamicFlags::empty(),
7210            _decode,
7211        )
7212    }
7213
7214    type RoamStartIndResponseFut =
7215        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7216    fn r#roam_start_ind(
7217        &self,
7218        mut payload: &WlanFullmacImplIfcRoamStartIndRequest,
7219    ) -> Self::RoamStartIndResponseFut {
7220        fn _decode(
7221            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7222        ) -> Result<(), fidl::Error> {
7223            let _response = fidl::client::decode_transaction_body::<
7224                fidl::encoding::EmptyPayload,
7225                fidl::encoding::DefaultFuchsiaResourceDialect,
7226                0x23e1d9368935e7e4,
7227            >(_buf?)?;
7228            Ok(_response)
7229        }
7230        self.client.send_query_and_decode::<WlanFullmacImplIfcRoamStartIndRequest, ()>(
7231            payload,
7232            0x23e1d9368935e7e4,
7233            fidl::encoding::DynamicFlags::empty(),
7234            _decode,
7235        )
7236    }
7237
7238    type RoamResultIndResponseFut =
7239        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7240    fn r#roam_result_ind(
7241        &self,
7242        mut payload: &WlanFullmacImplIfcRoamResultIndRequest,
7243    ) -> Self::RoamResultIndResponseFut {
7244        fn _decode(
7245            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7246        ) -> Result<(), fidl::Error> {
7247            let _response = fidl::client::decode_transaction_body::<
7248                fidl::encoding::EmptyPayload,
7249                fidl::encoding::DefaultFuchsiaResourceDialect,
7250                0x7081c1b1ceea4914,
7251            >(_buf?)?;
7252            Ok(_response)
7253        }
7254        self.client.send_query_and_decode::<WlanFullmacImplIfcRoamResultIndRequest, ()>(
7255            payload,
7256            0x7081c1b1ceea4914,
7257            fidl::encoding::DynamicFlags::empty(),
7258            _decode,
7259        )
7260    }
7261
7262    type AuthIndResponseFut =
7263        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7264    fn r#auth_ind(
7265        &self,
7266        mut payload: &WlanFullmacImplIfcAuthIndRequest,
7267    ) -> Self::AuthIndResponseFut {
7268        fn _decode(
7269            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7270        ) -> Result<(), fidl::Error> {
7271            let _response = fidl::client::decode_transaction_body::<
7272                fidl::encoding::EmptyPayload,
7273                fidl::encoding::DefaultFuchsiaResourceDialect,
7274                0x270e1f8889650d0b,
7275            >(_buf?)?;
7276            Ok(_response)
7277        }
7278        self.client.send_query_and_decode::<WlanFullmacImplIfcAuthIndRequest, ()>(
7279            payload,
7280            0x270e1f8889650d0b,
7281            fidl::encoding::DynamicFlags::empty(),
7282            _decode,
7283        )
7284    }
7285
7286    type DeauthConfResponseFut =
7287        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7288    fn r#deauth_conf(
7289        &self,
7290        mut payload: &WlanFullmacImplIfcDeauthConfRequest,
7291    ) -> Self::DeauthConfResponseFut {
7292        fn _decode(
7293            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7294        ) -> Result<(), fidl::Error> {
7295            let _response = fidl::client::decode_transaction_body::<
7296                fidl::encoding::EmptyPayload,
7297                fidl::encoding::DefaultFuchsiaResourceDialect,
7298                0x2c94b0d7258111b7,
7299            >(_buf?)?;
7300            Ok(_response)
7301        }
7302        self.client.send_query_and_decode::<WlanFullmacImplIfcDeauthConfRequest, ()>(
7303            payload,
7304            0x2c94b0d7258111b7,
7305            fidl::encoding::DynamicFlags::empty(),
7306            _decode,
7307        )
7308    }
7309
7310    type DeauthIndResponseFut =
7311        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7312    fn r#deauth_ind(
7313        &self,
7314        mut payload: &WlanFullmacImplIfcDeauthIndRequest,
7315    ) -> Self::DeauthIndResponseFut {
7316        fn _decode(
7317            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7318        ) -> Result<(), fidl::Error> {
7319            let _response = fidl::client::decode_transaction_body::<
7320                fidl::encoding::EmptyPayload,
7321                fidl::encoding::DefaultFuchsiaResourceDialect,
7322                0x26cd27cdadd8dbaf,
7323            >(_buf?)?;
7324            Ok(_response)
7325        }
7326        self.client.send_query_and_decode::<WlanFullmacImplIfcDeauthIndRequest, ()>(
7327            payload,
7328            0x26cd27cdadd8dbaf,
7329            fidl::encoding::DynamicFlags::empty(),
7330            _decode,
7331        )
7332    }
7333
7334    type AssocIndResponseFut =
7335        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7336    fn r#assoc_ind(
7337        &self,
7338        mut payload: &WlanFullmacImplIfcAssocIndRequest,
7339    ) -> Self::AssocIndResponseFut {
7340        fn _decode(
7341            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7342        ) -> Result<(), fidl::Error> {
7343            let _response = fidl::client::decode_transaction_body::<
7344                fidl::encoding::EmptyPayload,
7345                fidl::encoding::DefaultFuchsiaResourceDialect,
7346                0x3e44529e3dc179ce,
7347            >(_buf?)?;
7348            Ok(_response)
7349        }
7350        self.client.send_query_and_decode::<WlanFullmacImplIfcAssocIndRequest, ()>(
7351            payload,
7352            0x3e44529e3dc179ce,
7353            fidl::encoding::DynamicFlags::empty(),
7354            _decode,
7355        )
7356    }
7357
7358    type DisassocConfResponseFut =
7359        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7360    fn r#disassoc_conf(
7361        &self,
7362        mut payload: &WlanFullmacImplIfcDisassocConfRequest,
7363    ) -> Self::DisassocConfResponseFut {
7364        fn _decode(
7365            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7366        ) -> Result<(), fidl::Error> {
7367            let _response = fidl::client::decode_transaction_body::<
7368                fidl::encoding::EmptyPayload,
7369                fidl::encoding::DefaultFuchsiaResourceDialect,
7370                0x7c713bcd58a76cb3,
7371            >(_buf?)?;
7372            Ok(_response)
7373        }
7374        self.client.send_query_and_decode::<WlanFullmacImplIfcDisassocConfRequest, ()>(
7375            payload,
7376            0x7c713bcd58a76cb3,
7377            fidl::encoding::DynamicFlags::empty(),
7378            _decode,
7379        )
7380    }
7381
7382    type DisassocIndResponseFut =
7383        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7384    fn r#disassoc_ind(
7385        &self,
7386        mut payload: &WlanFullmacImplIfcDisassocIndRequest,
7387    ) -> Self::DisassocIndResponseFut {
7388        fn _decode(
7389            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7390        ) -> Result<(), fidl::Error> {
7391            let _response = fidl::client::decode_transaction_body::<
7392                fidl::encoding::EmptyPayload,
7393                fidl::encoding::DefaultFuchsiaResourceDialect,
7394                0x6667b381b7f3990f,
7395            >(_buf?)?;
7396            Ok(_response)
7397        }
7398        self.client.send_query_and_decode::<WlanFullmacImplIfcDisassocIndRequest, ()>(
7399            payload,
7400            0x6667b381b7f3990f,
7401            fidl::encoding::DynamicFlags::empty(),
7402            _decode,
7403        )
7404    }
7405
7406    type StartConfResponseFut =
7407        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7408    fn r#start_conf(
7409        &self,
7410        mut payload: &WlanFullmacImplIfcStartConfRequest,
7411    ) -> Self::StartConfResponseFut {
7412        fn _decode(
7413            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7414        ) -> Result<(), fidl::Error> {
7415            let _response = fidl::client::decode_transaction_body::<
7416                fidl::encoding::EmptyPayload,
7417                fidl::encoding::DefaultFuchsiaResourceDialect,
7418                0x3e9b9641f3ddc7fc,
7419            >(_buf?)?;
7420            Ok(_response)
7421        }
7422        self.client.send_query_and_decode::<WlanFullmacImplIfcStartConfRequest, ()>(
7423            payload,
7424            0x3e9b9641f3ddc7fc,
7425            fidl::encoding::DynamicFlags::empty(),
7426            _decode,
7427        )
7428    }
7429
7430    type StopConfResponseFut =
7431        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7432    fn r#stop_conf(
7433        &self,
7434        mut payload: &WlanFullmacImplIfcStopConfRequest,
7435    ) -> Self::StopConfResponseFut {
7436        fn _decode(
7437            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7438        ) -> Result<(), fidl::Error> {
7439            let _response = fidl::client::decode_transaction_body::<
7440                fidl::encoding::EmptyPayload,
7441                fidl::encoding::DefaultFuchsiaResourceDialect,
7442                0x320a5ff227a4e9df,
7443            >(_buf?)?;
7444            Ok(_response)
7445        }
7446        self.client.send_query_and_decode::<WlanFullmacImplIfcStopConfRequest, ()>(
7447            payload,
7448            0x320a5ff227a4e9df,
7449            fidl::encoding::DynamicFlags::empty(),
7450            _decode,
7451        )
7452    }
7453
7454    type EapolConfResponseFut =
7455        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7456    fn r#eapol_conf(
7457        &self,
7458        mut payload: &WlanFullmacImplIfcEapolConfRequest,
7459    ) -> Self::EapolConfResponseFut {
7460        fn _decode(
7461            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7462        ) -> Result<(), fidl::Error> {
7463            let _response = fidl::client::decode_transaction_body::<
7464                fidl::encoding::EmptyPayload,
7465                fidl::encoding::DefaultFuchsiaResourceDialect,
7466                0x77364db9cc3970ec,
7467            >(_buf?)?;
7468            Ok(_response)
7469        }
7470        self.client.send_query_and_decode::<WlanFullmacImplIfcEapolConfRequest, ()>(
7471            payload,
7472            0x77364db9cc3970ec,
7473            fidl::encoding::DynamicFlags::empty(),
7474            _decode,
7475        )
7476    }
7477
7478    type OnChannelSwitchResponseFut =
7479        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7480    fn r#on_channel_switch(
7481        &self,
7482        mut ind: &WlanFullmacChannelSwitchInfo,
7483    ) -> Self::OnChannelSwitchResponseFut {
7484        fn _decode(
7485            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7486        ) -> Result<(), fidl::Error> {
7487            let _response = fidl::client::decode_transaction_body::<
7488                fidl::encoding::EmptyPayload,
7489                fidl::encoding::DefaultFuchsiaResourceDialect,
7490                0x21db0b8f71cae647,
7491            >(_buf?)?;
7492            Ok(_response)
7493        }
7494        self.client.send_query_and_decode::<WlanFullmacImplIfcOnChannelSwitchRequest, ()>(
7495            (ind,),
7496            0x21db0b8f71cae647,
7497            fidl::encoding::DynamicFlags::empty(),
7498            _decode,
7499        )
7500    }
7501
7502    type SignalReportResponseFut =
7503        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7504    fn r#signal_report(
7505        &self,
7506        mut ind: &WlanFullmacSignalReportIndication,
7507    ) -> Self::SignalReportResponseFut {
7508        fn _decode(
7509            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7510        ) -> Result<(), fidl::Error> {
7511            let _response = fidl::client::decode_transaction_body::<
7512                fidl::encoding::EmptyPayload,
7513                fidl::encoding::DefaultFuchsiaResourceDialect,
7514                0x79679fa8789c3d9f,
7515            >(_buf?)?;
7516            Ok(_response)
7517        }
7518        self.client.send_query_and_decode::<WlanFullmacImplIfcSignalReportRequest, ()>(
7519            (ind,),
7520            0x79679fa8789c3d9f,
7521            fidl::encoding::DynamicFlags::empty(),
7522            _decode,
7523        )
7524    }
7525
7526    fn r#on_rssi_threshold_breached(
7527        &self,
7528        mut payload: &WlanFullmacImplIfcOnRssiThresholdBreachedRequest,
7529    ) -> Result<(), fidl::Error> {
7530        self.client.send::<WlanFullmacImplIfcOnRssiThresholdBreachedRequest>(
7531            payload,
7532            0x5ddcf835177124b6,
7533            fidl::encoding::DynamicFlags::empty(),
7534        )
7535    }
7536
7537    type EapolIndResponseFut =
7538        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7539    fn r#eapol_ind(
7540        &self,
7541        mut payload: &WlanFullmacImplIfcEapolIndRequest,
7542    ) -> Self::EapolIndResponseFut {
7543        fn _decode(
7544            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7545        ) -> Result<(), fidl::Error> {
7546            let _response = fidl::client::decode_transaction_body::<
7547                fidl::encoding::EmptyPayload,
7548                fidl::encoding::DefaultFuchsiaResourceDialect,
7549                0x3de8ec1eda10d1d0,
7550            >(_buf?)?;
7551            Ok(_response)
7552        }
7553        self.client.send_query_and_decode::<WlanFullmacImplIfcEapolIndRequest, ()>(
7554            payload,
7555            0x3de8ec1eda10d1d0,
7556            fidl::encoding::DynamicFlags::empty(),
7557            _decode,
7558        )
7559    }
7560
7561    type OnPmkAvailableResponseFut =
7562        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7563    fn r#on_pmk_available(
7564        &self,
7565        mut payload: &WlanFullmacImplIfcOnPmkAvailableRequest,
7566    ) -> Self::OnPmkAvailableResponseFut {
7567        fn _decode(
7568            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7569        ) -> Result<(), fidl::Error> {
7570            let _response = fidl::client::decode_transaction_body::<
7571                fidl::encoding::EmptyPayload,
7572                fidl::encoding::DefaultFuchsiaResourceDialect,
7573                0x5cedd8d9be28a17e,
7574            >(_buf?)?;
7575            Ok(_response)
7576        }
7577        self.client.send_query_and_decode::<WlanFullmacImplIfcOnPmkAvailableRequest, ()>(
7578            payload,
7579            0x5cedd8d9be28a17e,
7580            fidl::encoding::DynamicFlags::empty(),
7581            _decode,
7582        )
7583    }
7584
7585    type SaeHandshakeIndResponseFut =
7586        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7587    fn r#sae_handshake_ind(
7588        &self,
7589        mut payload: &WlanFullmacImplIfcSaeHandshakeIndRequest,
7590    ) -> Self::SaeHandshakeIndResponseFut {
7591        fn _decode(
7592            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7593        ) -> Result<(), fidl::Error> {
7594            let _response = fidl::client::decode_transaction_body::<
7595                fidl::encoding::EmptyPayload,
7596                fidl::encoding::DefaultFuchsiaResourceDialect,
7597                0x4f3d53885503a1d8,
7598            >(_buf?)?;
7599            Ok(_response)
7600        }
7601        self.client.send_query_and_decode::<WlanFullmacImplIfcSaeHandshakeIndRequest, ()>(
7602            payload,
7603            0x4f3d53885503a1d8,
7604            fidl::encoding::DynamicFlags::empty(),
7605            _decode,
7606        )
7607    }
7608
7609    type SaeFrameRxResponseFut =
7610        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7611    fn r#sae_frame_rx(&self, mut frame: &SaeFrame) -> Self::SaeFrameRxResponseFut {
7612        fn _decode(
7613            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7614        ) -> Result<(), fidl::Error> {
7615            let _response = fidl::client::decode_transaction_body::<
7616                fidl::encoding::EmptyPayload,
7617                fidl::encoding::DefaultFuchsiaResourceDialect,
7618                0x51650906857ed4d4,
7619            >(_buf?)?;
7620            Ok(_response)
7621        }
7622        self.client.send_query_and_decode::<WlanFullmacImplIfcSaeFrameRxRequest, ()>(
7623            (frame,),
7624            0x51650906857ed4d4,
7625            fidl::encoding::DynamicFlags::empty(),
7626            _decode,
7627        )
7628    }
7629
7630    type OnWmmStatusRespResponseFut =
7631        fidl::client::QueryResponseFut<(), fidl::encoding::DefaultFuchsiaResourceDialect>;
7632    fn r#on_wmm_status_resp(
7633        &self,
7634        mut status: i32,
7635        mut wmm_params: &fidl_fuchsia_wlan_driver::WlanWmmParameters,
7636    ) -> Self::OnWmmStatusRespResponseFut {
7637        fn _decode(
7638            mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
7639        ) -> Result<(), fidl::Error> {
7640            let _response = fidl::client::decode_transaction_body::<
7641                fidl::encoding::EmptyPayload,
7642                fidl::encoding::DefaultFuchsiaResourceDialect,
7643                0x6823a88bf3ba8b2a,
7644            >(_buf?)?;
7645            Ok(_response)
7646        }
7647        self.client.send_query_and_decode::<WlanFullmacImplIfcOnWmmStatusRespRequest, ()>(
7648            (status, wmm_params),
7649            0x6823a88bf3ba8b2a,
7650            fidl::encoding::DynamicFlags::empty(),
7651            _decode,
7652        )
7653    }
7654}
7655
7656pub struct WlanFullmacImplIfcEventStream {
7657    event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
7658}
7659
7660impl std::marker::Unpin for WlanFullmacImplIfcEventStream {}
7661
7662impl futures::stream::FusedStream for WlanFullmacImplIfcEventStream {
7663    fn is_terminated(&self) -> bool {
7664        self.event_receiver.is_terminated()
7665    }
7666}
7667
7668impl futures::Stream for WlanFullmacImplIfcEventStream {
7669    type Item = Result<WlanFullmacImplIfcEvent, fidl::Error>;
7670
7671    fn poll_next(
7672        mut self: std::pin::Pin<&mut Self>,
7673        cx: &mut std::task::Context<'_>,
7674    ) -> std::task::Poll<Option<Self::Item>> {
7675        match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
7676            &mut self.event_receiver,
7677            cx
7678        )?) {
7679            Some(buf) => std::task::Poll::Ready(Some(WlanFullmacImplIfcEvent::decode(buf))),
7680            None => std::task::Poll::Ready(None),
7681        }
7682    }
7683}
7684
7685#[derive(Debug)]
7686pub enum WlanFullmacImplIfcEvent {}
7687
7688impl WlanFullmacImplIfcEvent {
7689    /// Decodes a message buffer as a [`WlanFullmacImplIfcEvent`].
7690    fn decode(
7691        mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
7692    ) -> Result<WlanFullmacImplIfcEvent, fidl::Error> {
7693        let (bytes, _handles) = buf.split_mut();
7694        let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
7695        debug_assert_eq!(tx_header.tx_id, 0);
7696        match tx_header.ordinal {
7697            _ => Err(fidl::Error::UnknownOrdinal {
7698                ordinal: tx_header.ordinal,
7699                protocol_name:
7700                    <WlanFullmacImplIfcMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
7701            }),
7702        }
7703    }
7704}
7705
7706/// A Stream of incoming requests for fuchsia.wlan.fullmac/WlanFullmacImplIfc.
7707pub struct WlanFullmacImplIfcRequestStream {
7708    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7709    is_terminated: bool,
7710}
7711
7712impl std::marker::Unpin for WlanFullmacImplIfcRequestStream {}
7713
7714impl futures::stream::FusedStream for WlanFullmacImplIfcRequestStream {
7715    fn is_terminated(&self) -> bool {
7716        self.is_terminated
7717    }
7718}
7719
7720impl fidl::endpoints::RequestStream for WlanFullmacImplIfcRequestStream {
7721    type Protocol = WlanFullmacImplIfcMarker;
7722    type ControlHandle = WlanFullmacImplIfcControlHandle;
7723
7724    fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
7725        Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
7726    }
7727
7728    fn control_handle(&self) -> Self::ControlHandle {
7729        WlanFullmacImplIfcControlHandle { inner: self.inner.clone() }
7730    }
7731
7732    fn into_inner(
7733        self,
7734    ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
7735    {
7736        (self.inner, self.is_terminated)
7737    }
7738
7739    fn from_inner(
7740        inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
7741        is_terminated: bool,
7742    ) -> Self {
7743        Self { inner, is_terminated }
7744    }
7745}
7746
7747impl futures::Stream for WlanFullmacImplIfcRequestStream {
7748    type Item = Result<WlanFullmacImplIfcRequest, fidl::Error>;
7749
7750    fn poll_next(
7751        mut self: std::pin::Pin<&mut Self>,
7752        cx: &mut std::task::Context<'_>,
7753    ) -> std::task::Poll<Option<Self::Item>> {
7754        let this = &mut *self;
7755        if this.inner.check_shutdown(cx) {
7756            this.is_terminated = true;
7757            return std::task::Poll::Ready(None);
7758        }
7759        if this.is_terminated {
7760            panic!("polled WlanFullmacImplIfcRequestStream after completion");
7761        }
7762        fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
7763            |bytes, handles| {
7764                match this.inner.channel().read_etc(cx, bytes, handles) {
7765                    std::task::Poll::Ready(Ok(())) => {}
7766                    std::task::Poll::Pending => return std::task::Poll::Pending,
7767                    std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
7768                        this.is_terminated = true;
7769                        return std::task::Poll::Ready(None);
7770                    }
7771                    std::task::Poll::Ready(Err(e)) => {
7772                        return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
7773                            e.into(),
7774                        ))));
7775                    }
7776                }
7777
7778                // A message has been received from the channel
7779                let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
7780
7781                std::task::Poll::Ready(Some(match header.ordinal {
7782                0x29aa81dc570f7a3e => {
7783                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7784                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnScanResultRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7785                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnScanResultRequest>(&header, _body_bytes, handles, &mut req)?;
7786                    let control_handle = WlanFullmacImplIfcControlHandle {
7787                        inner: this.inner.clone(),
7788                    };
7789                    Ok(WlanFullmacImplIfcRequest::OnScanResult {payload: req,
7790                        responder: WlanFullmacImplIfcOnScanResultResponder {
7791                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7792                            tx_id: header.tx_id,
7793                        },
7794                    })
7795                }
7796                0x7cd8aff80d27073c => {
7797                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7798                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnScanEndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7799                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnScanEndRequest>(&header, _body_bytes, handles, &mut req)?;
7800                    let control_handle = WlanFullmacImplIfcControlHandle {
7801                        inner: this.inner.clone(),
7802                    };
7803                    Ok(WlanFullmacImplIfcRequest::OnScanEnd {payload: req,
7804                        responder: WlanFullmacImplIfcOnScanEndResponder {
7805                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7806                            tx_id: header.tx_id,
7807                        },
7808                    })
7809                }
7810                0x3036cd8b8b35e81b => {
7811                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
7812                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7813                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest>(&header, _body_bytes, handles, &mut req)?;
7814                    let control_handle = WlanFullmacImplIfcControlHandle {
7815                        inner: this.inner.clone(),
7816                    };
7817                    Ok(WlanFullmacImplIfcRequest::OnScheduledScanMatchesAvailable {payload: req,
7818                        control_handle,
7819                    })
7820                }
7821                0x50353be2c3029817 => {
7822                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
7823                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7824                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest>(&header, _body_bytes, handles, &mut req)?;
7825                    let control_handle = WlanFullmacImplIfcControlHandle {
7826                        inner: this.inner.clone(),
7827                    };
7828                    Ok(WlanFullmacImplIfcRequest::OnScheduledScanStoppedByFirmware {payload: req,
7829                        control_handle,
7830                    })
7831                }
7832                0x3c22c6d80b2a2759 => {
7833                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7834                    let mut req = fidl::new_empty!(WlanFullmacImplIfcConnectConfRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7835                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcConnectConfRequest>(&header, _body_bytes, handles, &mut req)?;
7836                    let control_handle = WlanFullmacImplIfcControlHandle {
7837                        inner: this.inner.clone(),
7838                    };
7839                    Ok(WlanFullmacImplIfcRequest::ConnectConf {payload: req,
7840                        responder: WlanFullmacImplIfcConnectConfResponder {
7841                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7842                            tx_id: header.tx_id,
7843                        },
7844                    })
7845                }
7846                0x368b2a5b903b3f7b => {
7847                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7848                    let mut req = fidl::new_empty!(WlanFullmacImplIfcRoamConfRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7849                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcRoamConfRequest>(&header, _body_bytes, handles, &mut req)?;
7850                    let control_handle = WlanFullmacImplIfcControlHandle {
7851                        inner: this.inner.clone(),
7852                    };
7853                    Ok(WlanFullmacImplIfcRequest::RoamConf {payload: req,
7854                        responder: WlanFullmacImplIfcRoamConfResponder {
7855                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7856                            tx_id: header.tx_id,
7857                        },
7858                    })
7859                }
7860                0x23e1d9368935e7e4 => {
7861                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7862                    let mut req = fidl::new_empty!(WlanFullmacImplIfcRoamStartIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7863                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcRoamStartIndRequest>(&header, _body_bytes, handles, &mut req)?;
7864                    let control_handle = WlanFullmacImplIfcControlHandle {
7865                        inner: this.inner.clone(),
7866                    };
7867                    Ok(WlanFullmacImplIfcRequest::RoamStartInd {payload: req,
7868                        responder: WlanFullmacImplIfcRoamStartIndResponder {
7869                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7870                            tx_id: header.tx_id,
7871                        },
7872                    })
7873                }
7874                0x7081c1b1ceea4914 => {
7875                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7876                    let mut req = fidl::new_empty!(WlanFullmacImplIfcRoamResultIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7877                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcRoamResultIndRequest>(&header, _body_bytes, handles, &mut req)?;
7878                    let control_handle = WlanFullmacImplIfcControlHandle {
7879                        inner: this.inner.clone(),
7880                    };
7881                    Ok(WlanFullmacImplIfcRequest::RoamResultInd {payload: req,
7882                        responder: WlanFullmacImplIfcRoamResultIndResponder {
7883                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7884                            tx_id: header.tx_id,
7885                        },
7886                    })
7887                }
7888                0x270e1f8889650d0b => {
7889                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7890                    let mut req = fidl::new_empty!(WlanFullmacImplIfcAuthIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7891                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcAuthIndRequest>(&header, _body_bytes, handles, &mut req)?;
7892                    let control_handle = WlanFullmacImplIfcControlHandle {
7893                        inner: this.inner.clone(),
7894                    };
7895                    Ok(WlanFullmacImplIfcRequest::AuthInd {payload: req,
7896                        responder: WlanFullmacImplIfcAuthIndResponder {
7897                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7898                            tx_id: header.tx_id,
7899                        },
7900                    })
7901                }
7902                0x2c94b0d7258111b7 => {
7903                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7904                    let mut req = fidl::new_empty!(WlanFullmacImplIfcDeauthConfRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7905                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcDeauthConfRequest>(&header, _body_bytes, handles, &mut req)?;
7906                    let control_handle = WlanFullmacImplIfcControlHandle {
7907                        inner: this.inner.clone(),
7908                    };
7909                    Ok(WlanFullmacImplIfcRequest::DeauthConf {payload: req,
7910                        responder: WlanFullmacImplIfcDeauthConfResponder {
7911                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7912                            tx_id: header.tx_id,
7913                        },
7914                    })
7915                }
7916                0x26cd27cdadd8dbaf => {
7917                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7918                    let mut req = fidl::new_empty!(WlanFullmacImplIfcDeauthIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7919                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcDeauthIndRequest>(&header, _body_bytes, handles, &mut req)?;
7920                    let control_handle = WlanFullmacImplIfcControlHandle {
7921                        inner: this.inner.clone(),
7922                    };
7923                    Ok(WlanFullmacImplIfcRequest::DeauthInd {payload: req,
7924                        responder: WlanFullmacImplIfcDeauthIndResponder {
7925                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7926                            tx_id: header.tx_id,
7927                        },
7928                    })
7929                }
7930                0x3e44529e3dc179ce => {
7931                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7932                    let mut req = fidl::new_empty!(WlanFullmacImplIfcAssocIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7933                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcAssocIndRequest>(&header, _body_bytes, handles, &mut req)?;
7934                    let control_handle = WlanFullmacImplIfcControlHandle {
7935                        inner: this.inner.clone(),
7936                    };
7937                    Ok(WlanFullmacImplIfcRequest::AssocInd {payload: req,
7938                        responder: WlanFullmacImplIfcAssocIndResponder {
7939                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7940                            tx_id: header.tx_id,
7941                        },
7942                    })
7943                }
7944                0x7c713bcd58a76cb3 => {
7945                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7946                    let mut req = fidl::new_empty!(WlanFullmacImplIfcDisassocConfRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7947                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcDisassocConfRequest>(&header, _body_bytes, handles, &mut req)?;
7948                    let control_handle = WlanFullmacImplIfcControlHandle {
7949                        inner: this.inner.clone(),
7950                    };
7951                    Ok(WlanFullmacImplIfcRequest::DisassocConf {payload: req,
7952                        responder: WlanFullmacImplIfcDisassocConfResponder {
7953                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7954                            tx_id: header.tx_id,
7955                        },
7956                    })
7957                }
7958                0x6667b381b7f3990f => {
7959                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7960                    let mut req = fidl::new_empty!(WlanFullmacImplIfcDisassocIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7961                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcDisassocIndRequest>(&header, _body_bytes, handles, &mut req)?;
7962                    let control_handle = WlanFullmacImplIfcControlHandle {
7963                        inner: this.inner.clone(),
7964                    };
7965                    Ok(WlanFullmacImplIfcRequest::DisassocInd {payload: req,
7966                        responder: WlanFullmacImplIfcDisassocIndResponder {
7967                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7968                            tx_id: header.tx_id,
7969                        },
7970                    })
7971                }
7972                0x3e9b9641f3ddc7fc => {
7973                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7974                    let mut req = fidl::new_empty!(WlanFullmacImplIfcStartConfRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7975                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcStartConfRequest>(&header, _body_bytes, handles, &mut req)?;
7976                    let control_handle = WlanFullmacImplIfcControlHandle {
7977                        inner: this.inner.clone(),
7978                    };
7979                    Ok(WlanFullmacImplIfcRequest::StartConf {payload: req,
7980                        responder: WlanFullmacImplIfcStartConfResponder {
7981                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7982                            tx_id: header.tx_id,
7983                        },
7984                    })
7985                }
7986                0x320a5ff227a4e9df => {
7987                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
7988                    let mut req = fidl::new_empty!(WlanFullmacImplIfcStopConfRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
7989                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcStopConfRequest>(&header, _body_bytes, handles, &mut req)?;
7990                    let control_handle = WlanFullmacImplIfcControlHandle {
7991                        inner: this.inner.clone(),
7992                    };
7993                    Ok(WlanFullmacImplIfcRequest::StopConf {payload: req,
7994                        responder: WlanFullmacImplIfcStopConfResponder {
7995                            control_handle: std::mem::ManuallyDrop::new(control_handle),
7996                            tx_id: header.tx_id,
7997                        },
7998                    })
7999                }
8000                0x77364db9cc3970ec => {
8001                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8002                    let mut req = fidl::new_empty!(WlanFullmacImplIfcEapolConfRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8003                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcEapolConfRequest>(&header, _body_bytes, handles, &mut req)?;
8004                    let control_handle = WlanFullmacImplIfcControlHandle {
8005                        inner: this.inner.clone(),
8006                    };
8007                    Ok(WlanFullmacImplIfcRequest::EapolConf {payload: req,
8008                        responder: WlanFullmacImplIfcEapolConfResponder {
8009                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8010                            tx_id: header.tx_id,
8011                        },
8012                    })
8013                }
8014                0x21db0b8f71cae647 => {
8015                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8016                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnChannelSwitchRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8017                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnChannelSwitchRequest>(&header, _body_bytes, handles, &mut req)?;
8018                    let control_handle = WlanFullmacImplIfcControlHandle {
8019                        inner: this.inner.clone(),
8020                    };
8021                    Ok(WlanFullmacImplIfcRequest::OnChannelSwitch {ind: req.ind,
8022
8023                        responder: WlanFullmacImplIfcOnChannelSwitchResponder {
8024                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8025                            tx_id: header.tx_id,
8026                        },
8027                    })
8028                }
8029                0x79679fa8789c3d9f => {
8030                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8031                    let mut req = fidl::new_empty!(WlanFullmacImplIfcSignalReportRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8032                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcSignalReportRequest>(&header, _body_bytes, handles, &mut req)?;
8033                    let control_handle = WlanFullmacImplIfcControlHandle {
8034                        inner: this.inner.clone(),
8035                    };
8036                    Ok(WlanFullmacImplIfcRequest::SignalReport {ind: req.ind,
8037
8038                        responder: WlanFullmacImplIfcSignalReportResponder {
8039                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8040                            tx_id: header.tx_id,
8041                        },
8042                    })
8043                }
8044                0x5ddcf835177124b6 => {
8045                    header.validate_request_tx_id(fidl::MethodType::OneWay)?;
8046                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnRssiThresholdBreachedRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8047                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnRssiThresholdBreachedRequest>(&header, _body_bytes, handles, &mut req)?;
8048                    let control_handle = WlanFullmacImplIfcControlHandle {
8049                        inner: this.inner.clone(),
8050                    };
8051                    Ok(WlanFullmacImplIfcRequest::OnRssiThresholdBreached {payload: req,
8052                        control_handle,
8053                    })
8054                }
8055                0x3de8ec1eda10d1d0 => {
8056                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8057                    let mut req = fidl::new_empty!(WlanFullmacImplIfcEapolIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8058                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcEapolIndRequest>(&header, _body_bytes, handles, &mut req)?;
8059                    let control_handle = WlanFullmacImplIfcControlHandle {
8060                        inner: this.inner.clone(),
8061                    };
8062                    Ok(WlanFullmacImplIfcRequest::EapolInd {payload: req,
8063                        responder: WlanFullmacImplIfcEapolIndResponder {
8064                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8065                            tx_id: header.tx_id,
8066                        },
8067                    })
8068                }
8069                0x5cedd8d9be28a17e => {
8070                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8071                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnPmkAvailableRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8072                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnPmkAvailableRequest>(&header, _body_bytes, handles, &mut req)?;
8073                    let control_handle = WlanFullmacImplIfcControlHandle {
8074                        inner: this.inner.clone(),
8075                    };
8076                    Ok(WlanFullmacImplIfcRequest::OnPmkAvailable {payload: req,
8077                        responder: WlanFullmacImplIfcOnPmkAvailableResponder {
8078                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8079                            tx_id: header.tx_id,
8080                        },
8081                    })
8082                }
8083                0x4f3d53885503a1d8 => {
8084                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8085                    let mut req = fidl::new_empty!(WlanFullmacImplIfcSaeHandshakeIndRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8086                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcSaeHandshakeIndRequest>(&header, _body_bytes, handles, &mut req)?;
8087                    let control_handle = WlanFullmacImplIfcControlHandle {
8088                        inner: this.inner.clone(),
8089                    };
8090                    Ok(WlanFullmacImplIfcRequest::SaeHandshakeInd {payload: req,
8091                        responder: WlanFullmacImplIfcSaeHandshakeIndResponder {
8092                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8093                            tx_id: header.tx_id,
8094                        },
8095                    })
8096                }
8097                0x51650906857ed4d4 => {
8098                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8099                    let mut req = fidl::new_empty!(WlanFullmacImplIfcSaeFrameRxRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8100                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcSaeFrameRxRequest>(&header, _body_bytes, handles, &mut req)?;
8101                    let control_handle = WlanFullmacImplIfcControlHandle {
8102                        inner: this.inner.clone(),
8103                    };
8104                    Ok(WlanFullmacImplIfcRequest::SaeFrameRx {frame: req.frame,
8105
8106                        responder: WlanFullmacImplIfcSaeFrameRxResponder {
8107                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8108                            tx_id: header.tx_id,
8109                        },
8110                    })
8111                }
8112                0x6823a88bf3ba8b2a => {
8113                    header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
8114                    let mut req = fidl::new_empty!(WlanFullmacImplIfcOnWmmStatusRespRequest, fidl::encoding::DefaultFuchsiaResourceDialect);
8115                    fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<WlanFullmacImplIfcOnWmmStatusRespRequest>(&header, _body_bytes, handles, &mut req)?;
8116                    let control_handle = WlanFullmacImplIfcControlHandle {
8117                        inner: this.inner.clone(),
8118                    };
8119                    Ok(WlanFullmacImplIfcRequest::OnWmmStatusResp {status: req.status,
8120wmm_params: req.wmm_params,
8121
8122                        responder: WlanFullmacImplIfcOnWmmStatusRespResponder {
8123                            control_handle: std::mem::ManuallyDrop::new(control_handle),
8124                            tx_id: header.tx_id,
8125                        },
8126                    })
8127                }
8128                _ => Err(fidl::Error::UnknownOrdinal {
8129                    ordinal: header.ordinal,
8130                    protocol_name: <WlanFullmacImplIfcMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
8131                }),
8132            }))
8133            },
8134        )
8135    }
8136}
8137
8138/// Protocol definition for communication from the fullmac vendor driver to the platform.
8139#[derive(Debug)]
8140pub enum WlanFullmacImplIfcRequest {
8141    OnScanResult {
8142        payload: WlanFullmacImplIfcOnScanResultRequest,
8143        responder: WlanFullmacImplIfcOnScanResultResponder,
8144    },
8145    OnScanEnd {
8146        payload: WlanFullmacImplIfcOnScanEndRequest,
8147        responder: WlanFullmacImplIfcOnScanEndResponder,
8148    },
8149    /// Indicates to MLME that an individual scan within the scheduled scan plan has been completed
8150    /// and results are available.
8151    OnScheduledScanMatchesAvailable {
8152        payload: WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest,
8153        control_handle: WlanFullmacImplIfcControlHandle,
8154    },
8155    /// Indicates to MLME that scheduled scanning has been stopped by the firmware.
8156    OnScheduledScanStoppedByFirmware {
8157        payload: WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest,
8158        control_handle: WlanFullmacImplIfcControlHandle,
8159    },
8160    ConnectConf {
8161        payload: WlanFullmacImplIfcConnectConfRequest,
8162        responder: WlanFullmacImplIfcConnectConfResponder,
8163    },
8164    /// Report the result of an MLME-initiated roam attempt.
8165    RoamConf {
8166        payload: WlanFullmacImplIfcRoamConfRequest,
8167        responder: WlanFullmacImplIfcRoamConfResponder,
8168    },
8169    /// Report that a fullmac-initiated roam attempt is in progress.
8170    /// Fullmac must send this start indication for all roam attempts.
8171    RoamStartInd {
8172        payload: WlanFullmacImplIfcRoamStartIndRequest,
8173        responder: WlanFullmacImplIfcRoamStartIndResponder,
8174    },
8175    /// Report the result of a fullmac-initiated roam attempt.
8176    RoamResultInd {
8177        payload: WlanFullmacImplIfcRoamResultIndRequest,
8178        responder: WlanFullmacImplIfcRoamResultIndResponder,
8179    },
8180    AuthInd {
8181        payload: WlanFullmacImplIfcAuthIndRequest,
8182        responder: WlanFullmacImplIfcAuthIndResponder,
8183    },
8184    DeauthConf {
8185        payload: WlanFullmacImplIfcDeauthConfRequest,
8186        responder: WlanFullmacImplIfcDeauthConfResponder,
8187    },
8188    /// Report that the driver deauthenticated.
8189    DeauthInd {
8190        payload: WlanFullmacImplIfcDeauthIndRequest,
8191        responder: WlanFullmacImplIfcDeauthIndResponder,
8192    },
8193    AssocInd {
8194        payload: WlanFullmacImplIfcAssocIndRequest,
8195        responder: WlanFullmacImplIfcAssocIndResponder,
8196    },
8197    /// Report the result of a previously-issued disassociate request. IEEE 802.11-2020 6.3.9.2.
8198    DisassocConf {
8199        payload: WlanFullmacImplIfcDisassocConfRequest,
8200        responder: WlanFullmacImplIfcDisassocConfResponder,
8201    },
8202    /// Report that disassociation with the specified peer occurred (IEEE 802.11-2020 6.3.9.3).
8203    DisassocInd {
8204        payload: WlanFullmacImplIfcDisassocIndRequest,
8205        responder: WlanFullmacImplIfcDisassocIndResponder,
8206    },
8207    /// Report the result of a WlanFullmacImpl::StartBss request.
8208    StartConf {
8209        payload: WlanFullmacImplIfcStartConfRequest,
8210        responder: WlanFullmacImplIfcStartConfResponder,
8211    },
8212    /// Report the result of a WlanFullmacImpl::StopBss request.
8213    StopConf {
8214        payload: WlanFullmacImplIfcStopConfRequest,
8215        responder: WlanFullmacImplIfcStopConfResponder,
8216    },
8217    /// Report the result of a EAPoL frame transmission (IEEE 802.11-2020 6.3.22.2).
8218    /// EAPoL frames are transmitted by the platform via WlanFullmacImpl::EapolTx.
8219    EapolConf {
8220        payload: WlanFullmacImplIfcEapolConfRequest,
8221        responder: WlanFullmacImplIfcEapolConfResponder,
8222    },
8223    OnChannelSwitch {
8224        ind: WlanFullmacChannelSwitchInfo,
8225        responder: WlanFullmacImplIfcOnChannelSwitchResponder,
8226    },
8227    SignalReport {
8228        ind: WlanFullmacSignalReportIndication,
8229        responder: WlanFullmacImplIfcSignalReportResponder,
8230    },
8231    /// Report that the monitored RSSI crossed a configured threshold.
8232    OnRssiThresholdBreached {
8233        payload: WlanFullmacImplIfcOnRssiThresholdBreachedRequest,
8234        control_handle: WlanFullmacImplIfcControlHandle,
8235    },
8236    /// Report that an EAPoL frame was received.
8237    EapolInd {
8238        payload: WlanFullmacImplIfcEapolIndRequest,
8239        responder: WlanFullmacImplIfcEapolIndResponder,
8240    },
8241    /// Inform the platform that the PMK is available after a driver-handled SAE handshake.
8242    OnPmkAvailable {
8243        payload: WlanFullmacImplIfcOnPmkAvailableRequest,
8244        responder: WlanFullmacImplIfcOnPmkAvailableResponder,
8245    },
8246    SaeHandshakeInd {
8247        payload: WlanFullmacImplIfcSaeHandshakeIndRequest,
8248        responder: WlanFullmacImplIfcSaeHandshakeIndResponder,
8249    },
8250    /// Receive an SAE authentication frame.
8251    SaeFrameRx { frame: SaeFrame, responder: WlanFullmacImplIfcSaeFrameRxResponder },
8252    OnWmmStatusResp {
8253        status: i32,
8254        wmm_params: fidl_fuchsia_wlan_driver::WlanWmmParameters,
8255        responder: WlanFullmacImplIfcOnWmmStatusRespResponder,
8256    },
8257}
8258
8259impl WlanFullmacImplIfcRequest {
8260    #[allow(irrefutable_let_patterns)]
8261    pub fn into_on_scan_result(
8262        self,
8263    ) -> Option<(WlanFullmacImplIfcOnScanResultRequest, WlanFullmacImplIfcOnScanResultResponder)>
8264    {
8265        if let WlanFullmacImplIfcRequest::OnScanResult { payload, responder } = self {
8266            Some((payload, responder))
8267        } else {
8268            None
8269        }
8270    }
8271
8272    #[allow(irrefutable_let_patterns)]
8273    pub fn into_on_scan_end(
8274        self,
8275    ) -> Option<(WlanFullmacImplIfcOnScanEndRequest, WlanFullmacImplIfcOnScanEndResponder)> {
8276        if let WlanFullmacImplIfcRequest::OnScanEnd { payload, responder } = self {
8277            Some((payload, responder))
8278        } else {
8279            None
8280        }
8281    }
8282
8283    #[allow(irrefutable_let_patterns)]
8284    pub fn into_on_scheduled_scan_matches_available(
8285        self,
8286    ) -> Option<(
8287        WlanFullmacImplIfcOnScheduledScanMatchesAvailableRequest,
8288        WlanFullmacImplIfcControlHandle,
8289    )> {
8290        if let WlanFullmacImplIfcRequest::OnScheduledScanMatchesAvailable {
8291            payload,
8292            control_handle,
8293        } = self
8294        {
8295            Some((payload, control_handle))
8296        } else {
8297            None
8298        }
8299    }
8300
8301    #[allow(irrefutable_let_patterns)]
8302    pub fn into_on_scheduled_scan_stopped_by_firmware(
8303        self,
8304    ) -> Option<(
8305        WlanFullmacImplIfcOnScheduledScanStoppedByFirmwareRequest,
8306        WlanFullmacImplIfcControlHandle,
8307    )> {
8308        if let WlanFullmacImplIfcRequest::OnScheduledScanStoppedByFirmware {
8309            payload,
8310            control_handle,
8311        } = self
8312        {
8313            Some((payload, control_handle))
8314        } else {
8315            None
8316        }
8317    }
8318
8319    #[allow(irrefutable_let_patterns)]
8320    pub fn into_connect_conf(
8321        self,
8322    ) -> Option<(WlanFullmacImplIfcConnectConfRequest, WlanFullmacImplIfcConnectConfResponder)>
8323    {
8324        if let WlanFullmacImplIfcRequest::ConnectConf { payload, responder } = self {
8325            Some((payload, responder))
8326        } else {
8327            None
8328        }
8329    }
8330
8331    #[allow(irrefutable_let_patterns)]
8332    pub fn into_roam_conf(
8333        self,
8334    ) -> Option<(WlanFullmacImplIfcRoamConfRequest, WlanFullmacImplIfcRoamConfResponder)> {
8335        if let WlanFullmacImplIfcRequest::RoamConf { payload, responder } = self {
8336            Some((payload, responder))
8337        } else {
8338            None
8339        }
8340    }
8341
8342    #[allow(irrefutable_let_patterns)]
8343    pub fn into_roam_start_ind(
8344        self,
8345    ) -> Option<(WlanFullmacImplIfcRoamStartIndRequest, WlanFullmacImplIfcRoamStartIndResponder)>
8346    {
8347        if let WlanFullmacImplIfcRequest::RoamStartInd { payload, responder } = self {
8348            Some((payload, responder))
8349        } else {
8350            None
8351        }
8352    }
8353
8354    #[allow(irrefutable_let_patterns)]
8355    pub fn into_roam_result_ind(
8356        self,
8357    ) -> Option<(WlanFullmacImplIfcRoamResultIndRequest, WlanFullmacImplIfcRoamResultIndResponder)>
8358    {
8359        if let WlanFullmacImplIfcRequest::RoamResultInd { payload, responder } = self {
8360            Some((payload, responder))
8361        } else {
8362            None
8363        }
8364    }
8365
8366    #[allow(irrefutable_let_patterns)]
8367    pub fn into_auth_ind(
8368        self,
8369    ) -> Option<(WlanFullmacImplIfcAuthIndRequest, WlanFullmacImplIfcAuthIndResponder)> {
8370        if let WlanFullmacImplIfcRequest::AuthInd { payload, responder } = self {
8371            Some((payload, responder))
8372        } else {
8373            None
8374        }
8375    }
8376
8377    #[allow(irrefutable_let_patterns)]
8378    pub fn into_deauth_conf(
8379        self,
8380    ) -> Option<(WlanFullmacImplIfcDeauthConfRequest, WlanFullmacImplIfcDeauthConfResponder)> {
8381        if let WlanFullmacImplIfcRequest::DeauthConf { payload, responder } = self {
8382            Some((payload, responder))
8383        } else {
8384            None
8385        }
8386    }
8387
8388    #[allow(irrefutable_let_patterns)]
8389    pub fn into_deauth_ind(
8390        self,
8391    ) -> Option<(WlanFullmacImplIfcDeauthIndRequest, WlanFullmacImplIfcDeauthIndResponder)> {
8392        if let WlanFullmacImplIfcRequest::DeauthInd { payload, responder } = self {
8393            Some((payload, responder))
8394        } else {
8395            None
8396        }
8397    }
8398
8399    #[allow(irrefutable_let_patterns)]
8400    pub fn into_assoc_ind(
8401        self,
8402    ) -> Option<(WlanFullmacImplIfcAssocIndRequest, WlanFullmacImplIfcAssocIndResponder)> {
8403        if let WlanFullmacImplIfcRequest::AssocInd { payload, responder } = self {
8404            Some((payload, responder))
8405        } else {
8406            None
8407        }
8408    }
8409
8410    #[allow(irrefutable_let_patterns)]
8411    pub fn into_disassoc_conf(
8412        self,
8413    ) -> Option<(WlanFullmacImplIfcDisassocConfRequest, WlanFullmacImplIfcDisassocConfResponder)>
8414    {
8415        if let WlanFullmacImplIfcRequest::DisassocConf { payload, responder } = self {
8416            Some((payload, responder))
8417        } else {
8418            None
8419        }
8420    }
8421
8422    #[allow(irrefutable_let_patterns)]
8423    pub fn into_disassoc_ind(
8424        self,
8425    ) -> Option<(WlanFullmacImplIfcDisassocIndRequest, WlanFullmacImplIfcDisassocIndResponder)>
8426    {
8427        if let WlanFullmacImplIfcRequest::DisassocInd { payload, responder } = self {
8428            Some((payload, responder))
8429        } else {
8430            None
8431        }
8432    }
8433
8434    #[allow(irrefutable_let_patterns)]
8435    pub fn into_start_conf(
8436        self,
8437    ) -> Option<(WlanFullmacImplIfcStartConfRequest, WlanFullmacImplIfcStartConfResponder)> {
8438        if let WlanFullmacImplIfcRequest::StartConf { payload, responder } = self {
8439            Some((payload, responder))
8440        } else {
8441            None
8442        }
8443    }
8444
8445    #[allow(irrefutable_let_patterns)]
8446    pub fn into_stop_conf(
8447        self,
8448    ) -> Option<(WlanFullmacImplIfcStopConfRequest, WlanFullmacImplIfcStopConfResponder)> {
8449        if let WlanFullmacImplIfcRequest::StopConf { payload, responder } = self {
8450            Some((payload, responder))
8451        } else {
8452            None
8453        }
8454    }
8455
8456    #[allow(irrefutable_let_patterns)]
8457    pub fn into_eapol_conf(
8458        self,
8459    ) -> Option<(WlanFullmacImplIfcEapolConfRequest, WlanFullmacImplIfcEapolConfResponder)> {
8460        if let WlanFullmacImplIfcRequest::EapolConf { payload, responder } = self {
8461            Some((payload, responder))
8462        } else {
8463            None
8464        }
8465    }
8466
8467    #[allow(irrefutable_let_patterns)]
8468    pub fn into_on_channel_switch(
8469        self,
8470    ) -> Option<(WlanFullmacChannelSwitchInfo, WlanFullmacImplIfcOnChannelSwitchResponder)> {
8471        if let WlanFullmacImplIfcRequest::OnChannelSwitch { ind, responder } = self {
8472            Some((ind, responder))
8473        } else {
8474            None
8475        }
8476    }
8477
8478    #[allow(irrefutable_let_patterns)]
8479    pub fn into_signal_report(
8480        self,
8481    ) -> Option<(WlanFullmacSignalReportIndication, WlanFullmacImplIfcSignalReportResponder)> {
8482        if let WlanFullmacImplIfcRequest::SignalReport { ind, responder } = self {
8483            Some((ind, responder))
8484        } else {
8485            None
8486        }
8487    }
8488
8489    #[allow(irrefutable_let_patterns)]
8490    pub fn into_on_rssi_threshold_breached(
8491        self,
8492    ) -> Option<(WlanFullmacImplIfcOnRssiThresholdBreachedRequest, WlanFullmacImplIfcControlHandle)>
8493    {
8494        if let WlanFullmacImplIfcRequest::OnRssiThresholdBreached { payload, control_handle } = self
8495        {
8496            Some((payload, control_handle))
8497        } else {
8498            None
8499        }
8500    }
8501
8502    #[allow(irrefutable_let_patterns)]
8503    pub fn into_eapol_ind(
8504        self,
8505    ) -> Option<(WlanFullmacImplIfcEapolIndRequest, WlanFullmacImplIfcEapolIndResponder)> {
8506        if let WlanFullmacImplIfcRequest::EapolInd { payload, responder } = self {
8507            Some((payload, responder))
8508        } else {
8509            None
8510        }
8511    }
8512
8513    #[allow(irrefutable_let_patterns)]
8514    pub fn into_on_pmk_available(
8515        self,
8516    ) -> Option<(WlanFullmacImplIfcOnPmkAvailableRequest, WlanFullmacImplIfcOnPmkAvailableResponder)>
8517    {
8518        if let WlanFullmacImplIfcRequest::OnPmkAvailable { payload, responder } = self {
8519            Some((payload, responder))
8520        } else {
8521            None
8522        }
8523    }
8524
8525    #[allow(irrefutable_let_patterns)]
8526    pub fn into_sae_handshake_ind(
8527        self,
8528    ) -> Option<(
8529        WlanFullmacImplIfcSaeHandshakeIndRequest,
8530        WlanFullmacImplIfcSaeHandshakeIndResponder,
8531    )> {
8532        if let WlanFullmacImplIfcRequest::SaeHandshakeInd { payload, responder } = self {
8533            Some((payload, responder))
8534        } else {
8535            None
8536        }
8537    }
8538
8539    #[allow(irrefutable_let_patterns)]
8540    pub fn into_sae_frame_rx(self) -> Option<(SaeFrame, WlanFullmacImplIfcSaeFrameRxResponder)> {
8541        if let WlanFullmacImplIfcRequest::SaeFrameRx { frame, responder } = self {
8542            Some((frame, responder))
8543        } else {
8544            None
8545        }
8546    }
8547
8548    #[allow(irrefutable_let_patterns)]
8549    pub fn into_on_wmm_status_resp(
8550        self,
8551    ) -> Option<(
8552        i32,
8553        fidl_fuchsia_wlan_driver::WlanWmmParameters,
8554        WlanFullmacImplIfcOnWmmStatusRespResponder,
8555    )> {
8556        if let WlanFullmacImplIfcRequest::OnWmmStatusResp { status, wmm_params, responder } = self {
8557            Some((status, wmm_params, responder))
8558        } else {
8559            None
8560        }
8561    }
8562
8563    /// Name of the method defined in FIDL
8564    pub fn method_name(&self) -> &'static str {
8565        match *self {
8566            WlanFullmacImplIfcRequest::OnScanResult { .. } => "on_scan_result",
8567            WlanFullmacImplIfcRequest::OnScanEnd { .. } => "on_scan_end",
8568            WlanFullmacImplIfcRequest::OnScheduledScanMatchesAvailable { .. } => {
8569                "on_scheduled_scan_matches_available"
8570            }
8571            WlanFullmacImplIfcRequest::OnScheduledScanStoppedByFirmware { .. } => {
8572                "on_scheduled_scan_stopped_by_firmware"
8573            }
8574            WlanFullmacImplIfcRequest::ConnectConf { .. } => "connect_conf",
8575            WlanFullmacImplIfcRequest::RoamConf { .. } => "roam_conf",
8576            WlanFullmacImplIfcRequest::RoamStartInd { .. } => "roam_start_ind",
8577            WlanFullmacImplIfcRequest::RoamResultInd { .. } => "roam_result_ind",
8578            WlanFullmacImplIfcRequest::AuthInd { .. } => "auth_ind",
8579            WlanFullmacImplIfcRequest::DeauthConf { .. } => "deauth_conf",
8580            WlanFullmacImplIfcRequest::DeauthInd { .. } => "deauth_ind",
8581            WlanFullmacImplIfcRequest::AssocInd { .. } => "assoc_ind",
8582            WlanFullmacImplIfcRequest::DisassocConf { .. } => "disassoc_conf",
8583            WlanFullmacImplIfcRequest::DisassocInd { .. } => "disassoc_ind",
8584            WlanFullmacImplIfcRequest::StartConf { .. } => "start_conf",
8585            WlanFullmacImplIfcRequest::StopConf { .. } => "stop_conf",
8586            WlanFullmacImplIfcRequest::EapolConf { .. } => "eapol_conf",
8587            WlanFullmacImplIfcRequest::OnChannelSwitch { .. } => "on_channel_switch",
8588            WlanFullmacImplIfcRequest::SignalReport { .. } => "signal_report",
8589            WlanFullmacImplIfcRequest::OnRssiThresholdBreached { .. } => {
8590                "on_rssi_threshold_breached"
8591            }
8592            WlanFullmacImplIfcRequest::EapolInd { .. } => "eapol_ind",
8593            WlanFullmacImplIfcRequest::OnPmkAvailable { .. } => "on_pmk_available",
8594            WlanFullmacImplIfcRequest::SaeHandshakeInd { .. } => "sae_handshake_ind",
8595            WlanFullmacImplIfcRequest::SaeFrameRx { .. } => "sae_frame_rx",
8596            WlanFullmacImplIfcRequest::OnWmmStatusResp { .. } => "on_wmm_status_resp",
8597        }
8598    }
8599}
8600
8601#[derive(Debug, Clone)]
8602pub struct WlanFullmacImplIfcControlHandle {
8603    inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
8604}
8605
8606impl WlanFullmacImplIfcControlHandle {
8607    pub fn shutdown_with_epitaph(&self, status: impl Into<fidl::Epitaph>) {
8608        self.inner.shutdown_with_epitaph(status.into())
8609    }
8610}
8611
8612impl fidl::endpoints::ControlHandle for WlanFullmacImplIfcControlHandle {
8613    fn shutdown(&self) {
8614        self.inner.shutdown()
8615    }
8616
8617    fn shutdown_with_epitaph(&self, status: fidl::Epitaph) {
8618        self.inner.shutdown_with_epitaph(status)
8619    }
8620
8621    fn is_closed(&self) -> bool {
8622        self.inner.channel().is_closed()
8623    }
8624    fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
8625        self.inner.channel().on_closed()
8626    }
8627
8628    #[cfg(target_os = "fuchsia")]
8629    fn signal_peer(
8630        &self,
8631        clear_mask: zx::Signals,
8632        set_mask: zx::Signals,
8633    ) -> Result<(), zx_status::Status> {
8634        use fidl::Peered;
8635        self.inner.channel().signal_peer(clear_mask, set_mask)
8636    }
8637}
8638
8639impl WlanFullmacImplIfcControlHandle {}
8640
8641#[must_use = "FIDL methods require a response to be sent"]
8642#[derive(Debug)]
8643pub struct WlanFullmacImplIfcOnScanResultResponder {
8644    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
8645    tx_id: u32,
8646}
8647
8648/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
8649/// if the responder is dropped without sending a response, so that the client
8650/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8651impl std::ops::Drop for WlanFullmacImplIfcOnScanResultResponder {
8652    fn drop(&mut self) {
8653        self.control_handle.shutdown();
8654        // Safety: drops once, never accessed again
8655        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8656    }
8657}
8658
8659impl fidl::endpoints::Responder for WlanFullmacImplIfcOnScanResultResponder {
8660    type ControlHandle = WlanFullmacImplIfcControlHandle;
8661
8662    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
8663        &self.control_handle
8664    }
8665
8666    fn drop_without_shutdown(mut self) {
8667        // Safety: drops once, never accessed again due to mem::forget
8668        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8669        // Prevent Drop from running (which would shut down the channel)
8670        std::mem::forget(self);
8671    }
8672}
8673
8674impl WlanFullmacImplIfcOnScanResultResponder {
8675    /// Sends a response to the FIDL transaction.
8676    ///
8677    /// Sets the channel to shutdown if an error occurs.
8678    pub fn send(self) -> Result<(), fidl::Error> {
8679        let _result = self.send_raw();
8680        if _result.is_err() {
8681            self.control_handle.shutdown();
8682        }
8683        self.drop_without_shutdown();
8684        _result
8685    }
8686
8687    /// Similar to "send" but does not shutdown the channel if an error occurs.
8688    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8689        let _result = self.send_raw();
8690        self.drop_without_shutdown();
8691        _result
8692    }
8693
8694    fn send_raw(&self) -> Result<(), fidl::Error> {
8695        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8696            (),
8697            self.tx_id,
8698            0x29aa81dc570f7a3e,
8699            fidl::encoding::DynamicFlags::empty(),
8700        )
8701    }
8702}
8703
8704#[must_use = "FIDL methods require a response to be sent"]
8705#[derive(Debug)]
8706pub struct WlanFullmacImplIfcOnScanEndResponder {
8707    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
8708    tx_id: u32,
8709}
8710
8711/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
8712/// if the responder is dropped without sending a response, so that the client
8713/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8714impl std::ops::Drop for WlanFullmacImplIfcOnScanEndResponder {
8715    fn drop(&mut self) {
8716        self.control_handle.shutdown();
8717        // Safety: drops once, never accessed again
8718        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8719    }
8720}
8721
8722impl fidl::endpoints::Responder for WlanFullmacImplIfcOnScanEndResponder {
8723    type ControlHandle = WlanFullmacImplIfcControlHandle;
8724
8725    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
8726        &self.control_handle
8727    }
8728
8729    fn drop_without_shutdown(mut self) {
8730        // Safety: drops once, never accessed again due to mem::forget
8731        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8732        // Prevent Drop from running (which would shut down the channel)
8733        std::mem::forget(self);
8734    }
8735}
8736
8737impl WlanFullmacImplIfcOnScanEndResponder {
8738    /// Sends a response to the FIDL transaction.
8739    ///
8740    /// Sets the channel to shutdown if an error occurs.
8741    pub fn send(self) -> Result<(), fidl::Error> {
8742        let _result = self.send_raw();
8743        if _result.is_err() {
8744            self.control_handle.shutdown();
8745        }
8746        self.drop_without_shutdown();
8747        _result
8748    }
8749
8750    /// Similar to "send" but does not shutdown the channel if an error occurs.
8751    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8752        let _result = self.send_raw();
8753        self.drop_without_shutdown();
8754        _result
8755    }
8756
8757    fn send_raw(&self) -> Result<(), fidl::Error> {
8758        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8759            (),
8760            self.tx_id,
8761            0x7cd8aff80d27073c,
8762            fidl::encoding::DynamicFlags::empty(),
8763        )
8764    }
8765}
8766
8767#[must_use = "FIDL methods require a response to be sent"]
8768#[derive(Debug)]
8769pub struct WlanFullmacImplIfcConnectConfResponder {
8770    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
8771    tx_id: u32,
8772}
8773
8774/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
8775/// if the responder is dropped without sending a response, so that the client
8776/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8777impl std::ops::Drop for WlanFullmacImplIfcConnectConfResponder {
8778    fn drop(&mut self) {
8779        self.control_handle.shutdown();
8780        // Safety: drops once, never accessed again
8781        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8782    }
8783}
8784
8785impl fidl::endpoints::Responder for WlanFullmacImplIfcConnectConfResponder {
8786    type ControlHandle = WlanFullmacImplIfcControlHandle;
8787
8788    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
8789        &self.control_handle
8790    }
8791
8792    fn drop_without_shutdown(mut self) {
8793        // Safety: drops once, never accessed again due to mem::forget
8794        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8795        // Prevent Drop from running (which would shut down the channel)
8796        std::mem::forget(self);
8797    }
8798}
8799
8800impl WlanFullmacImplIfcConnectConfResponder {
8801    /// Sends a response to the FIDL transaction.
8802    ///
8803    /// Sets the channel to shutdown if an error occurs.
8804    pub fn send(self) -> Result<(), fidl::Error> {
8805        let _result = self.send_raw();
8806        if _result.is_err() {
8807            self.control_handle.shutdown();
8808        }
8809        self.drop_without_shutdown();
8810        _result
8811    }
8812
8813    /// Similar to "send" but does not shutdown the channel if an error occurs.
8814    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8815        let _result = self.send_raw();
8816        self.drop_without_shutdown();
8817        _result
8818    }
8819
8820    fn send_raw(&self) -> Result<(), fidl::Error> {
8821        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8822            (),
8823            self.tx_id,
8824            0x3c22c6d80b2a2759,
8825            fidl::encoding::DynamicFlags::empty(),
8826        )
8827    }
8828}
8829
8830#[must_use = "FIDL methods require a response to be sent"]
8831#[derive(Debug)]
8832pub struct WlanFullmacImplIfcRoamConfResponder {
8833    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
8834    tx_id: u32,
8835}
8836
8837/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
8838/// if the responder is dropped without sending a response, so that the client
8839/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8840impl std::ops::Drop for WlanFullmacImplIfcRoamConfResponder {
8841    fn drop(&mut self) {
8842        self.control_handle.shutdown();
8843        // Safety: drops once, never accessed again
8844        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8845    }
8846}
8847
8848impl fidl::endpoints::Responder for WlanFullmacImplIfcRoamConfResponder {
8849    type ControlHandle = WlanFullmacImplIfcControlHandle;
8850
8851    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
8852        &self.control_handle
8853    }
8854
8855    fn drop_without_shutdown(mut self) {
8856        // Safety: drops once, never accessed again due to mem::forget
8857        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8858        // Prevent Drop from running (which would shut down the channel)
8859        std::mem::forget(self);
8860    }
8861}
8862
8863impl WlanFullmacImplIfcRoamConfResponder {
8864    /// Sends a response to the FIDL transaction.
8865    ///
8866    /// Sets the channel to shutdown if an error occurs.
8867    pub fn send(self) -> Result<(), fidl::Error> {
8868        let _result = self.send_raw();
8869        if _result.is_err() {
8870            self.control_handle.shutdown();
8871        }
8872        self.drop_without_shutdown();
8873        _result
8874    }
8875
8876    /// Similar to "send" but does not shutdown the channel if an error occurs.
8877    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8878        let _result = self.send_raw();
8879        self.drop_without_shutdown();
8880        _result
8881    }
8882
8883    fn send_raw(&self) -> Result<(), fidl::Error> {
8884        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8885            (),
8886            self.tx_id,
8887            0x368b2a5b903b3f7b,
8888            fidl::encoding::DynamicFlags::empty(),
8889        )
8890    }
8891}
8892
8893#[must_use = "FIDL methods require a response to be sent"]
8894#[derive(Debug)]
8895pub struct WlanFullmacImplIfcRoamStartIndResponder {
8896    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
8897    tx_id: u32,
8898}
8899
8900/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
8901/// if the responder is dropped without sending a response, so that the client
8902/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8903impl std::ops::Drop for WlanFullmacImplIfcRoamStartIndResponder {
8904    fn drop(&mut self) {
8905        self.control_handle.shutdown();
8906        // Safety: drops once, never accessed again
8907        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8908    }
8909}
8910
8911impl fidl::endpoints::Responder for WlanFullmacImplIfcRoamStartIndResponder {
8912    type ControlHandle = WlanFullmacImplIfcControlHandle;
8913
8914    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
8915        &self.control_handle
8916    }
8917
8918    fn drop_without_shutdown(mut self) {
8919        // Safety: drops once, never accessed again due to mem::forget
8920        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8921        // Prevent Drop from running (which would shut down the channel)
8922        std::mem::forget(self);
8923    }
8924}
8925
8926impl WlanFullmacImplIfcRoamStartIndResponder {
8927    /// Sends a response to the FIDL transaction.
8928    ///
8929    /// Sets the channel to shutdown if an error occurs.
8930    pub fn send(self) -> Result<(), fidl::Error> {
8931        let _result = self.send_raw();
8932        if _result.is_err() {
8933            self.control_handle.shutdown();
8934        }
8935        self.drop_without_shutdown();
8936        _result
8937    }
8938
8939    /// Similar to "send" but does not shutdown the channel if an error occurs.
8940    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
8941        let _result = self.send_raw();
8942        self.drop_without_shutdown();
8943        _result
8944    }
8945
8946    fn send_raw(&self) -> Result<(), fidl::Error> {
8947        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
8948            (),
8949            self.tx_id,
8950            0x23e1d9368935e7e4,
8951            fidl::encoding::DynamicFlags::empty(),
8952        )
8953    }
8954}
8955
8956#[must_use = "FIDL methods require a response to be sent"]
8957#[derive(Debug)]
8958pub struct WlanFullmacImplIfcRoamResultIndResponder {
8959    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
8960    tx_id: u32,
8961}
8962
8963/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
8964/// if the responder is dropped without sending a response, so that the client
8965/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
8966impl std::ops::Drop for WlanFullmacImplIfcRoamResultIndResponder {
8967    fn drop(&mut self) {
8968        self.control_handle.shutdown();
8969        // Safety: drops once, never accessed again
8970        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8971    }
8972}
8973
8974impl fidl::endpoints::Responder for WlanFullmacImplIfcRoamResultIndResponder {
8975    type ControlHandle = WlanFullmacImplIfcControlHandle;
8976
8977    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
8978        &self.control_handle
8979    }
8980
8981    fn drop_without_shutdown(mut self) {
8982        // Safety: drops once, never accessed again due to mem::forget
8983        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
8984        // Prevent Drop from running (which would shut down the channel)
8985        std::mem::forget(self);
8986    }
8987}
8988
8989impl WlanFullmacImplIfcRoamResultIndResponder {
8990    /// Sends a response to the FIDL transaction.
8991    ///
8992    /// Sets the channel to shutdown if an error occurs.
8993    pub fn send(self) -> Result<(), fidl::Error> {
8994        let _result = self.send_raw();
8995        if _result.is_err() {
8996            self.control_handle.shutdown();
8997        }
8998        self.drop_without_shutdown();
8999        _result
9000    }
9001
9002    /// Similar to "send" but does not shutdown the channel if an error occurs.
9003    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9004        let _result = self.send_raw();
9005        self.drop_without_shutdown();
9006        _result
9007    }
9008
9009    fn send_raw(&self) -> Result<(), fidl::Error> {
9010        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9011            (),
9012            self.tx_id,
9013            0x7081c1b1ceea4914,
9014            fidl::encoding::DynamicFlags::empty(),
9015        )
9016    }
9017}
9018
9019#[must_use = "FIDL methods require a response to be sent"]
9020#[derive(Debug)]
9021pub struct WlanFullmacImplIfcAuthIndResponder {
9022    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9023    tx_id: u32,
9024}
9025
9026/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9027/// if the responder is dropped without sending a response, so that the client
9028/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9029impl std::ops::Drop for WlanFullmacImplIfcAuthIndResponder {
9030    fn drop(&mut self) {
9031        self.control_handle.shutdown();
9032        // Safety: drops once, never accessed again
9033        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9034    }
9035}
9036
9037impl fidl::endpoints::Responder for WlanFullmacImplIfcAuthIndResponder {
9038    type ControlHandle = WlanFullmacImplIfcControlHandle;
9039
9040    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9041        &self.control_handle
9042    }
9043
9044    fn drop_without_shutdown(mut self) {
9045        // Safety: drops once, never accessed again due to mem::forget
9046        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9047        // Prevent Drop from running (which would shut down the channel)
9048        std::mem::forget(self);
9049    }
9050}
9051
9052impl WlanFullmacImplIfcAuthIndResponder {
9053    /// Sends a response to the FIDL transaction.
9054    ///
9055    /// Sets the channel to shutdown if an error occurs.
9056    pub fn send(self) -> Result<(), fidl::Error> {
9057        let _result = self.send_raw();
9058        if _result.is_err() {
9059            self.control_handle.shutdown();
9060        }
9061        self.drop_without_shutdown();
9062        _result
9063    }
9064
9065    /// Similar to "send" but does not shutdown the channel if an error occurs.
9066    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9067        let _result = self.send_raw();
9068        self.drop_without_shutdown();
9069        _result
9070    }
9071
9072    fn send_raw(&self) -> Result<(), fidl::Error> {
9073        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9074            (),
9075            self.tx_id,
9076            0x270e1f8889650d0b,
9077            fidl::encoding::DynamicFlags::empty(),
9078        )
9079    }
9080}
9081
9082#[must_use = "FIDL methods require a response to be sent"]
9083#[derive(Debug)]
9084pub struct WlanFullmacImplIfcDeauthConfResponder {
9085    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9086    tx_id: u32,
9087}
9088
9089/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9090/// if the responder is dropped without sending a response, so that the client
9091/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9092impl std::ops::Drop for WlanFullmacImplIfcDeauthConfResponder {
9093    fn drop(&mut self) {
9094        self.control_handle.shutdown();
9095        // Safety: drops once, never accessed again
9096        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9097    }
9098}
9099
9100impl fidl::endpoints::Responder for WlanFullmacImplIfcDeauthConfResponder {
9101    type ControlHandle = WlanFullmacImplIfcControlHandle;
9102
9103    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9104        &self.control_handle
9105    }
9106
9107    fn drop_without_shutdown(mut self) {
9108        // Safety: drops once, never accessed again due to mem::forget
9109        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9110        // Prevent Drop from running (which would shut down the channel)
9111        std::mem::forget(self);
9112    }
9113}
9114
9115impl WlanFullmacImplIfcDeauthConfResponder {
9116    /// Sends a response to the FIDL transaction.
9117    ///
9118    /// Sets the channel to shutdown if an error occurs.
9119    pub fn send(self) -> Result<(), fidl::Error> {
9120        let _result = self.send_raw();
9121        if _result.is_err() {
9122            self.control_handle.shutdown();
9123        }
9124        self.drop_without_shutdown();
9125        _result
9126    }
9127
9128    /// Similar to "send" but does not shutdown the channel if an error occurs.
9129    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9130        let _result = self.send_raw();
9131        self.drop_without_shutdown();
9132        _result
9133    }
9134
9135    fn send_raw(&self) -> Result<(), fidl::Error> {
9136        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9137            (),
9138            self.tx_id,
9139            0x2c94b0d7258111b7,
9140            fidl::encoding::DynamicFlags::empty(),
9141        )
9142    }
9143}
9144
9145#[must_use = "FIDL methods require a response to be sent"]
9146#[derive(Debug)]
9147pub struct WlanFullmacImplIfcDeauthIndResponder {
9148    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9149    tx_id: u32,
9150}
9151
9152/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9153/// if the responder is dropped without sending a response, so that the client
9154/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9155impl std::ops::Drop for WlanFullmacImplIfcDeauthIndResponder {
9156    fn drop(&mut self) {
9157        self.control_handle.shutdown();
9158        // Safety: drops once, never accessed again
9159        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9160    }
9161}
9162
9163impl fidl::endpoints::Responder for WlanFullmacImplIfcDeauthIndResponder {
9164    type ControlHandle = WlanFullmacImplIfcControlHandle;
9165
9166    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9167        &self.control_handle
9168    }
9169
9170    fn drop_without_shutdown(mut self) {
9171        // Safety: drops once, never accessed again due to mem::forget
9172        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9173        // Prevent Drop from running (which would shut down the channel)
9174        std::mem::forget(self);
9175    }
9176}
9177
9178impl WlanFullmacImplIfcDeauthIndResponder {
9179    /// Sends a response to the FIDL transaction.
9180    ///
9181    /// Sets the channel to shutdown if an error occurs.
9182    pub fn send(self) -> Result<(), fidl::Error> {
9183        let _result = self.send_raw();
9184        if _result.is_err() {
9185            self.control_handle.shutdown();
9186        }
9187        self.drop_without_shutdown();
9188        _result
9189    }
9190
9191    /// Similar to "send" but does not shutdown the channel if an error occurs.
9192    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9193        let _result = self.send_raw();
9194        self.drop_without_shutdown();
9195        _result
9196    }
9197
9198    fn send_raw(&self) -> Result<(), fidl::Error> {
9199        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9200            (),
9201            self.tx_id,
9202            0x26cd27cdadd8dbaf,
9203            fidl::encoding::DynamicFlags::empty(),
9204        )
9205    }
9206}
9207
9208#[must_use = "FIDL methods require a response to be sent"]
9209#[derive(Debug)]
9210pub struct WlanFullmacImplIfcAssocIndResponder {
9211    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9212    tx_id: u32,
9213}
9214
9215/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9216/// if the responder is dropped without sending a response, so that the client
9217/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9218impl std::ops::Drop for WlanFullmacImplIfcAssocIndResponder {
9219    fn drop(&mut self) {
9220        self.control_handle.shutdown();
9221        // Safety: drops once, never accessed again
9222        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9223    }
9224}
9225
9226impl fidl::endpoints::Responder for WlanFullmacImplIfcAssocIndResponder {
9227    type ControlHandle = WlanFullmacImplIfcControlHandle;
9228
9229    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9230        &self.control_handle
9231    }
9232
9233    fn drop_without_shutdown(mut self) {
9234        // Safety: drops once, never accessed again due to mem::forget
9235        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9236        // Prevent Drop from running (which would shut down the channel)
9237        std::mem::forget(self);
9238    }
9239}
9240
9241impl WlanFullmacImplIfcAssocIndResponder {
9242    /// Sends a response to the FIDL transaction.
9243    ///
9244    /// Sets the channel to shutdown if an error occurs.
9245    pub fn send(self) -> Result<(), fidl::Error> {
9246        let _result = self.send_raw();
9247        if _result.is_err() {
9248            self.control_handle.shutdown();
9249        }
9250        self.drop_without_shutdown();
9251        _result
9252    }
9253
9254    /// Similar to "send" but does not shutdown the channel if an error occurs.
9255    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9256        let _result = self.send_raw();
9257        self.drop_without_shutdown();
9258        _result
9259    }
9260
9261    fn send_raw(&self) -> Result<(), fidl::Error> {
9262        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9263            (),
9264            self.tx_id,
9265            0x3e44529e3dc179ce,
9266            fidl::encoding::DynamicFlags::empty(),
9267        )
9268    }
9269}
9270
9271#[must_use = "FIDL methods require a response to be sent"]
9272#[derive(Debug)]
9273pub struct WlanFullmacImplIfcDisassocConfResponder {
9274    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9275    tx_id: u32,
9276}
9277
9278/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9279/// if the responder is dropped without sending a response, so that the client
9280/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9281impl std::ops::Drop for WlanFullmacImplIfcDisassocConfResponder {
9282    fn drop(&mut self) {
9283        self.control_handle.shutdown();
9284        // Safety: drops once, never accessed again
9285        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9286    }
9287}
9288
9289impl fidl::endpoints::Responder for WlanFullmacImplIfcDisassocConfResponder {
9290    type ControlHandle = WlanFullmacImplIfcControlHandle;
9291
9292    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9293        &self.control_handle
9294    }
9295
9296    fn drop_without_shutdown(mut self) {
9297        // Safety: drops once, never accessed again due to mem::forget
9298        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9299        // Prevent Drop from running (which would shut down the channel)
9300        std::mem::forget(self);
9301    }
9302}
9303
9304impl WlanFullmacImplIfcDisassocConfResponder {
9305    /// Sends a response to the FIDL transaction.
9306    ///
9307    /// Sets the channel to shutdown if an error occurs.
9308    pub fn send(self) -> Result<(), fidl::Error> {
9309        let _result = self.send_raw();
9310        if _result.is_err() {
9311            self.control_handle.shutdown();
9312        }
9313        self.drop_without_shutdown();
9314        _result
9315    }
9316
9317    /// Similar to "send" but does not shutdown the channel if an error occurs.
9318    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9319        let _result = self.send_raw();
9320        self.drop_without_shutdown();
9321        _result
9322    }
9323
9324    fn send_raw(&self) -> Result<(), fidl::Error> {
9325        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9326            (),
9327            self.tx_id,
9328            0x7c713bcd58a76cb3,
9329            fidl::encoding::DynamicFlags::empty(),
9330        )
9331    }
9332}
9333
9334#[must_use = "FIDL methods require a response to be sent"]
9335#[derive(Debug)]
9336pub struct WlanFullmacImplIfcDisassocIndResponder {
9337    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9338    tx_id: u32,
9339}
9340
9341/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9342/// if the responder is dropped without sending a response, so that the client
9343/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9344impl std::ops::Drop for WlanFullmacImplIfcDisassocIndResponder {
9345    fn drop(&mut self) {
9346        self.control_handle.shutdown();
9347        // Safety: drops once, never accessed again
9348        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9349    }
9350}
9351
9352impl fidl::endpoints::Responder for WlanFullmacImplIfcDisassocIndResponder {
9353    type ControlHandle = WlanFullmacImplIfcControlHandle;
9354
9355    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9356        &self.control_handle
9357    }
9358
9359    fn drop_without_shutdown(mut self) {
9360        // Safety: drops once, never accessed again due to mem::forget
9361        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9362        // Prevent Drop from running (which would shut down the channel)
9363        std::mem::forget(self);
9364    }
9365}
9366
9367impl WlanFullmacImplIfcDisassocIndResponder {
9368    /// Sends a response to the FIDL transaction.
9369    ///
9370    /// Sets the channel to shutdown if an error occurs.
9371    pub fn send(self) -> Result<(), fidl::Error> {
9372        let _result = self.send_raw();
9373        if _result.is_err() {
9374            self.control_handle.shutdown();
9375        }
9376        self.drop_without_shutdown();
9377        _result
9378    }
9379
9380    /// Similar to "send" but does not shutdown the channel if an error occurs.
9381    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9382        let _result = self.send_raw();
9383        self.drop_without_shutdown();
9384        _result
9385    }
9386
9387    fn send_raw(&self) -> Result<(), fidl::Error> {
9388        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9389            (),
9390            self.tx_id,
9391            0x6667b381b7f3990f,
9392            fidl::encoding::DynamicFlags::empty(),
9393        )
9394    }
9395}
9396
9397#[must_use = "FIDL methods require a response to be sent"]
9398#[derive(Debug)]
9399pub struct WlanFullmacImplIfcStartConfResponder {
9400    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9401    tx_id: u32,
9402}
9403
9404/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9405/// if the responder is dropped without sending a response, so that the client
9406/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9407impl std::ops::Drop for WlanFullmacImplIfcStartConfResponder {
9408    fn drop(&mut self) {
9409        self.control_handle.shutdown();
9410        // Safety: drops once, never accessed again
9411        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9412    }
9413}
9414
9415impl fidl::endpoints::Responder for WlanFullmacImplIfcStartConfResponder {
9416    type ControlHandle = WlanFullmacImplIfcControlHandle;
9417
9418    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9419        &self.control_handle
9420    }
9421
9422    fn drop_without_shutdown(mut self) {
9423        // Safety: drops once, never accessed again due to mem::forget
9424        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9425        // Prevent Drop from running (which would shut down the channel)
9426        std::mem::forget(self);
9427    }
9428}
9429
9430impl WlanFullmacImplIfcStartConfResponder {
9431    /// Sends a response to the FIDL transaction.
9432    ///
9433    /// Sets the channel to shutdown if an error occurs.
9434    pub fn send(self) -> Result<(), fidl::Error> {
9435        let _result = self.send_raw();
9436        if _result.is_err() {
9437            self.control_handle.shutdown();
9438        }
9439        self.drop_without_shutdown();
9440        _result
9441    }
9442
9443    /// Similar to "send" but does not shutdown the channel if an error occurs.
9444    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9445        let _result = self.send_raw();
9446        self.drop_without_shutdown();
9447        _result
9448    }
9449
9450    fn send_raw(&self) -> Result<(), fidl::Error> {
9451        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9452            (),
9453            self.tx_id,
9454            0x3e9b9641f3ddc7fc,
9455            fidl::encoding::DynamicFlags::empty(),
9456        )
9457    }
9458}
9459
9460#[must_use = "FIDL methods require a response to be sent"]
9461#[derive(Debug)]
9462pub struct WlanFullmacImplIfcStopConfResponder {
9463    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9464    tx_id: u32,
9465}
9466
9467/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9468/// if the responder is dropped without sending a response, so that the client
9469/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9470impl std::ops::Drop for WlanFullmacImplIfcStopConfResponder {
9471    fn drop(&mut self) {
9472        self.control_handle.shutdown();
9473        // Safety: drops once, never accessed again
9474        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9475    }
9476}
9477
9478impl fidl::endpoints::Responder for WlanFullmacImplIfcStopConfResponder {
9479    type ControlHandle = WlanFullmacImplIfcControlHandle;
9480
9481    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9482        &self.control_handle
9483    }
9484
9485    fn drop_without_shutdown(mut self) {
9486        // Safety: drops once, never accessed again due to mem::forget
9487        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9488        // Prevent Drop from running (which would shut down the channel)
9489        std::mem::forget(self);
9490    }
9491}
9492
9493impl WlanFullmacImplIfcStopConfResponder {
9494    /// Sends a response to the FIDL transaction.
9495    ///
9496    /// Sets the channel to shutdown if an error occurs.
9497    pub fn send(self) -> Result<(), fidl::Error> {
9498        let _result = self.send_raw();
9499        if _result.is_err() {
9500            self.control_handle.shutdown();
9501        }
9502        self.drop_without_shutdown();
9503        _result
9504    }
9505
9506    /// Similar to "send" but does not shutdown the channel if an error occurs.
9507    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9508        let _result = self.send_raw();
9509        self.drop_without_shutdown();
9510        _result
9511    }
9512
9513    fn send_raw(&self) -> Result<(), fidl::Error> {
9514        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9515            (),
9516            self.tx_id,
9517            0x320a5ff227a4e9df,
9518            fidl::encoding::DynamicFlags::empty(),
9519        )
9520    }
9521}
9522
9523#[must_use = "FIDL methods require a response to be sent"]
9524#[derive(Debug)]
9525pub struct WlanFullmacImplIfcEapolConfResponder {
9526    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9527    tx_id: u32,
9528}
9529
9530/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9531/// if the responder is dropped without sending a response, so that the client
9532/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9533impl std::ops::Drop for WlanFullmacImplIfcEapolConfResponder {
9534    fn drop(&mut self) {
9535        self.control_handle.shutdown();
9536        // Safety: drops once, never accessed again
9537        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9538    }
9539}
9540
9541impl fidl::endpoints::Responder for WlanFullmacImplIfcEapolConfResponder {
9542    type ControlHandle = WlanFullmacImplIfcControlHandle;
9543
9544    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9545        &self.control_handle
9546    }
9547
9548    fn drop_without_shutdown(mut self) {
9549        // Safety: drops once, never accessed again due to mem::forget
9550        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9551        // Prevent Drop from running (which would shut down the channel)
9552        std::mem::forget(self);
9553    }
9554}
9555
9556impl WlanFullmacImplIfcEapolConfResponder {
9557    /// Sends a response to the FIDL transaction.
9558    ///
9559    /// Sets the channel to shutdown if an error occurs.
9560    pub fn send(self) -> Result<(), fidl::Error> {
9561        let _result = self.send_raw();
9562        if _result.is_err() {
9563            self.control_handle.shutdown();
9564        }
9565        self.drop_without_shutdown();
9566        _result
9567    }
9568
9569    /// Similar to "send" but does not shutdown the channel if an error occurs.
9570    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9571        let _result = self.send_raw();
9572        self.drop_without_shutdown();
9573        _result
9574    }
9575
9576    fn send_raw(&self) -> Result<(), fidl::Error> {
9577        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9578            (),
9579            self.tx_id,
9580            0x77364db9cc3970ec,
9581            fidl::encoding::DynamicFlags::empty(),
9582        )
9583    }
9584}
9585
9586#[must_use = "FIDL methods require a response to be sent"]
9587#[derive(Debug)]
9588pub struct WlanFullmacImplIfcOnChannelSwitchResponder {
9589    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9590    tx_id: u32,
9591}
9592
9593/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9594/// if the responder is dropped without sending a response, so that the client
9595/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9596impl std::ops::Drop for WlanFullmacImplIfcOnChannelSwitchResponder {
9597    fn drop(&mut self) {
9598        self.control_handle.shutdown();
9599        // Safety: drops once, never accessed again
9600        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9601    }
9602}
9603
9604impl fidl::endpoints::Responder for WlanFullmacImplIfcOnChannelSwitchResponder {
9605    type ControlHandle = WlanFullmacImplIfcControlHandle;
9606
9607    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9608        &self.control_handle
9609    }
9610
9611    fn drop_without_shutdown(mut self) {
9612        // Safety: drops once, never accessed again due to mem::forget
9613        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9614        // Prevent Drop from running (which would shut down the channel)
9615        std::mem::forget(self);
9616    }
9617}
9618
9619impl WlanFullmacImplIfcOnChannelSwitchResponder {
9620    /// Sends a response to the FIDL transaction.
9621    ///
9622    /// Sets the channel to shutdown if an error occurs.
9623    pub fn send(self) -> Result<(), fidl::Error> {
9624        let _result = self.send_raw();
9625        if _result.is_err() {
9626            self.control_handle.shutdown();
9627        }
9628        self.drop_without_shutdown();
9629        _result
9630    }
9631
9632    /// Similar to "send" but does not shutdown the channel if an error occurs.
9633    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9634        let _result = self.send_raw();
9635        self.drop_without_shutdown();
9636        _result
9637    }
9638
9639    fn send_raw(&self) -> Result<(), fidl::Error> {
9640        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9641            (),
9642            self.tx_id,
9643            0x21db0b8f71cae647,
9644            fidl::encoding::DynamicFlags::empty(),
9645        )
9646    }
9647}
9648
9649#[must_use = "FIDL methods require a response to be sent"]
9650#[derive(Debug)]
9651pub struct WlanFullmacImplIfcSignalReportResponder {
9652    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9653    tx_id: u32,
9654}
9655
9656/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9657/// if the responder is dropped without sending a response, so that the client
9658/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9659impl std::ops::Drop for WlanFullmacImplIfcSignalReportResponder {
9660    fn drop(&mut self) {
9661        self.control_handle.shutdown();
9662        // Safety: drops once, never accessed again
9663        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9664    }
9665}
9666
9667impl fidl::endpoints::Responder for WlanFullmacImplIfcSignalReportResponder {
9668    type ControlHandle = WlanFullmacImplIfcControlHandle;
9669
9670    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9671        &self.control_handle
9672    }
9673
9674    fn drop_without_shutdown(mut self) {
9675        // Safety: drops once, never accessed again due to mem::forget
9676        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9677        // Prevent Drop from running (which would shut down the channel)
9678        std::mem::forget(self);
9679    }
9680}
9681
9682impl WlanFullmacImplIfcSignalReportResponder {
9683    /// Sends a response to the FIDL transaction.
9684    ///
9685    /// Sets the channel to shutdown if an error occurs.
9686    pub fn send(self) -> Result<(), fidl::Error> {
9687        let _result = self.send_raw();
9688        if _result.is_err() {
9689            self.control_handle.shutdown();
9690        }
9691        self.drop_without_shutdown();
9692        _result
9693    }
9694
9695    /// Similar to "send" but does not shutdown the channel if an error occurs.
9696    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9697        let _result = self.send_raw();
9698        self.drop_without_shutdown();
9699        _result
9700    }
9701
9702    fn send_raw(&self) -> Result<(), fidl::Error> {
9703        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9704            (),
9705            self.tx_id,
9706            0x79679fa8789c3d9f,
9707            fidl::encoding::DynamicFlags::empty(),
9708        )
9709    }
9710}
9711
9712#[must_use = "FIDL methods require a response to be sent"]
9713#[derive(Debug)]
9714pub struct WlanFullmacImplIfcEapolIndResponder {
9715    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9716    tx_id: u32,
9717}
9718
9719/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9720/// if the responder is dropped without sending a response, so that the client
9721/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9722impl std::ops::Drop for WlanFullmacImplIfcEapolIndResponder {
9723    fn drop(&mut self) {
9724        self.control_handle.shutdown();
9725        // Safety: drops once, never accessed again
9726        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9727    }
9728}
9729
9730impl fidl::endpoints::Responder for WlanFullmacImplIfcEapolIndResponder {
9731    type ControlHandle = WlanFullmacImplIfcControlHandle;
9732
9733    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9734        &self.control_handle
9735    }
9736
9737    fn drop_without_shutdown(mut self) {
9738        // Safety: drops once, never accessed again due to mem::forget
9739        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9740        // Prevent Drop from running (which would shut down the channel)
9741        std::mem::forget(self);
9742    }
9743}
9744
9745impl WlanFullmacImplIfcEapolIndResponder {
9746    /// Sends a response to the FIDL transaction.
9747    ///
9748    /// Sets the channel to shutdown if an error occurs.
9749    pub fn send(self) -> Result<(), fidl::Error> {
9750        let _result = self.send_raw();
9751        if _result.is_err() {
9752            self.control_handle.shutdown();
9753        }
9754        self.drop_without_shutdown();
9755        _result
9756    }
9757
9758    /// Similar to "send" but does not shutdown the channel if an error occurs.
9759    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9760        let _result = self.send_raw();
9761        self.drop_without_shutdown();
9762        _result
9763    }
9764
9765    fn send_raw(&self) -> Result<(), fidl::Error> {
9766        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9767            (),
9768            self.tx_id,
9769            0x3de8ec1eda10d1d0,
9770            fidl::encoding::DynamicFlags::empty(),
9771        )
9772    }
9773}
9774
9775#[must_use = "FIDL methods require a response to be sent"]
9776#[derive(Debug)]
9777pub struct WlanFullmacImplIfcOnPmkAvailableResponder {
9778    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9779    tx_id: u32,
9780}
9781
9782/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9783/// if the responder is dropped without sending a response, so that the client
9784/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9785impl std::ops::Drop for WlanFullmacImplIfcOnPmkAvailableResponder {
9786    fn drop(&mut self) {
9787        self.control_handle.shutdown();
9788        // Safety: drops once, never accessed again
9789        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9790    }
9791}
9792
9793impl fidl::endpoints::Responder for WlanFullmacImplIfcOnPmkAvailableResponder {
9794    type ControlHandle = WlanFullmacImplIfcControlHandle;
9795
9796    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9797        &self.control_handle
9798    }
9799
9800    fn drop_without_shutdown(mut self) {
9801        // Safety: drops once, never accessed again due to mem::forget
9802        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9803        // Prevent Drop from running (which would shut down the channel)
9804        std::mem::forget(self);
9805    }
9806}
9807
9808impl WlanFullmacImplIfcOnPmkAvailableResponder {
9809    /// Sends a response to the FIDL transaction.
9810    ///
9811    /// Sets the channel to shutdown if an error occurs.
9812    pub fn send(self) -> Result<(), fidl::Error> {
9813        let _result = self.send_raw();
9814        if _result.is_err() {
9815            self.control_handle.shutdown();
9816        }
9817        self.drop_without_shutdown();
9818        _result
9819    }
9820
9821    /// Similar to "send" but does not shutdown the channel if an error occurs.
9822    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9823        let _result = self.send_raw();
9824        self.drop_without_shutdown();
9825        _result
9826    }
9827
9828    fn send_raw(&self) -> Result<(), fidl::Error> {
9829        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9830            (),
9831            self.tx_id,
9832            0x5cedd8d9be28a17e,
9833            fidl::encoding::DynamicFlags::empty(),
9834        )
9835    }
9836}
9837
9838#[must_use = "FIDL methods require a response to be sent"]
9839#[derive(Debug)]
9840pub struct WlanFullmacImplIfcSaeHandshakeIndResponder {
9841    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9842    tx_id: u32,
9843}
9844
9845/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9846/// if the responder is dropped without sending a response, so that the client
9847/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9848impl std::ops::Drop for WlanFullmacImplIfcSaeHandshakeIndResponder {
9849    fn drop(&mut self) {
9850        self.control_handle.shutdown();
9851        // Safety: drops once, never accessed again
9852        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9853    }
9854}
9855
9856impl fidl::endpoints::Responder for WlanFullmacImplIfcSaeHandshakeIndResponder {
9857    type ControlHandle = WlanFullmacImplIfcControlHandle;
9858
9859    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9860        &self.control_handle
9861    }
9862
9863    fn drop_without_shutdown(mut self) {
9864        // Safety: drops once, never accessed again due to mem::forget
9865        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9866        // Prevent Drop from running (which would shut down the channel)
9867        std::mem::forget(self);
9868    }
9869}
9870
9871impl WlanFullmacImplIfcSaeHandshakeIndResponder {
9872    /// Sends a response to the FIDL transaction.
9873    ///
9874    /// Sets the channel to shutdown if an error occurs.
9875    pub fn send(self) -> Result<(), fidl::Error> {
9876        let _result = self.send_raw();
9877        if _result.is_err() {
9878            self.control_handle.shutdown();
9879        }
9880        self.drop_without_shutdown();
9881        _result
9882    }
9883
9884    /// Similar to "send" but does not shutdown the channel if an error occurs.
9885    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9886        let _result = self.send_raw();
9887        self.drop_without_shutdown();
9888        _result
9889    }
9890
9891    fn send_raw(&self) -> Result<(), fidl::Error> {
9892        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9893            (),
9894            self.tx_id,
9895            0x4f3d53885503a1d8,
9896            fidl::encoding::DynamicFlags::empty(),
9897        )
9898    }
9899}
9900
9901#[must_use = "FIDL methods require a response to be sent"]
9902#[derive(Debug)]
9903pub struct WlanFullmacImplIfcSaeFrameRxResponder {
9904    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9905    tx_id: u32,
9906}
9907
9908/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9909/// if the responder is dropped without sending a response, so that the client
9910/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9911impl std::ops::Drop for WlanFullmacImplIfcSaeFrameRxResponder {
9912    fn drop(&mut self) {
9913        self.control_handle.shutdown();
9914        // Safety: drops once, never accessed again
9915        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9916    }
9917}
9918
9919impl fidl::endpoints::Responder for WlanFullmacImplIfcSaeFrameRxResponder {
9920    type ControlHandle = WlanFullmacImplIfcControlHandle;
9921
9922    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9923        &self.control_handle
9924    }
9925
9926    fn drop_without_shutdown(mut self) {
9927        // Safety: drops once, never accessed again due to mem::forget
9928        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9929        // Prevent Drop from running (which would shut down the channel)
9930        std::mem::forget(self);
9931    }
9932}
9933
9934impl WlanFullmacImplIfcSaeFrameRxResponder {
9935    /// Sends a response to the FIDL transaction.
9936    ///
9937    /// Sets the channel to shutdown if an error occurs.
9938    pub fn send(self) -> Result<(), fidl::Error> {
9939        let _result = self.send_raw();
9940        if _result.is_err() {
9941            self.control_handle.shutdown();
9942        }
9943        self.drop_without_shutdown();
9944        _result
9945    }
9946
9947    /// Similar to "send" but does not shutdown the channel if an error occurs.
9948    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
9949        let _result = self.send_raw();
9950        self.drop_without_shutdown();
9951        _result
9952    }
9953
9954    fn send_raw(&self) -> Result<(), fidl::Error> {
9955        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
9956            (),
9957            self.tx_id,
9958            0x51650906857ed4d4,
9959            fidl::encoding::DynamicFlags::empty(),
9960        )
9961    }
9962}
9963
9964#[must_use = "FIDL methods require a response to be sent"]
9965#[derive(Debug)]
9966pub struct WlanFullmacImplIfcOnWmmStatusRespResponder {
9967    control_handle: std::mem::ManuallyDrop<WlanFullmacImplIfcControlHandle>,
9968    tx_id: u32,
9969}
9970
9971/// Set the the channel to be shutdown (see [`WlanFullmacImplIfcControlHandle::shutdown`])
9972/// if the responder is dropped without sending a response, so that the client
9973/// doesn't hang. To prevent this behavior, call `drop_without_shutdown`.
9974impl std::ops::Drop for WlanFullmacImplIfcOnWmmStatusRespResponder {
9975    fn drop(&mut self) {
9976        self.control_handle.shutdown();
9977        // Safety: drops once, never accessed again
9978        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9979    }
9980}
9981
9982impl fidl::endpoints::Responder for WlanFullmacImplIfcOnWmmStatusRespResponder {
9983    type ControlHandle = WlanFullmacImplIfcControlHandle;
9984
9985    fn control_handle(&self) -> &WlanFullmacImplIfcControlHandle {
9986        &self.control_handle
9987    }
9988
9989    fn drop_without_shutdown(mut self) {
9990        // Safety: drops once, never accessed again due to mem::forget
9991        unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
9992        // Prevent Drop from running (which would shut down the channel)
9993        std::mem::forget(self);
9994    }
9995}
9996
9997impl WlanFullmacImplIfcOnWmmStatusRespResponder {
9998    /// Sends a response to the FIDL transaction.
9999    ///
10000    /// Sets the channel to shutdown if an error occurs.
10001    pub fn send(self) -> Result<(), fidl::Error> {
10002        let _result = self.send_raw();
10003        if _result.is_err() {
10004            self.control_handle.shutdown();
10005        }
10006        self.drop_without_shutdown();
10007        _result
10008    }
10009
10010    /// Similar to "send" but does not shutdown the channel if an error occurs.
10011    pub fn send_no_shutdown_on_err(self) -> Result<(), fidl::Error> {
10012        let _result = self.send_raw();
10013        self.drop_without_shutdown();
10014        _result
10015    }
10016
10017    fn send_raw(&self) -> Result<(), fidl::Error> {
10018        self.control_handle.inner.send::<fidl::encoding::EmptyPayload>(
10019            (),
10020            self.tx_id,
10021            0x6823a88bf3ba8b2a,
10022            fidl::encoding::DynamicFlags::empty(),
10023        )
10024    }
10025}
10026
10027#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
10028pub struct ServiceMarker;
10029
10030#[cfg(target_os = "fuchsia")]
10031impl fidl::endpoints::ServiceMarker for ServiceMarker {
10032    type Proxy = ServiceProxy;
10033    type Request = ServiceRequest;
10034    const SERVICE_NAME: &'static str = "fuchsia.wlan.fullmac.Service";
10035}
10036
10037/// A request for one of the member protocols of Service.
10038///
10039#[cfg(target_os = "fuchsia")]
10040pub enum ServiceRequest {
10041    WlanFullmacImpl(WlanFullmacImpl_RequestStream),
10042}
10043
10044#[cfg(target_os = "fuchsia")]
10045impl fidl::endpoints::ServiceRequest for ServiceRequest {
10046    type Service = ServiceMarker;
10047
10048    fn dispatch(name: &str, _channel: fidl::AsyncChannel) -> Self {
10049        match name {
10050            "wlan_fullmac_impl" => Self::WlanFullmacImpl(
10051                <WlanFullmacImpl_RequestStream as fidl::endpoints::RequestStream>::from_channel(
10052                    _channel,
10053                ),
10054            ),
10055            _ => panic!("no such member protocol name for service Service"),
10056        }
10057    }
10058
10059    fn member_names() -> &'static [&'static str] {
10060        &["wlan_fullmac_impl"]
10061    }
10062}
10063#[cfg(target_os = "fuchsia")]
10064pub struct ServiceProxy(#[allow(dead_code)] Box<dyn fidl::endpoints::MemberOpener>);
10065
10066#[cfg(target_os = "fuchsia")]
10067impl fidl::endpoints::ServiceProxy for ServiceProxy {
10068    type Service = ServiceMarker;
10069
10070    fn from_member_opener(opener: Box<dyn fidl::endpoints::MemberOpener>) -> Self {
10071        Self(opener)
10072    }
10073}
10074
10075#[cfg(target_os = "fuchsia")]
10076impl ServiceProxy {
10077    pub fn connect_to_wlan_fullmac_impl(&self) -> Result<WlanFullmacImpl_Proxy, fidl::Error> {
10078        let (proxy, server_end) = fidl::endpoints::create_proxy::<WlanFullmacImpl_Marker>();
10079        self.connect_channel_to_wlan_fullmac_impl(server_end)?;
10080        Ok(proxy)
10081    }
10082
10083    /// Like `connect_to_wlan_fullmac_impl`, but returns a sync proxy.
10084    /// See [`Self::connect_to_wlan_fullmac_impl`] for more details.
10085    pub fn connect_to_wlan_fullmac_impl_sync(
10086        &self,
10087    ) -> Result<WlanFullmacImpl_SynchronousProxy, fidl::Error> {
10088        let (proxy, server_end) = fidl::endpoints::create_sync_proxy::<WlanFullmacImpl_Marker>();
10089        self.connect_channel_to_wlan_fullmac_impl(server_end)?;
10090        Ok(proxy)
10091    }
10092
10093    /// Like `connect_to_wlan_fullmac_impl`, but accepts a server end.
10094    /// See [`Self::connect_to_wlan_fullmac_impl`] for more details.
10095    pub fn connect_channel_to_wlan_fullmac_impl(
10096        &self,
10097        server_end: fidl::endpoints::ServerEnd<WlanFullmacImpl_Marker>,
10098    ) -> Result<(), fidl::Error> {
10099        self.0.open_member("wlan_fullmac_impl", server_end.into_channel())
10100    }
10101
10102    pub fn instance_name(&self) -> &str {
10103        self.0.instance_name()
10104    }
10105}
10106
10107mod internal {
10108    use super::*;
10109
10110    impl WlanFullmacImplInitRequest {
10111        #[inline(always)]
10112        fn max_ordinal_present(&self) -> u64 {
10113            if let Some(_) = self.ifc {
10114                return 1;
10115            }
10116            0
10117        }
10118    }
10119
10120    impl fidl::encoding::ResourceTypeMarker for WlanFullmacImplInitRequest {
10121        type Borrowed<'a> = &'a mut Self;
10122        fn take_or_borrow<'a>(
10123            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10124        ) -> Self::Borrowed<'a> {
10125            value
10126        }
10127    }
10128
10129    unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInitRequest {
10130        type Owned = Self;
10131
10132        #[inline(always)]
10133        fn inline_align(_context: fidl::encoding::Context) -> usize {
10134            8
10135        }
10136
10137        #[inline(always)]
10138        fn inline_size(_context: fidl::encoding::Context) -> usize {
10139            16
10140        }
10141    }
10142
10143    unsafe impl
10144        fidl::encoding::Encode<
10145            WlanFullmacImplInitRequest,
10146            fidl::encoding::DefaultFuchsiaResourceDialect,
10147        > for &mut WlanFullmacImplInitRequest
10148    {
10149        unsafe fn encode(
10150            self,
10151            encoder: &mut fidl::encoding::Encoder<
10152                '_,
10153                fidl::encoding::DefaultFuchsiaResourceDialect,
10154            >,
10155            offset: usize,
10156            mut depth: fidl::encoding::Depth,
10157        ) -> fidl::Result<()> {
10158            encoder.debug_check_bounds::<WlanFullmacImplInitRequest>(offset);
10159            // Vector header
10160            let max_ordinal: u64 = self.max_ordinal_present();
10161            encoder.write_num(max_ordinal, offset);
10162            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10163            // Calling encoder.out_of_line_offset(0) is not allowed.
10164            if max_ordinal == 0 {
10165                return Ok(());
10166            }
10167            depth.increment()?;
10168            let envelope_size = 8;
10169            let bytes_len = max_ordinal as usize * envelope_size;
10170            #[allow(unused_variables)]
10171            let offset = encoder.out_of_line_offset(bytes_len);
10172            let mut _prev_end_offset: usize = 0;
10173            if 1 > max_ordinal {
10174                return Ok(());
10175            }
10176
10177            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
10178            // are envelope_size bytes.
10179            let cur_offset: usize = (1 - 1) * envelope_size;
10180
10181            // Zero reserved fields.
10182            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10183
10184            // Safety:
10185            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
10186            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
10187            //   envelope_size bytes, there is always sufficient room.
10188            fidl::encoding::encode_in_envelope_optional::<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<WlanFullmacImplIfcMarker>>, fidl::encoding::DefaultFuchsiaResourceDialect>(
10189            self.ifc.as_mut().map(<fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<WlanFullmacImplIfcMarker>> as fidl::encoding::ResourceTypeMarker>::take_or_borrow),
10190            encoder, offset + cur_offset, depth
10191        )?;
10192
10193            _prev_end_offset = cur_offset + envelope_size;
10194
10195            Ok(())
10196        }
10197    }
10198
10199    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10200        for WlanFullmacImplInitRequest
10201    {
10202        #[inline(always)]
10203        fn new_empty() -> Self {
10204            Self::default()
10205        }
10206
10207        unsafe fn decode(
10208            &mut self,
10209            decoder: &mut fidl::encoding::Decoder<
10210                '_,
10211                fidl::encoding::DefaultFuchsiaResourceDialect,
10212            >,
10213            offset: usize,
10214            mut depth: fidl::encoding::Depth,
10215        ) -> fidl::Result<()> {
10216            decoder.debug_check_bounds::<Self>(offset);
10217            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10218                None => return Err(fidl::Error::NotNullable),
10219                Some(len) => len,
10220            };
10221            // Calling decoder.out_of_line_offset(0) is not allowed.
10222            if len == 0 {
10223                return Ok(());
10224            };
10225            depth.increment()?;
10226            let envelope_size = 8;
10227            let bytes_len = len * envelope_size;
10228            let offset = decoder.out_of_line_offset(bytes_len)?;
10229            // Decode the envelope for each type.
10230            let mut _next_ordinal_to_read = 0;
10231            let mut next_offset = offset;
10232            let end_offset = offset + bytes_len;
10233            _next_ordinal_to_read += 1;
10234            if next_offset >= end_offset {
10235                return Ok(());
10236            }
10237
10238            // Decode unknown envelopes for gaps in ordinals.
10239            while _next_ordinal_to_read < 1 {
10240                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10241                _next_ordinal_to_read += 1;
10242                next_offset += envelope_size;
10243            }
10244
10245            let next_out_of_line = decoder.next_out_of_line();
10246            let handles_before = decoder.remaining_handles();
10247            if let Some((inlined, num_bytes, num_handles)) =
10248                fidl::encoding::decode_envelope_header(decoder, next_offset)?
10249            {
10250                let member_inline_size = <fidl::encoding::Endpoint<
10251                    fidl::endpoints::ClientEnd<WlanFullmacImplIfcMarker>,
10252                > as fidl::encoding::TypeMarker>::inline_size(
10253                    decoder.context
10254                );
10255                if inlined != (member_inline_size <= 4) {
10256                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
10257                }
10258                let inner_offset;
10259                let mut inner_depth = depth.clone();
10260                if inlined {
10261                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10262                    inner_offset = next_offset;
10263                } else {
10264                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10265                    inner_depth.increment()?;
10266                }
10267                let val_ref = self.ifc.get_or_insert_with(|| {
10268                    fidl::new_empty!(
10269                        fidl::encoding::Endpoint<
10270                            fidl::endpoints::ClientEnd<WlanFullmacImplIfcMarker>,
10271                        >,
10272                        fidl::encoding::DefaultFuchsiaResourceDialect
10273                    )
10274                });
10275                fidl::decode!(
10276                    fidl::encoding::Endpoint<fidl::endpoints::ClientEnd<WlanFullmacImplIfcMarker>>,
10277                    fidl::encoding::DefaultFuchsiaResourceDialect,
10278                    val_ref,
10279                    decoder,
10280                    inner_offset,
10281                    inner_depth
10282                )?;
10283                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10284                {
10285                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
10286                }
10287                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10288                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10289                }
10290            }
10291
10292            next_offset += envelope_size;
10293
10294            // Decode the remaining unknown envelopes.
10295            while next_offset < end_offset {
10296                _next_ordinal_to_read += 1;
10297                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10298                next_offset += envelope_size;
10299            }
10300
10301            Ok(())
10302        }
10303    }
10304
10305    impl WlanFullmacImplInitResponse {
10306        #[inline(always)]
10307        fn max_ordinal_present(&self) -> u64 {
10308            if let Some(_) = self.sme_channel {
10309                return 1;
10310            }
10311            0
10312        }
10313    }
10314
10315    impl fidl::encoding::ResourceTypeMarker for WlanFullmacImplInitResponse {
10316        type Borrowed<'a> = &'a mut Self;
10317        fn take_or_borrow<'a>(
10318            value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
10319        ) -> Self::Borrowed<'a> {
10320            value
10321        }
10322    }
10323
10324    unsafe impl fidl::encoding::TypeMarker for WlanFullmacImplInitResponse {
10325        type Owned = Self;
10326
10327        #[inline(always)]
10328        fn inline_align(_context: fidl::encoding::Context) -> usize {
10329            8
10330        }
10331
10332        #[inline(always)]
10333        fn inline_size(_context: fidl::encoding::Context) -> usize {
10334            16
10335        }
10336    }
10337
10338    unsafe impl
10339        fidl::encoding::Encode<
10340            WlanFullmacImplInitResponse,
10341            fidl::encoding::DefaultFuchsiaResourceDialect,
10342        > for &mut WlanFullmacImplInitResponse
10343    {
10344        unsafe fn encode(
10345            self,
10346            encoder: &mut fidl::encoding::Encoder<
10347                '_,
10348                fidl::encoding::DefaultFuchsiaResourceDialect,
10349            >,
10350            offset: usize,
10351            mut depth: fidl::encoding::Depth,
10352        ) -> fidl::Result<()> {
10353            encoder.debug_check_bounds::<WlanFullmacImplInitResponse>(offset);
10354            // Vector header
10355            let max_ordinal: u64 = self.max_ordinal_present();
10356            encoder.write_num(max_ordinal, offset);
10357            encoder.write_num(fidl::encoding::ALLOC_PRESENT_U64, offset + 8);
10358            // Calling encoder.out_of_line_offset(0) is not allowed.
10359            if max_ordinal == 0 {
10360                return Ok(());
10361            }
10362            depth.increment()?;
10363            let envelope_size = 8;
10364            let bytes_len = max_ordinal as usize * envelope_size;
10365            #[allow(unused_variables)]
10366            let offset = encoder.out_of_line_offset(bytes_len);
10367            let mut _prev_end_offset: usize = 0;
10368            if 1 > max_ordinal {
10369                return Ok(());
10370            }
10371
10372            // Write at offset+(ordinal-1)*envelope_size, since ordinals are one-based and envelopes
10373            // are envelope_size bytes.
10374            let cur_offset: usize = (1 - 1) * envelope_size;
10375
10376            // Zero reserved fields.
10377            encoder.padding(offset + _prev_end_offset, cur_offset - _prev_end_offset);
10378
10379            // Safety:
10380            // - bytes_len is calculated to fit envelope_size*max(member.ordinal).
10381            // - Since cur_offset is envelope_size*(member.ordinal - 1) and the envelope takes
10382            //   envelope_size bytes, there is always sufficient room.
10383            fidl::encoding::encode_in_envelope_optional::<
10384                fidl::encoding::HandleType<
10385                    fidl::Channel,
10386                    { fidl::ObjectType::CHANNEL.into_raw() },
10387                    2147483648,
10388                >,
10389                fidl::encoding::DefaultFuchsiaResourceDialect,
10390            >(
10391                self.sme_channel.as_mut().map(
10392                    <fidl::encoding::HandleType<
10393                        fidl::Channel,
10394                        { fidl::ObjectType::CHANNEL.into_raw() },
10395                        2147483648,
10396                    > as fidl::encoding::ResourceTypeMarker>::take_or_borrow,
10397                ),
10398                encoder,
10399                offset + cur_offset,
10400                depth,
10401            )?;
10402
10403            _prev_end_offset = cur_offset + envelope_size;
10404
10405            Ok(())
10406        }
10407    }
10408
10409    impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
10410        for WlanFullmacImplInitResponse
10411    {
10412        #[inline(always)]
10413        fn new_empty() -> Self {
10414            Self::default()
10415        }
10416
10417        unsafe fn decode(
10418            &mut self,
10419            decoder: &mut fidl::encoding::Decoder<
10420                '_,
10421                fidl::encoding::DefaultFuchsiaResourceDialect,
10422            >,
10423            offset: usize,
10424            mut depth: fidl::encoding::Depth,
10425        ) -> fidl::Result<()> {
10426            decoder.debug_check_bounds::<Self>(offset);
10427            let len = match fidl::encoding::decode_vector_header(decoder, offset)? {
10428                None => return Err(fidl::Error::NotNullable),
10429                Some(len) => len,
10430            };
10431            // Calling decoder.out_of_line_offset(0) is not allowed.
10432            if len == 0 {
10433                return Ok(());
10434            };
10435            depth.increment()?;
10436            let envelope_size = 8;
10437            let bytes_len = len * envelope_size;
10438            let offset = decoder.out_of_line_offset(bytes_len)?;
10439            // Decode the envelope for each type.
10440            let mut _next_ordinal_to_read = 0;
10441            let mut next_offset = offset;
10442            let end_offset = offset + bytes_len;
10443            _next_ordinal_to_read += 1;
10444            if next_offset >= end_offset {
10445                return Ok(());
10446            }
10447
10448            // Decode unknown envelopes for gaps in ordinals.
10449            while _next_ordinal_to_read < 1 {
10450                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10451                _next_ordinal_to_read += 1;
10452                next_offset += envelope_size;
10453            }
10454
10455            let next_out_of_line = decoder.next_out_of_line();
10456            let handles_before = decoder.remaining_handles();
10457            if let Some((inlined, num_bytes, num_handles)) =
10458                fidl::encoding::decode_envelope_header(decoder, next_offset)?
10459            {
10460                let member_inline_size = <fidl::encoding::HandleType<
10461                    fidl::Channel,
10462                    { fidl::ObjectType::CHANNEL.into_raw() },
10463                    2147483648,
10464                > as fidl::encoding::TypeMarker>::inline_size(
10465                    decoder.context
10466                );
10467                if inlined != (member_inline_size <= 4) {
10468                    return Err(fidl::Error::InvalidInlineBitInEnvelope);
10469                }
10470                let inner_offset;
10471                let mut inner_depth = depth.clone();
10472                if inlined {
10473                    decoder.check_inline_envelope_padding(next_offset, member_inline_size)?;
10474                    inner_offset = next_offset;
10475                } else {
10476                    inner_offset = decoder.out_of_line_offset(member_inline_size)?;
10477                    inner_depth.increment()?;
10478                }
10479                let val_ref =
10480                self.sme_channel.get_or_insert_with(|| fidl::new_empty!(fidl::encoding::HandleType<fidl::Channel, { fidl::ObjectType::CHANNEL.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect));
10481                fidl::decode!(fidl::encoding::HandleType<fidl::Channel, { fidl::ObjectType::CHANNEL.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, val_ref, decoder, inner_offset, inner_depth)?;
10482                if !inlined && decoder.next_out_of_line() != next_out_of_line + (num_bytes as usize)
10483                {
10484                    return Err(fidl::Error::InvalidNumBytesInEnvelope);
10485                }
10486                if handles_before != decoder.remaining_handles() + (num_handles as usize) {
10487                    return Err(fidl::Error::InvalidNumHandlesInEnvelope);
10488                }
10489            }
10490
10491            next_offset += envelope_size;
10492
10493            // Decode the remaining unknown envelopes.
10494            while next_offset < end_offset {
10495                _next_ordinal_to_read += 1;
10496                fidl::encoding::decode_unknown_envelope(decoder, next_offset, depth)?;
10497                next_offset += envelope_size;
10498            }
10499
10500            Ok(())
10501        }
10502    }
10503}