changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / rust/lib/net/src/err.rs

changeset 17: c7165d93a9eb
child: 0ccbbd142694
author: ellis <ellis@rwest.io>
date: Sun, 22 Oct 2023 23:03:15 -0400
permissions: -rw-r--r--
description: add obj and net src
1 //! net errors
2 use std::{fmt, io};
3 
4 /// net Result type
5 pub type Result<T> = std::result::Result<T, Error>;
6 
7 /// net Error type
8 pub enum Error {
9  Io(io::Error),
10  #[cfg(feature = "client")]
11  Reqwest(reqwest::Error),
12  #[cfg(feature = "server")]
13  Axum(axum::Error),
14  #[cfg(feature = "dns")]
15  Dns(trust_dns_resolver::error::ResolveError),
16  #[cfg(feature = "ssh")]
17  Ssh(thrussh::Error),
18  Json(serde_json::Error),
19  UnexpectedEnd,
20 }
21 
22 impl From<io::Error> for Error {
23  fn from(e: io::Error) -> Self {
24  Error::Io(e)
25  }
26 }
27 
28 #[cfg(feature = "client")]
29 impl From<reqwest::Error> for Error {
30  fn from(e: reqwest::Error) -> Self {
31  Error::Reqwest(e)
32  }
33 }
34 
35 #[cfg(feature = "server")]
36 impl From<axum::Error> for Error {
37  fn from(e: axum::Error) -> Self {
38  Error::Axum(e)
39  }
40 }
41 
42 #[cfg(feature = "dns")]
43 impl From<trust_dns_resolver::error::ResolveError> for Error {
44  fn from(e: trust_dns_resolver::error::ResolveError) -> Self {
45  Error::Dns(e)
46  }
47 }
48 
49 #[cfg(feature = "ssh")]
50 impl From<thrussh::Error> for Error {
51  fn from(e: thrussh::Error) -> Self {
52  Error::Ssh(e)
53  }
54 }
55 
56 impl From<serde_json::Error> for Error {
57  fn from(e: serde_json::Error) -> Self {
58  Error::Json(e)
59  }
60 }
61 
62 impl fmt::Display for Error {
63  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
64  match *self {
65  Error::Io(ref err) => write!(f, "net IO error: {}", err),
66  #[cfg(feature = "client")]
67  Error::Reqwest(ref err) => write!(f, "net::client Reqwest error: {}", err),
68  #[cfg(feature = "server")]
69  Error::Axum(ref err) => write!(f, "net::server Axum error: {}", err),
70  #[cfg(feature = "dns")]
71  Error::Dns(ref err) => write!(f, "net::engine::dns error: {}", err),
72  #[cfg(feature = "ssh")]
73  Error::Ssh(ref err) => write!(f, "net::engine::ssh error: {}", err),
74  Error::Json(ref err) => write!(f, "net Json error: {}", err),
75  Error::UnexpectedEnd => write!(f, "unexpected end of buffer."),
76  }
77  }
78 }
79 
80 impl fmt::Debug for Error {
81  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
82  match *self {
83  Error::Io(ref err) => write!(f, "net IO error: {}", err),
84  #[cfg(feature = "client")]
85  Error::Reqwest(ref err) => write!(f, "net::client Reqwest error: {}", err),
86  #[cfg(feature = "server")]
87  Error::Axum(ref err) => write!(f, "net::server Axum error: {}", err),
88  #[cfg(feature = "dns")]
89  Error::Dns(ref err) => write!(f, "net::server Dns error: {}", err),
90  #[cfg(feature = "ssh")]
91  Error::Ssh(ref err) => write!(f, "net::engine::ssh error: {}", err),
92  Error::Json(ref err) => write!(f, "net Json error: {}", err),
93  Error::UnexpectedEnd => write!(f, "unexpected end of buffer."),
94  }
95  }
96 }
97 
98 impl std::error::Error for Error {}