safecoin_client/
version_req.rs1pub(crate) struct VersionReq(Vec<semver::VersionReq>);
2
3impl VersionReq {
4 pub(crate) fn from_strs<T>(versions: &[T]) -> Result<Self, String>
5 where
6 T: AsRef<str> + std::fmt::Debug,
7 {
8 let mut version_reqs = vec![];
9 for version in versions {
10 let version_req = semver::VersionReq::parse(version.as_ref())
11 .map_err(|err| format!("Could not parse version {:?}: {:?}", version, err))?;
12 version_reqs.push(version_req);
13 }
14 Ok(Self(version_reqs))
15 }
16
17 pub(crate) fn matches_any(&self, version: &semver::Version) -> bool {
18 self.0.iter().any(|r| r.matches(version))
19 }
20}