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