Fix CrateToml::add_crate

optimize apoend_to_file, drop crate_names before reserving

Signed-off-by: Jiahao XU <30436523+NobodyXu@users.noreply.github.com>
This commit is contained in:
Jiahao XU 2025-06-06 19:58:14 +10:00 committed by GitHub
parent 083fe61aca
commit 67f14cce76
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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)?;
c1.remove_all(&{
let mut crate_names: Vec<_> = crates
.iter()
.map(|metadata| metadata.name.as_str())
.collect();
crate_names.sort_unstable();
c1.remove_all(&crate_names);
crate_names
});
c1.v1.reserve_exact(crates.len());