pub struct Transport { /* private fields */ }Expand description
Error that is not a status code error. For instance, DNS name not found, connection refused, or malformed response.
Transport::kind()provides a classification (same as forError::kind).Transport::message()might vary for the same classification to give more context.Transport::source()holds the underlying error with even more details.
use ureq::ErrorKind;
use std::error::Error;
use url::ParseError;
let result = ureq::get("broken/url").call();
let error = result.unwrap_err().into_transport().unwrap();
// the display trait is a combo of the underlying classifications
assert_eq!(error.to_string(),
"Bad URL: failed to parse URL: RelativeUrlWithoutBase: relative URL without a base");
// classification
assert_eq!(error.kind(), ErrorKind::InvalidUrl);
assert_eq!(error.kind().to_string(), "Bad URL");
// higher level message
assert_eq!(error.message(), Some("failed to parse URL: RelativeUrlWithoutBase"));
// boxed underlying error
let source = error.source().unwrap();
// downcast to original error
let downcast: &ParseError = source.downcast_ref().unwrap();
assert_eq!(downcast.to_string(), "relative URL without a base");Implementations§
Trait Implementations§
Source§impl Error for Transport
impl Error for Transport
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for Transport
impl !RefUnwindSafe for Transport
impl Send for Transport
impl Sync for Transport
impl Unpin for Transport
impl UnsafeUnpin for Transport
impl !UnwindSafe for Transport
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more