diff --git a/src/async_impl/client.rs b/src/async_impl/client.rs index 704943a04..2dffdc9df 100644 --- a/src/async_impl/client.rs +++ b/src/async_impl/client.rs @@ -3110,7 +3110,7 @@ mod tests { async fn execute_request_rejects_invalid_urls() { let url_str = "hxxps://www.rust-lang.org/"; let url = url::Url::parse(url_str).unwrap(); - let result = crate::get(url.clone()).await; + let result = crate::get(&url).await; assert!(result.is_err()); let err = result.err().unwrap(); @@ -3123,7 +3123,7 @@ mod tests { async fn execute_request_rejects_invalid_hostname() { let url_str = "https://{{hostname}}/"; let url = url::Url::parse(url_str).unwrap(); - let result = crate::get(url.clone()).await; + let result = crate::get(&url).await; assert!(result.is_err()); let err = result.err().unwrap(); diff --git a/src/into_url.rs b/src/into_url.rs index 5191181cb..471aa0c39 100644 --- a/src/into_url.rs +++ b/src/into_url.rs @@ -7,6 +7,7 @@ use url::Url; pub trait IntoUrl: IntoUrlSealed {} impl IntoUrl for Url {} +impl<'a> IntoUrl for &'a Url {} impl IntoUrl for String {} impl<'a> IntoUrl for &'a str {} impl<'a> IntoUrl for &'a String {} @@ -43,6 +44,16 @@ impl IntoUrlSealed for Url { } } +impl<'a> IntoUrlSealed for &'a Url { + fn into_url(self) -> crate::Result { + self.clone().into_url() + } + + fn as_str(&self) -> &str { + self.as_ref() + } +} + impl<'a> IntoUrlSealed for &'a str { fn into_url(self) -> crate::Result { Url::parse(self).map_err(crate::error::builder)?.into_url()