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:
Jiahao XU 2022-12-21 17:07:04 +11:00 committed by GitHub
parent e519409ad8
commit fef8bb6774
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 76 additions and 67 deletions

View file

@ -10,6 +10,7 @@ edition = "2021"
license = "Apache-2.0 OR MIT"
[dependencies]
beef = { version = "0.5.2", features = ["impl_serde"] }
binstalk-types = { version = "0.1.0", path = "../binstalk-types" }
compact_str = { version = "0.6.1", features = ["serde"] }
fs-lock = { version = "0.1.0", path = "../fs-lock" }
@ -20,7 +21,7 @@ serde = { version = "1.0.151", features = ["derive"] }
serde-tuple-vec-map = "1.0.1"
serde_json = "1.0.91"
thiserror = "1.0.38"
toml_edit = { version = "0.15.0", features = ["easy"] }
toml = "0.5.10"
url = { version = "2.3.1", features = ["serde"] }
[dev-dependencies]