wlan_common/mac/mgmt/
status.rs
1use fidl_fuchsia_wlan_ieee80211 as fidl_ieee80211;
6use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout};
7
8#[repr(C)]
9#[derive(
10 IntoBytes, KnownLayout, FromBytes, Immutable, PartialEq, Eq, Clone, Copy, Debug, Default,
11)]
12pub struct StatusCode(pub u16);
13
14impl StatusCode {
15 pub fn into_fidl_or_refused_unspecified(self) -> fidl_ieee80211::StatusCode {
16 self.try_into().unwrap_or(fidl_ieee80211::StatusCode::RefusedReasonUnspecified)
17 }
18}
19
20impl From<fidl_ieee80211::StatusCode> for StatusCode {
21 fn from(fidl_status_code: fidl_ieee80211::StatusCode) -> StatusCode {
22 StatusCode(fidl_status_code as u16)
23 }
24}
25
26impl From<StatusCode> for Option<fidl_ieee80211::StatusCode> {
29 fn from(status_code: StatusCode) -> Option<fidl_ieee80211::StatusCode> {
30 fidl_ieee80211::StatusCode::from_primitive(status_code.0)
31 }
32}
33
34impl TryFrom<StatusCode> for fidl_ieee80211::StatusCode {
35 type Error = ();
36
37 fn try_from(status: StatusCode) -> Result<fidl_ieee80211::StatusCode, ()> {
38 fidl_ieee80211::StatusCode::from_primitive(status.0).ok_or(())
39 }
40}