Take &VersionReq for 1st param of find_version

instead of `&str`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-08-07 18:40:59 +10:00
parent dd8e6a400d
commit 497ef80b27
No known key found for this signature in database
GPG key ID: 591C0B03040416D6

View file

@ -28,15 +28,9 @@ impl Version for crates_io_api::Version {
}
pub(super) fn find_version<Item: Version, VersionIter: Iterator<Item = Item>>(
requirement: &str,
version_req: &VersionReq,
version_iter: VersionIter,
) -> Result<(Item, semver::Version), BinstallError> {
// Parse version requirement
let version_req = VersionReq::parse(requirement).map_err(|err| BinstallError::VersionReq {
req: requirement.into(),
err,
})?;
version_iter
// Filter for matching versions
.filter_map(|item| {
@ -52,5 +46,7 @@ pub(super) fn find_version<Item: Version, VersionIter: Iterator<Item = Item>>(
})
// Return highest version
.max_by_key(|(_item, ver)| ver.clone())
.ok_or(BinstallError::VersionMismatch { req: version_req })
.ok_or(BinstallError::VersionMismatch {
req: version_req.clone(),
})
}