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