1use std::net::AddrParseError;
2
3#[derive(Debug, thiserror::Error)]
5pub enum Error {
6 #[error("io error: {0}")]
8 Io(#[from] std::io::Error),
9
10 #[error("address parse error: {0}")]
12 AddrParse(#[from] AddrParseError),
13
14 #[error("task join error: {0}")]
16 Join(#[from] tokio::task::JoinError),
17
18 #[error("connection closed")]
20 Closed,
21
22 #[error("channel closed")]
24 ChannelClosed,
25
26 #[error("frame too large: current={current}, max={max}")]
28 FrameTooLarge { current: usize, max: usize },
29
30 #[error("datagram too large: current={current}, max={max}")]
32 DatagramTooLarge { current: usize, max: usize },
33
34 #[error("decode error: {0}")]
36 Decode(String),
37
38 #[error("encode error: {0}")]
40 Encode(String),
41
42 #[error("pipeline error: {0}")]
44 Pipeline(String),
45
46 #[error("tls error: {0}")]
48 Tls(String),
49
50 #[error("missing default peer for datagram write")]
52 MissingDatagramPeer,
53}
54
55pub type Result<T> = std::result::Result<T, Error>;