1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::ross_interface::ross_can::RossCanError;
use crate::ross_interface::ross_usart::RossUsartError;
use crate::ross_packet::RossPacketBuilderError;
use crate::ross_frame::RossFrameError;
use crate::ross_packet::RossPacket;

pub mod ross_can;
pub mod ross_usart;

pub enum RossInterfaceError {
    CanError(RossCanError),
    UsartError(RossUsartError),
    BuilderError(RossPacketBuilderError),
    FrameError(RossFrameError),
    NoPacketReceived,
}

pub trait RossInterface {
    fn try_get_packet(&mut self) -> Result<RossPacket, RossInterfaceError>;
    fn try_send_packet(&mut self, packet: &RossPacket) -> Result<(), RossInterfaceError>;
}