fidl_fuchsia_wlan_fullmac/
fidl_fuchsia_wlan_fullmac.rs

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