diff --git a/src/client.rs b/src/client.rs index d9d7151..cba6109 100644 --- a/src/client.rs +++ b/src/client.rs @@ -198,31 +198,25 @@ pub trait IntoClientRequest { impl<'a> IntoClientRequest for &'a str { fn into_client_request(self) -> Result { - let uri: Uri = self.parse()?; - - Ok(Request::get(uri).body(())?) + self.parse::()?.into_client_request() } } impl<'a> IntoClientRequest for &'a String { fn into_client_request(self) -> Result { - let uri: Uri = self.parse()?; - - Ok(Request::get(uri).body(())?) + <&str as IntoClientRequest>::into_client_request(self) } } impl IntoClientRequest for String { fn into_client_request(self) -> Result { - let uri: Uri = self.parse()?; - - Ok(Request::get(uri).body(())?) + <&str as IntoClientRequest>::into_client_request(&self) } } impl<'a> IntoClientRequest for &'a Uri { fn into_client_request(self) -> Result { - Ok(Request::get(self.clone()).body(())?) + self.clone().into_client_request() } } @@ -234,17 +228,13 @@ impl IntoClientRequest for Uri { impl<'a> IntoClientRequest for &'a Url { fn into_client_request(self) -> Result { - let uri: Uri = self.as_str().parse()?; - - Ok(Request::get(uri).body(())?) + self.as_str().into_client_request() } } impl IntoClientRequest for Url { fn into_client_request(self) -> Result { - let uri: Uri = self.as_str().parse()?; - - Ok(Request::get(uri).body(())?) + self.as_str().into_client_request() } } diff --git a/src/protocol/message.rs b/src/protocol/message.rs index 5df4ba0..7019494 100644 --- a/src/protocol/message.rs +++ b/src/protocol/message.rs @@ -37,20 +37,16 @@ mod string_collect { let mut input: &[u8] = tail.as_ref(); if let Some(mut incomplete) = self.incomplete.take() { - let fin = if let Some((result, rest)) = incomplete.try_complete(input) { + if let Some((result, rest)) = incomplete.try_complete(input) { input = rest; if let Ok(text) = result { self.data.push_str(text); } else { return Err(Error::Utf8); } - true } else { input = &[]; - false - }; - if !fin { - self.incomplete = Some(incomplete) + self.incomplete = Some(incomplete); } }