use std::error::Error as StdError;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum ZmqError {
#[error("zeromq endpoint error on '{endpoint}': {source}")]
Endpoint {
endpoint: String,
#[source]
source: Box<dyn StdError + Send + Sync>,
},
#[error("zeromq send error to '{name}': {reason}")]
Send {
name: String,
reason: String,
},
#[error("zeromq receive error: {0}")]
Receive(String),
#[error("zeromq wire error: {0}")]
Wire(String),
#[error("zeromq request timed out")]
RequestTimeout,
#[error("zeromq transport is not connected")]
NotConnected,
#[error("invalid zeromq descriptor: {0}")]
Invalid(String),
}
pub(crate) fn box_err<E>(err: E) -> Box<dyn StdError + Send + Sync>
where
E: StdError + Send + Sync + 'static,
{
Box::new(err)
}