Avoid an intermediate allocation
authorSteven Fackler <sfackler@palantir.com>
Tue, 19 Dec 2017 00:47:35 +0000 (16:47 -0800)
committerSteven Fackler <sfackler@palantir.com>
Tue, 19 Dec 2017 00:47:35 +0000 (16:47 -0800)
src/cargo/sources/registry/remote.rs

index 08dcee2983c73608460d299fc6824913fc7b6a9a..6b98c9e61d120e7f31153b8cb1bbb99e6a6b1142 100644 (file)
@@ -1,4 +1,5 @@
 use std::cell::{RefCell, Ref, Cell};
+use std::fmt::Write as FmtWrite;
 use std::io::SeekFrom;
 use std::io::prelude::*;
 use std::mem;
@@ -205,8 +206,7 @@ impl<'cfg> RegistryData for RemoteRegistry<'cfg> {
         let config = self.config()?.unwrap();
         let mut url = config.dl.clone();
         if !url.contains(CRATE_TEMPLATE) && !url.contains(VERSION_TEMPLATE) {
-            let suffix = format!("/{}/{}/download", CRATE_TEMPLATE, VERSION_TEMPLATE);
-            url.push_str(&suffix);
+            write!(url, "/{}/{}/download", CRATE_TEMPLATE, VERSION_TEMPLATE).unwrap();
         }
         let url = url
             .replace(CRATE_TEMPLATE, pkg.name())