1use std::io;
2use thiserror::Error;
3
4#[derive(Debug, Error)]
5pub enum ConnectError {
6 #[error("Unexpected handshake response: {0}")]
7 BadHandshake(String),
8 #[error("IO error: {0}")]
9 Io(#[from] io::Error),
10}
11pub type ConnectResult<T> = Result<T, ConnectError>;
12
13#[derive(Debug, Error)]
14pub enum BindError {
15 #[error("IO error: {0}")]
16 Io(#[from] io::Error),
17}
18
19pub type SendResult = Result<(), SendError>;
20#[derive(Debug, Error)]
21pub enum SendError {
22 #[error("IO error: {0}")]
23 Io(#[from] io::Error),
24}
25pub type ReceiveResult = Result<String, ReceiveError>;
26#[derive(Debug, Error)]
27pub enum ReceiveError {
28 #[error("IO error: {0}")]
29 Io(#[from] io::Error),
30 #[error("bad encoding")]
31 BadEncoding,
32}
33
34pub type RequestResult = Result<String, RequestError>;
35
36#[derive(Debug, Error)]
37pub enum RequestError {
38 #[error(transparent)]
39 Send(#[from] SendError),
40 #[error(transparent)]
41 Recv(#[from] ReceiveError),
42 #[error("bad encoding")]
43 BadEncoding,
44}