use crate::communication::{CommunicationError, TryRecvError};
#[derive(Debug, PartialEq)]
pub enum ReadError {
SerializationError,
Disconnected,
Closed,
}
#[derive(Debug, PartialEq)]
pub enum TryReadError {
Empty,
Disconnected,
SerializationError,
Closed,
}
impl From<TryRecvError> for TryReadError {
fn from(e: TryRecvError) -> Self {
match e {
TryRecvError::Empty => Self::Empty,
TryRecvError::Disconnected => Self::Disconnected,
TryRecvError::BincodeError(_) => Self::SerializationError,
}
}
}
#[derive(Debug, PartialEq)]
pub enum SendError {
SerializationError,
IOError,
TimestampError,
Closed,
}
impl From<CommunicationError> for SendError {
fn from(e: CommunicationError) -> Self {
match e {
CommunicationError::NoCapacity | CommunicationError::Disconnected => SendError::IOError,
CommunicationError::SerializeNotImplemented
| CommunicationError::DeserializeNotImplemented => {
eprintln!("Serialize not implemented");
SendError::SerializationError
}
CommunicationError::AbomonationError(error) => {
eprintln!("Abomonation error {}", error);
SendError::SerializationError
}
CommunicationError::BincodeError(error) => {
eprintln!("Bincode error {}", error);
SendError::SerializationError
}
CommunicationError::IoError(io_error) => {
eprintln!("Got write stream IOError {}", io_error);
SendError::IOError
}
}
}
}