mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-05-05 19:50:02 +00:00
Optimize BinstallError
: Reduce size from 40B to 32B (#581)
* Optimize `BinstallError::CratesIoApi`: Extract new type `errors::CratesIoApiError` and box it Also improve `<CratesIoApiError as Display>::fmt` impl. * Optimize `BinstallError::SubProcess`: Use `Box<str>` instead of `String` * Optimize `BinstallError::CargoManifest`: Box `CargoTomlError` * Optimize `BinstallError::VersionParse`: Extract `VersionParseError` and box it Also improve `<VersionParseError as Display>::fmt` impl. * Optimize `BinstallError::CrateContext`: Extract `CrateContextError` and box it in * Optimize `install_from_source`: Only format `cmd` on err Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
ab3e47c42b
commit
8a5577297e
4 changed files with 58 additions and 40 deletions
|
@ -6,7 +6,7 @@ use semver::VersionReq;
|
|||
use tracing::debug;
|
||||
|
||||
use crate::{
|
||||
errors::BinstallError,
|
||||
errors::{BinstallError, CratesIoApiError},
|
||||
helpers::{
|
||||
download::Download,
|
||||
remote::{Client, Url},
|
||||
|
@ -33,14 +33,12 @@ pub async fn fetch_crate_cratesio(
|
|||
debug!("Looking up crate information");
|
||||
|
||||
// Fetch online crate information
|
||||
let base_info =
|
||||
crates_io_api_client
|
||||
.get_crate(name)
|
||||
.await
|
||||
.map_err(|err| BinstallError::CratesIoApi {
|
||||
crate_name: name.into(),
|
||||
err: Box::new(err),
|
||||
})?;
|
||||
let base_info = crates_io_api_client.get_crate(name).await.map_err(|err| {
|
||||
Box::new(CratesIoApiError {
|
||||
crate_name: name.into(),
|
||||
err,
|
||||
})
|
||||
})?;
|
||||
|
||||
// Locate matching version
|
||||
let version_iter = base_info.versions.iter().filter(|v| !v.yanked);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue