async_hal/can/receive/
mod.rs1use embedded_hal::can::Frame;
2
3mod receiver;
4pub use receiver::{DualReceiver, Receiver};
5
6pub trait Receive {
7 type Frame: Frame;
8 type Error;
9
10 fn receive(&mut self) -> nb::Result<Self::Frame, Self::Error>;
11}
12
13#[cfg(feature = "bxcan")]
14impl<I: bxcan::Instance> Receive for bxcan::Rx0<I> {
15 type Frame = bxcan::Frame;
16 type Error = bxcan::OverrunError;
17
18 fn receive(&mut self) -> nb::Result<Self::Frame, Self::Error> {
19 self.receive()
20 }
21}
22
23#[cfg(feature = "bxcan")]
24impl<I: bxcan::Instance> Receive for bxcan::Rx1<I> {
25 type Frame = bxcan::Frame;
26 type Error = bxcan::OverrunError;
27
28 fn receive(&mut self) -> nb::Result<Self::Frame, Self::Error> {
29 self.receive()
30 }
31}