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