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
+
1
7
use semver:: { Comparator , Op , Prerelease , Version , VersionReq } ;
2
8
3
9
pub ( crate ) fn matches_prerelease ( req : & VersionReq , ver : & Version ) -> bool {
@@ -33,6 +39,7 @@ fn matches_prerelease_impl(cmp: &Comparator, ver: &Version) -> bool {
33
39
}
34
40
}
35
41
42
+ // See https://github.com/dtolnay/semver/blob/69efd3cc770ead273a06ad1788477b3092996d29/src/eval.rs#L44-L62
36
43
fn matches_exact ( cmp : & Comparator , ver : & Version ) -> bool {
37
44
if ver. major != cmp. major {
38
45
return false ;
@@ -53,6 +60,7 @@ fn matches_exact(cmp: &Comparator, ver: &Version) -> bool {
53
60
ver. pre == cmp. pre
54
61
}
55
62
63
+ // See https://github.com/dtolnay/semver/blob/69efd3cc770ead273a06ad1788477b3092996d29/src/eval.rs#L64-L88
56
64
fn matches_greater ( cmp : & Comparator , ver : & Version ) -> bool {
57
65
if ver. major != cmp. major {
58
66
return ver. major > cmp. major ;
@@ -79,6 +87,7 @@ fn matches_greater(cmp: &Comparator, ver: &Version) -> bool {
79
87
ver. pre > cmp. pre
80
88
}
81
89
90
+ // See https://github.com/dtolnay/semver/blob/69efd3cc770ead273a06ad1788477b3092996d29/src/eval.rs#L90-L114
82
91
fn matches_less ( cmp : & Comparator , ver : & Version ) -> bool {
83
92
if ver. major != cmp. major {
84
93
return ver. major < cmp. major ;
0 commit comments