ross_protocol/interface/
mod.rs

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