ross_protocol/interface/
mod.rs1use crate::frame::FrameError;
2use crate::interface::can::CanError;
3#[cfg(feature = "std")]
4use crate::interface::serial::SerialError;
5use crate::interface::usart::UsartError;
6use crate::packet::Packet;
7use crate::packet::PacketBuilderError;
8
9pub mod can;
10#[cfg(feature = "std")]
11pub mod serial;
12pub mod usart;
13
14#[derive(Debug)]
15pub enum InterfaceError {
16 CanError(CanError),
17 UsartError(UsartError),
18 #[cfg(feature = "std")]
19 SerialError(SerialError),
20 BuilderError(PacketBuilderError),
21 FrameError(FrameError),
22 NoPacketReceived,
23}
24
25pub trait Interface {
26 fn try_get_packet(&mut self) -> Result<Packet, InterfaceError>;
27 fn try_send_packet(&mut self, packet: &Packet) -> Result<(), InterfaceError>;
28}