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