Skip to main content

fidl_fuchsia_wlan_fullmac/
fidl_fuchsia_wlan_fullmac.rs

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