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 !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