@@ -143,7 +143,7 @@ pub enum InvalidUrl {
143143
144144/// A set of errors that can occur during request sending and response reading
145145#[ derive( thiserror:: Error , Debug ) ]
146- pub enum SendRequestError {
146+ pub enum ClientError {
147147 /// Invalid URL
148148 #[ error( "Invalid URL: {0}" ) ]
149149 Url ( #[ from] InvalidUrl ) ,
@@ -176,39 +176,63 @@ pub enum SendRequestError {
176176 Error ( #[ from] Rc < dyn StdError > ) ,
177177}
178178
179- impl Clone for SendRequestError {
180- fn clone ( & self ) -> SendRequestError {
179+ impl ErrorDiagnostic for ClientError {
180+ type Kind = ErrorType ;
181+
182+ fn kind ( & self ) -> ErrorType {
181183 match self {
182- SendRequestError :: Url ( err) => SendRequestError :: Url ( err. clone ( ) ) ,
183- SendRequestError :: Connect ( err) => SendRequestError :: Connect ( err. clone ( ) ) ,
184- SendRequestError :: Request ( err) => SendRequestError :: Request ( err. clone ( ) ) ,
185- SendRequestError :: Response ( err) => SendRequestError :: Response ( * err) ,
186- SendRequestError :: Http ( err) => SendRequestError :: Http ( err. clone ( ) ) ,
187- SendRequestError :: H2 ( err) => SendRequestError :: H2 ( err. clone ( ) ) ,
188- SendRequestError :: Timeout => SendRequestError :: Timeout ,
189- SendRequestError :: TunnelNotSupported => SendRequestError :: TunnelNotSupported ,
190- SendRequestError :: Error ( err) => SendRequestError :: Error ( err. clone ( ) ) ,
191- SendRequestError :: Send ( err) => {
192- SendRequestError :: Send ( crate :: util:: clone_io_error ( err) )
193- }
184+ ClientError :: Url ( _) | ClientError :: Http ( _) => ErrorType :: ClientError ,
185+ ClientError :: Connect ( err) => err. kind ( ) ,
186+ ClientError :: Send ( _)
187+ | ClientError :: Request ( _)
188+ | ClientError :: Response ( _)
189+ | ClientError :: H2 ( _)
190+ | ClientError :: Timeout
191+ | ClientError :: TunnelNotSupported
192+ | ClientError :: Error ( _) => ErrorType :: ServiceError ,
193+ }
194+ }
195+
196+ fn service ( & self ) -> Option < & ' static str > {
197+ if let ClientError :: Connect ( err) = self {
198+ err. service ( )
199+ } else {
200+ None
194201 }
195202 }
196203}
197204
198- impl From < Either < EncodeError , io:: Error > > for SendRequestError {
205+ impl Clone for ClientError {
206+ fn clone ( & self ) -> ClientError {
207+ match self {
208+ ClientError :: Url ( err) => ClientError :: Url ( err. clone ( ) ) ,
209+ ClientError :: Connect ( err) => ClientError :: Connect ( err. clone ( ) ) ,
210+ ClientError :: Request ( err) => ClientError :: Request ( err. clone ( ) ) ,
211+ ClientError :: Response ( err) => ClientError :: Response ( * err) ,
212+ ClientError :: Http ( err) => ClientError :: Http ( err. clone ( ) ) ,
213+ ClientError :: H2 ( err) => ClientError :: H2 ( err. clone ( ) ) ,
214+ ClientError :: Timeout => ClientError :: Timeout ,
215+ ClientError :: TunnelNotSupported => ClientError :: TunnelNotSupported ,
216+ ClientError :: Error ( err) => ClientError :: Error ( err. clone ( ) ) ,
217+ ClientError :: Send ( err) => ClientError :: Send ( crate :: util:: clone_io_error ( err) ) ,
218+ }
219+ }
220+ }
221+
222+ impl From < Either < EncodeError , io:: Error > > for ClientError {
199223 fn from ( err : Either < EncodeError , io:: Error > ) -> Self {
200224 match err {
201- Either :: Left ( err) => SendRequestError :: Request ( err) ,
202- Either :: Right ( err) => SendRequestError :: Send ( err) ,
225+ Either :: Left ( err) => ClientError :: Request ( err) ,
226+ Either :: Right ( err) => ClientError :: Send ( err) ,
203227 }
204228 }
205229}
206230
207- impl From < Either < DecodeError , io:: Error > > for SendRequestError {
231+ impl From < Either < DecodeError , io:: Error > > for ClientError {
208232 fn from ( err : Either < DecodeError , io:: Error > ) -> Self {
209233 match err {
210- Either :: Left ( err) => SendRequestError :: Response ( err) ,
211- Either :: Right ( err) => SendRequestError :: Send ( err) ,
234+ Either :: Left ( err) => ClientError :: Response ( err) ,
235+ Either :: Right ( err) => ClientError :: Send ( err) ,
212236 }
213237 }
214238}
@@ -218,3 +242,7 @@ impl From<ClientBuilderError> for io::Error {
218242 io:: Error :: other ( err)
219243 }
220244}
245+
246+ #[ doc( hidden) ]
247+ #[ deprecated( since = "3.6.0" , note = "Use ntex::client::error::ClientError instead" ) ]
248+ pub type SendRequestError = ClientError ;
0 commit comments