async_hal/can/receive/
mod.rs

1use 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}