use enum_dispatch::enum_dispatch;
pub mod components;
mod control;
mod data;
mod management;
pub use control::*;
pub use data::*;
pub use management::*;
#[enum_dispatch(Addresses)]
#[derive(Clone, Debug)]
pub enum Frame {
Beacon(Beacon),
ProbeRequest(ProbeRequest),
ProbeResponse(ProbeResponse),
AssociationRequest(AssociationRequest),
AssociationResponse(AssociationResponse),
ReassociationRequest(ReassociationRequest),
ReassociationResponse(ReassociationResponse),
Action(Action),
Authentication(Authentication),
Deauthentication(Deauthentication),
Rts(Rts),
Cts(Cts),
Ack(Ack),
BlockAckRequest(BlockAckRequest),
BlockAck(BlockAck),
Data(Data),
QosData(QosData),
DataCfAck(DataCfAck),
DataCfPoll(DataCfPoll),
DataCfAckCfPoll(DataCfAckCfPoll),
CfAck(CfAck),
CfPoll(CfPoll),
CfAckCfPoll(CfAckCfPoll),
QosDataCfAck(QosDataCfAck),
QosDataCfPoll(QosDataCfPoll),
QosDataCfAckCfPoll(QosDataCfAckCfPoll),
QosCfPoll(QosCfPoll),
QosCfAckCfPoll(QosCfAckCfPoll),
QosNull(QosNull),
NullData(NullData),
}