1+ //! Extend `semver::VersionReq` with [`matches_prerelease`] which doesn't preclude pre-releases by default.
2+ //!
3+ //! Please refer to the semantic proposal, see [RFC 3493].
4+ //!
5+ //! [RFC 3493]: https://rust-lang.github.io/rfcs/3493-precise-pre-release-cargo-update.html
6+
17use semver:: { Comparator , Op , Prerelease , Version , VersionReq } ;
28
39pub ( crate ) fn matches_prerelease ( req : & VersionReq , ver : & Version ) -> bool {
@@ -33,6 +39,7 @@ fn matches_prerelease_impl(cmp: &Comparator, ver: &Version) -> bool {
3339 }
3440}
3541
42+ // See https://github.com/dtolnay/semver/blob/69efd3cc770ead273a06ad1788477b3092996d29/src/eval.rs#L44-L62
3643fn matches_exact ( cmp : & Comparator , ver : & Version ) -> bool {
3744 if ver. major != cmp. major {
3845 return false ;
@@ -53,6 +60,7 @@ fn matches_exact(cmp: &Comparator, ver: &Version) -> bool {
5360 ver. pre == cmp. pre
5461}
5562
63+ // See https://github.com/dtolnay/semver/blob/69efd3cc770ead273a06ad1788477b3092996d29/src/eval.rs#L64-L88
5664fn matches_greater ( cmp : & Comparator , ver : & Version ) -> bool {
5765 if ver. major != cmp. major {
5866 return ver. major > cmp. major ;
@@ -79,6 +87,7 @@ fn matches_greater(cmp: &Comparator, ver: &Version) -> bool {
7987 ver. pre > cmp. pre
8088}
8189
90+ // See https://github.com/dtolnay/semver/blob/69efd3cc770ead273a06ad1788477b3092996d29/src/eval.rs#L90-L114
8291fn matches_less ( cmp : & Comparator , ver : & Version ) -> bool {
8392 if ver. major != cmp. major {
8493 return ver. major < cmp. major ;
0 commit comments