pub trait MlmeImpl {
type Config;
type Device: DeviceOps;
type TimerEvent;
// Required methods
fn new(
config: Self::Config,
device: Self::Device,
scheduler: Timer<Self::TimerEvent>,
) -> impl Future<Output = Result<Self, Error>>
where Self: Sized;
fn handle_mlme_request(
&mut self,
msg: MlmeRequest,
) -> impl Future<Output = Result<(), Error>>;
fn handle_mac_frame_rx(
&mut self,
bytes: &[u8],
rx_info: WlanRxInfo,
async_id: Id,
) -> impl Future<Output = ()>;
fn handle_eth_frame_tx(
&mut self,
bytes: &[u8],
async_id: Id,
) -> Result<(), Error>;
fn handle_scan_complete(
&mut self,
status: Status,
scan_id: u64,
) -> impl Future<Output = ()>;
fn handle_timeout(
&mut self,
event_id: EventId,
event: Self::TimerEvent,
) -> impl Future<Output = ()>;
fn access_device(&mut self) -> &mut Self::Device;
}
Required Associated Types§
Required Methods§
fn new(
config: Self::Config,
device: Self::Device,
scheduler: Timer<Self::TimerEvent>,
) -> impl Future<Output = Result<Self, Error>>where
Self: Sized,
fn handle_mlme_request( &mut self, msg: MlmeRequest, ) -> impl Future<Output = Result<(), Error>>
fn handle_mac_frame_rx( &mut self, bytes: &[u8], rx_info: WlanRxInfo, async_id: Id, ) -> impl Future<Output = ()>
fn handle_eth_frame_tx( &mut self, bytes: &[u8], async_id: Id, ) -> Result<(), Error>
fn handle_scan_complete( &mut self, status: Status, scan_id: u64, ) -> impl Future<Output = ()>
fn handle_timeout( &mut self, event_id: EventId, event: Self::TimerEvent, ) -> impl Future<Output = ()>
fn access_device(&mut self) -> &mut Self::Device
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.