From 6de867b22327b400771e631bb55e43e43939507c Mon Sep 17 00:00:00 2001 From: Jimmy Cuadra Date: Tue, 17 Jan 2017 19:33:19 -0800 Subject: [PATCH] Use Cow to avoid a string allocation. --- src/lib.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 417fa6e5..7b88faf0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,6 +13,7 @@ extern crate serde_urlencoded; extern crate tokio_core; extern crate url; +use std::borrow::Cow; use std::fmt::Debug; use hyper::client::{Client as HyperClient, HttpConnector, Request as HyperRequest}; @@ -81,11 +82,11 @@ impl Client { ) -> Result, Error> where E: Endpoint, ::Response: Debug + Send { let path = match path_params { - Some(params) => E::request_path(params), - None => E::router_path().to_string(), + Some(params) => Cow::from(E::request_path(params)), + None => Cow::from(E::router_path()), }; - let mut url = self.homeserver_url.join(&path)?.try_into()?; + let mut url = self.homeserver_url.join(path.as_ref())?.try_into()?; if let Some(params) = query_params { url.set_query(Some(&serde_urlencoded::to_string(¶ms)?));