use std::fmt::Display;
use num_enum::TryFromPrimitive;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, TryFromPrimitive, Serialize, Deserialize)]
#[repr(u32)]
#[allow(clippy::enum_variant_names)]
pub enum BssScanWidth {
TwentyMhz,
TenMhz,
FiveMhz,
OneMhz,
TwoMhz,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, TryFromPrimitive, Serialize, Deserialize)]
#[repr(u32)]
pub enum BssStatus {
Authenticated = 0,
Associated,
IbssJoined,
Unknown,
}
impl Display for BssStatus {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
BssStatus::Authenticated => write!(f, "Authenticated"),
BssStatus::Associated => write!(f, "Associated"),
BssStatus::IbssJoined => write!(f, "IBSS Joined"),
BssStatus::Unknown => write!(f, "Unknown"),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, TryFromPrimitive, Serialize, Deserialize)]
#[repr(u32)]
pub enum IfType {
Unspecified = 0,
Adhoc,
Station,
Ap,
ApVlan,
Wds,
Monitor,
MeshPoint,
P2pClient,
P2pGo,
P2pDevice,
Ocb,
Nan,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Ord, PartialOrd, TryFromPrimitive)]
#[repr(u8)]
pub enum ChanWidth {
TwentyMhzNoHt,
TwentyMhz,
FortyMhz,
EightyMhz,
EightyPlusEightyMhz,
OneSixtyMhz,
FiveMhzOfdm,
TenMhzOfdm,
OneMhzOfdm,
TwoMhzOfdm,
FourMhzOfdm,
EightMhzOfdm,
SixteenMhzOfdm,
ThreeHundredTwentyMhz,
}