Add Error::is_timeout() accessor
				
					
				
			This commit is contained in:
		
							
								
								
									
										23
									
								
								src/error.rs
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								src/error.rs
									
									
									
									
									
								
							| @@ -163,6 +163,23 @@ impl Error { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /// Returns true if the error is related to a timeout. | ||||||
|  |     pub fn is_timeout(&self) -> bool { | ||||||
|  |         match self.inner.kind { | ||||||
|  |             Kind::Io(ref io) => io.kind() == io::ErrorKind::TimedOut, | ||||||
|  |             Kind::Hyper(ref error) => { | ||||||
|  |                 error | ||||||
|  |                     .cause2() | ||||||
|  |                     .and_then(|cause| { | ||||||
|  |                         cause.downcast_ref::<io::Error>() | ||||||
|  |                     }) | ||||||
|  |                     .map(|io| io.kind() == io::ErrorKind::TimedOut) | ||||||
|  |                     .unwrap_or(false) | ||||||
|  |             }, | ||||||
|  |             _ => false, | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /// Returns true if the error is serialization related. |     /// Returns true if the error is serialization related. | ||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn is_serialization(&self) -> bool { |     pub fn is_serialization(&self) -> bool { | ||||||
| @@ -411,12 +428,6 @@ where T: Into<Kind> { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| #[cfg(unix)] |  | ||||||
| fn io_timeout() -> io::Error { |  | ||||||
|     io::Error::new(io::ErrorKind::WouldBlock, "timed out") |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #[cfg(windows)] |  | ||||||
| fn io_timeout() -> io::Error { | fn io_timeout() -> io::Error { | ||||||
|     io::Error::new(io::ErrorKind::TimedOut, "timed out") |     io::Error::new(io::ErrorKind::TimedOut, "timed out") | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user