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