1use std::sync::Arc;
2
3pub type Result<T> = std::result::Result<T, Error>;
5
6#[derive(Clone, Debug, thiserror::Error)]
8pub enum Error {
9 #[error("IO failure: {0}")]
10 IoFailure(Arc<std::io::Error>),
11 #[error("Rpc was cancelled remotely")]
12 CancelledRemotely,
13 #[error("Connection is closed")]
14 ConnectionIsClosed,
15 #[error("Rpc finished")]
16 Finished,
17}
18
19impl From<std::io::Error> for Error {
20 fn from(value: std::io::Error) -> Self {
21 Self::IoFailure(Arc::new(value))
22 }
23}