changelog shortlog graph tags branches changeset files revisions annotate raw help

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

changeset 698: 96958d3eb5b0
parent: 8e94959e96bd
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
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(hickory_resolver::error::ResolveError),
16  Json(serde_json::Error),
17  UnexpectedEnd,
18 }
19 
20 impl From<io::Error> for Error {
21  fn from(e: io::Error) -> Self {
22  Error::Io(e)
23  }
24 }
25 
26 #[cfg(feature = "client")]
27 impl From<reqwest::Error> for Error {
28  fn from(e: reqwest::Error) -> Self {
29  Error::Reqwest(e)
30  }
31 }
32 
33 #[cfg(feature = "server")]
34 impl From<axum::Error> for Error {
35  fn from(e: axum::Error) -> Self {
36  Error::Axum(e)
37  }
38 }
39 
40 #[cfg(feature = "dns")]
41 impl From<hickory_resolver::error::ResolveError> for Error {
42  fn from(e: hickory_resolver::error::ResolveError) -> Self {
43  Error::Dns(e)
44  }
45 }
46 
47 impl From<serde_json::Error> for Error {
48  fn from(e: serde_json::Error) -> Self {
49  Error::Json(e)
50  }
51 }
52 
53 impl fmt::Display for Error {
54  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
55  match *self {
56  Error::Io(ref err) => write!(f, "net IO error: {}", err),
57  #[cfg(feature = "client")]
58  Error::Reqwest(ref err) => {
59  write!(f, "net::client Reqwest error: {}", err)
60  }
61  #[cfg(feature = "server")]
62  Error::Axum(ref err) => write!(f, "net::server Axum error: {}", err),
63  #[cfg(feature = "dns")]
64  Error::Dns(ref err) => write!(f, "net::engine::dns error: {}", err),
65  Error::Json(ref err) => write!(f, "net Json error: {}", err),
66  Error::UnexpectedEnd => write!(f, "unexpected end of buffer."),
67  }
68  }
69 }
70 
71 impl fmt::Debug for Error {
72  fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
73  match *self {
74  Error::Io(ref err) => write!(f, "net IO error: {}", err),
75  #[cfg(feature = "client")]
76  Error::Reqwest(ref err) => {
77  write!(f, "net::client Reqwest error: {}", err)
78  }
79  #[cfg(feature = "server")]
80  Error::Axum(ref err) => write!(f, "net::server Axum error: {}", err),
81  #[cfg(feature = "dns")]
82  Error::Dns(ref err) => write!(f, "net::server Dns error: {}", err),
83  Error::Json(ref err) => write!(f, "net Json error: {}", err),
84  Error::UnexpectedEnd => write!(f, "unexpected end of buffer."),
85  }
86  }
87 }
88 
89 impl std::error::Error for Error {}