ntex_net/connect/
error.rs1use std::io;
2
3#[derive(thiserror::Error, Debug)]
4pub enum ConnectError {
5 #[error("Failed resolving hostname: {0}")]
7 Resolver(io::Error),
8
9 #[error("No dns records found for the input")]
11 NoRecords,
12
13 #[error("Invalid input")]
15 InvalidInput,
16
17 #[error("Connector received `Connect` method with unresolved host")]
19 Unresolved,
20
21 #[error("{0}")]
23 Io(#[from] io::Error),
24}
25
26impl Clone for ConnectError {
27 fn clone(&self) -> Self {
28 match self {
29 ConnectError::Resolver(err) => {
30 ConnectError::Resolver(io::Error::new(err.kind(), format!("{err}")))
31 }
32 ConnectError::NoRecords => ConnectError::NoRecords,
33 ConnectError::InvalidInput => ConnectError::InvalidInput,
34 ConnectError::Unresolved => ConnectError::Unresolved,
35 ConnectError::Io(err) => {
36 ConnectError::Io(io::Error::new(err.kind(), format!("{err}")))
37 }
38 }
39 }
40}
41
42#[cfg(test)]
43mod tests {
44 use super::*;
45
46 #[test]
47 #[allow(clippy::redundant_clone)]
48 fn connect_error_clone() {
49 let _ = ConnectError::Resolver(io::Error::other("test")).clone();
50 let _ = ConnectError::NoRecords.clone();
51 let _ = ConnectError::InvalidInput.clone();
52 let _ = ConnectError::Unresolved.clone();
53 let _ = ConnectError::Io(io::Error::other("test")).clone();
54 }
55}