Optimize Crates2Json: Use String as key

to avoid cost of deserializing (`CrateVersionSource::from_str`).

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-07-22 01:37:27 +10:00
parent 96aaca1cc6
commit de9404feda
No known key found for this signature in database
GPG key ID: 591C0B03040416D6

View file

@ -12,7 +12,7 @@ use super::CrateVersionSource;
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Crates2Json {
pub installs: BTreeMap<CrateVersionSource, CrateInfo>,
pub installs: BTreeMap<String, CrateInfo>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
@ -52,7 +52,7 @@ impl Crates2Json {
}
pub fn insert(&mut self, cvs: CrateVersionSource, info: CrateInfo) {
self.installs.insert(cvs, info);
self.installs.insert(cvs.to_string(), info);
}
pub fn write(&self) -> Result<(), Crates2JsonParseError> {