8
8
// option. This file may not be copied, modified, or distributed
9
9
// except according to those terms.
10
10
11
- //! Semantic version parsing and comparison.
12
- //!
13
- //! Semantic versioning (see http://semver.org/) is a set of rules for
14
- //! assigning version numbers intended to convey meaning about what has
15
- //! changed, and how much. A version number has five parts:
16
- //!
17
- //! * Major number, updated for incompatible API changes
18
- //! * Minor number, updated for backwards-compatible API additions
19
- //! * Patch number, updated for backwards-compatible bugfixes
20
- //! * Pre-release information (optional), preceded by a hyphen (`-`)
21
- //! * Build metadata (optional), preceded by a plus sign (`+`)
22
- //!
23
- //! The three mandatory components are required to be decimal numbers. The
24
- //! pre-release information and build metadata are required to be a
25
- //! period-separated list of identifiers containing only alphanumeric
26
- //! characters and hyphens.
27
- //!
28
- //! An example version number with all five components is
29
- //! `0.8.1-rc.3.0+20130922.linux`.
11
+ //! Semver parsing and logic
12
+
13
+ #[ allow( missing_doc) ] ;
14
+
30
15
31
16
use std:: char;
32
17
use std:: cmp;
@@ -35,8 +20,6 @@ use std::io;
35
20
use std:: option:: { Option , Some , None } ;
36
21
use std:: to_str:: ToStr ;
37
22
38
- /// An identifier in the pre-release or build metadata. If the identifier can
39
- /// be parsed as a decimal value, it will be represented with `Numeric`.
40
23
#[ deriving( Clone , Eq ) ]
41
24
pub enum Identifier {
42
25
Numeric ( uint ) ,
@@ -66,20 +49,12 @@ impl ToStr for Identifier {
66
49
}
67
50
68
51
69
- /// Represents a version number conforming to the semantic versioning scheme.
70
52
#[ deriving( Clone , Eq ) ]
71
53
pub struct Version {
72
- /// The major version, to be incremented on incompatible changes.
73
54
major : uint ,
74
- /// The minor version, to be incremented when functionality is added in a
75
- /// backwards-compatible manner.
76
55
minor : uint ,
77
- /// The patch version, to be incremented when backwards-compatible bug
78
- /// fixes are made.
79
56
patch : uint ,
80
- /// The pre-release version identifier, if one exists.
81
57
pre : ~[ Identifier ] ,
82
- /// The build metadata, ignored when determining version precedence.
83
58
build : ~[ Identifier ] ,
84
59
}
85
60
@@ -227,7 +202,6 @@ fn parse_reader(rdr: @io::Reader) -> Version {
227
202
}
228
203
229
204
230
- /// Parse a string into a semver object.
231
205
pub fn parse ( s : & str ) -> Option < Version > {
232
206
if !s. is_ascii ( ) {
233
207
return None ;
0 commit comments