mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-28 00:00:03 +00:00
Optimize binstalk-{manifest, types} (#610)
* Add new dep maybe-owned v0.3.4 to binstalk-types with features serde * Re-export maybe_owned in binstalk-types * Optimize `CrateSource::url`: Use `MaybeOwned<'static, Url>` to avoid cloning in `CrateSource::cratesio_registry` * Optimize `Source`: Use `MaybeOwned<'static, Url>` to avoid cloning in `Source::cratesio_registry` and `impl From<&CrateSource> for Source`. * Optimize `Source`: Add lifetime `<'a>` to avoid cloning in `impl<'a> From<&'a CrateSource> for Source<'a>` * Optimize `CratesToml::append_to_path`: Avoid cloning caused by `CrateVersionSource::from` by manually `format!` name, version and source into string. * Add new dep beef v0.5.2 to binstalk-manifests with features impl_serde * Optimize `CratesToml::append_to_path`: Eliminate `metadata.bins.clone()` by using `Cow` * Replace dep toml_edit with toml v0.5.10 in binstalk-manifests to speed up compilation and reduce bloat. Previously we switch to toml_edit because it is unmaintained, but now with it moved into toml-rs/toml as a workspace, it is now under active maintenance again, thus we switch back to it. Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
e519409ad8
commit
fef8bb6774
7 changed files with 76 additions and 67 deletions
|
@ -11,6 +11,7 @@ license = "Apache-2.0 OR MIT"
|
|||
|
||||
[dependencies]
|
||||
compact_str = { version = "0.6.1", features = ["serde"] }
|
||||
maybe-owned = { version = "0.3.4", features = ["serde"] }
|
||||
once_cell = "1.16.0"
|
||||
semver = { version = "1.0.16", features = ["serde"] }
|
||||
serde = { version = "1.0.151", features = ["derive"] }
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
use std::{borrow, cmp, hash};
|
||||
|
||||
use compact_str::CompactString;
|
||||
use maybe_owned::MaybeOwned;
|
||||
use once_cell::sync::Lazy;
|
||||
use semver::Version;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
@ -69,14 +70,14 @@ pub enum SourceType {
|
|||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct CrateSource {
|
||||
pub source_type: SourceType,
|
||||
pub url: Url,
|
||||
pub url: MaybeOwned<'static, Url>,
|
||||
}
|
||||
|
||||
impl CrateSource {
|
||||
pub fn cratesio_registry() -> CrateSource {
|
||||
Self {
|
||||
source_type: SourceType::Registry,
|
||||
url: cratesio_url().clone(),
|
||||
url: MaybeOwned::Borrowed(cratesio_url()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
pub mod cargo_toml_binstall;
|
||||
pub mod crate_info;
|
||||
|
||||
pub use maybe_owned;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue