2020-10-19 13:19:24 -07:00
|
|
|
#![cfg(feature = "everything")]
|
|
|
|
|
2019-04-03 20:40:29 -07:00
|
|
|
use crate::transaction::TransactionError;
|
2020-03-12 23:20:49 -07:00
|
|
|
use std::io;
|
|
|
|
use thiserror::Error;
|
2019-04-03 20:40:29 -07:00
|
|
|
|
2020-03-12 23:20:49 -07:00
|
|
|
#[derive(Debug, Error)]
|
2019-04-03 20:40:29 -07:00
|
|
|
pub enum TransportError {
|
2020-03-12 23:20:49 -07:00
|
|
|
#[error("transport io error: {0}")]
|
|
|
|
IoError(#[from] io::Error),
|
|
|
|
#[error("transport transaction error: {0}")]
|
|
|
|
TransactionError(#[from] TransactionError),
|
|
|
|
#[error("transport custom error: {0}")]
|
|
|
|
Custom(String),
|
2019-04-19 14:04:36 -07:00
|
|
|
}
|
|
|
|
|
2019-04-03 20:40:29 -07:00
|
|
|
impl TransportError {
|
|
|
|
pub fn unwrap(&self) -> TransactionError {
|
|
|
|
if let TransportError::TransactionError(err) = self {
|
|
|
|
err.clone()
|
|
|
|
} else {
|
|
|
|
panic!("unexpected transport error")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub type Result<T> = std::result::Result<T, TransportError>;
|