#[derive(Debug, thiserror::Error)]
pub enum IpcError {
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("protocol error: {0}")]
Protocol(#[from] crate::protocol::ProtocolError),
#[error("connection closed")]
ConnectionClosed,
#[error("endpoint error: {0}")]
Endpoint(String),
#[error("recv timed out after {0:?}")]
Timeout(std::time::Duration),
}