From b2a533dbdbf2c7aaf8f56b4c6ec05672d33f5530 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Tue, 7 Jun 2022 15:40:55 +1000 Subject: [PATCH] Optimize `GhCrateMeta::check`: Avoid converting url to str Only to convert it back to `Url` in `helpers::remote_exists` Signed-off-by: Jiahao XU --- src/fetchers/gh_crate_meta.rs | 2 +- src/fetchers/quickinstall.rs | 2 +- src/helpers.rs | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/fetchers/gh_crate_meta.rs b/src/fetchers/gh_crate_meta.rs index f048bb87..d55109a6 100644 --- a/src/fetchers/gh_crate_meta.rs +++ b/src/fetchers/gh_crate_meta.rs @@ -36,7 +36,7 @@ impl super::Fetcher for GhCrateMeta { } info!("Checking for package at: '{url}'"); - remote_exists(url.as_str(), Method::HEAD).await + remote_exists(url, Method::HEAD).await } async fn fetch(&self, dst: &Path) -> Result<(), BinstallError> { diff --git a/src/fetchers/quickinstall.rs b/src/fetchers/quickinstall.rs index 61871e5c..4611e5f5 100644 --- a/src/fetchers/quickinstall.rs +++ b/src/fetchers/quickinstall.rs @@ -30,7 +30,7 @@ impl super::Fetcher for QuickInstall { let url = self.package_url(); self.report().await?; info!("Checking for package at: '{url}'"); - remote_exists(&url, Method::HEAD).await + remote_exists(Url::parse(&url)?, Method::HEAD).await } async fn fetch(&self, dst: &Path) -> Result<(), BinstallError> { diff --git a/src/helpers.rs b/src/helpers.rs index e0d85b99..9471eb4f 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -32,8 +32,7 @@ pub fn load_manifest_path>( Ok(manifest) } -pub async fn remote_exists(url: &str, method: Method) -> Result { - let url = Url::parse(url)?; +pub async fn remote_exists(url: Url, method: Method) -> Result { let req = reqwest::Client::new() .request(method.clone(), url.clone()) .send()