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}")]
11 IoFailure(Arc<std::io::Error>),
12 #[error("Rpc was cancelled remotely")]
14 CancelledRemotely,
15 #[error("Connection is closed")]
17 ConnectionIsClosed,
18 #[error("Rpc finished")]
20 Finished,
21}
22
23impl From<std::io::Error> for Error {
24 fn from(value: std::io::Error) -> Self {
25 Self::IoFailure(Arc::new(value))
26 }
27}