1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
use crate::transaction::TransactionError; use std::io; #[derive(Debug)] pub enum TransportError { IoError(io::Error), TransactionError(TransactionError), } impl TransportError { pub fn unwrap(&self) -> TransactionError { if let TransportError::TransactionError(err) = self { err.clone() } else { panic!("unexpected transport error") } } } impl From<io::Error> for TransportError { fn from(err: io::Error) -> TransportError { TransportError::IoError(err) } } impl From<TransactionError> for TransportError { fn from(err: TransactionError) -> TransportError { TransportError::TransactionError(err) } } pub type Result<T> = std::result::Result<T, TransportError>;