librqbit_dualstack_sockets/
error.rs1use std::net::SocketAddr;
2
3#[derive(thiserror::Error, Debug)]
4pub enum Error {
5 #[error("error creating socket: {0}")]
6 SocketNew(std::io::Error),
7 #[error("error binding to {addr}: {source}")]
8 Bind {
9 addr: SocketAddr,
10 source: std::io::Error,
11 },
12 #[error("error setting only_v6={value}: {source}")]
13 OnlyV6 { value: bool, source: std::io::Error },
14 #[error("error setting SO_REUSEADDR: {0}")]
15 ReuseAddress(std::io::Error),
16 #[error("error getting local_addr(): {0}")]
17 LocalAddr(std::io::Error),
18 #[error("as_socket() returned None")]
19 AsSocket,
20 #[error("error setting nonblocking=true: {0}")]
21 SetNonblocking(std::io::Error),
22 #[error("mismatch between local_addr({local_addr:?}) and requested bind_addr({bind_addr:?})")]
23 LocalBindAddrMismatch {
24 bind_addr: SocketAddr,
25 local_addr: SocketAddr,
26 },
27 #[error("error listening")]
28 Listen(std::io::Error),
29 #[error("error calling tokio from_std")]
30 TokioFromStd(std::io::Error),
31}
32
33pub type Result<T> = core::result::Result<T, Error>;