use ipc_channel::IpcError;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum MuxError {
#[error("IPC error: {0}")]
IpcError(#[from] IpcError),
#[error("Disconnected")]
Disconnected,
#[error("Internal error: {0}")]
InternalError(String),
}
#[derive(Debug, Error)]
pub enum TryRecvError {
#[error("{0}")]
MuxError(#[from] MuxError),
#[error("Channel empty")]
Empty,
}
impl From<std::io::Error> for MuxError {
fn from(err: std::io::Error) -> MuxError {
MuxError::IpcError(IpcError::Io(err))
}
}
impl From<postcard::Error> for MuxError {
fn from(err: postcard::Error) -> MuxError {
MuxError::IpcError(IpcError::SerializationError(err.into()))
}
}