mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-06-07 19:26:36 +00:00
Optimize CratesToml (#2186)
* Optimize CratesToml Use Box<str> instead of String Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Fix CrateToml::add_crate optimize apoend_to_file, drop crate_names before reserving Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> * Cargo fmt cargo_crates_v1.rs Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com> --------- Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>
This commit is contained in:
parent
28525359d3
commit
4ec96064b6
1 changed files with 10 additions and 8 deletions
|
@ -34,7 +34,7 @@ use crate_version_source::*;
|
|||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct CratesToml<'a> {
|
||||
#[serde(with = "tuple_vec_map")]
|
||||
v1: Vec<(String, Cow<'a, [CompactString]>)>,
|
||||
v1: Vec<(Box<str>, Cow<'a, [CompactString]>)>,
|
||||
}
|
||||
|
||||
impl<'v1> CratesToml<'v1> {
|
||||
|
@ -117,7 +117,7 @@ impl<'v1> CratesToml<'v1> {
|
|||
let source = Source::from(&metadata.source);
|
||||
|
||||
self.v1.push((
|
||||
format!("{name} {version} ({source})"),
|
||||
format!("{name} {version} ({source})").into(),
|
||||
Cow::borrowed(&metadata.bins),
|
||||
));
|
||||
}
|
||||
|
@ -128,12 +128,14 @@ impl<'v1> CratesToml<'v1> {
|
|||
) -> Result<(), CratesTomlParseError> {
|
||||
let mut c1 = CratesToml::load_from_reader(&mut *file)?;
|
||||
|
||||
let mut crate_names: Vec<_> = crates
|
||||
.iter()
|
||||
.map(|metadata| metadata.name.as_str())
|
||||
.collect();
|
||||
crate_names.sort_unstable();
|
||||
c1.remove_all(&crate_names);
|
||||
c1.remove_all(&{
|
||||
let mut crate_names: Vec<_> = crates
|
||||
.iter()
|
||||
.map(|metadata| metadata.name.as_str())
|
||||
.collect();
|
||||
crate_names.sort_unstable();
|
||||
crate_names
|
||||
});
|
||||
|
||||
c1.v1.reserve_exact(crates.len());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue