Skip to content

Commit cfc122e

Browse files
committed
Rename PartialVersion's variants
1 parent a79ce20 commit cfc122e

File tree

1 file changed

+69
-66
lines changed

1 file changed

+69
-66
lines changed

src/version/partial.rs

Lines changed: 69 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@ use super::VersionError;
88

99
#[derive(Copy, Clone, Debug)]
1010
pub enum PartialVersion {
11-
A(u32, u32, u32),
12-
B(u32, u32),
13-
C(u32),
11+
/// Major, Minor, Patch.
12+
Mmp(u32, u32, u32),
13+
/// Major, Minor.
14+
Mm(u32, u32),
15+
/// Major.
16+
M(u32),
1417
}
1518

1619
impl PartialVersion {
@@ -23,10 +26,10 @@ impl PartialVersion {
2326
#[allow(dead_code)]
2427
pub fn sort_key(&self) -> (u32, Option<u32>, Option<u32>) {
2528
use PartialVersion::*;
26-
match self {
27-
A(a, b, c) => (*a, Some(*b), Some(*c)),
28-
B(a, b) => (*a, Some(*b), None),
29-
C(a) => (*a, None, None),
29+
match *self {
30+
Mmp(a, b, c) => (a, Some(b), Some(c)),
31+
Mm(a, b) => (a, Some(b), None),
32+
M(a) => (a, None, None),
3033
}
3134
}
3235
}
@@ -41,25 +44,25 @@ impl PartialOrd for PartialVersion {
4144
fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
4245
use PartialVersion::*;
4346
match (*self, *other) {
44-
(A(x1, x2, x3), A(y1, y2, y3)) => (x1, x2, x3).partial_cmp(&(y1, y2, y3)),
45-
(A(x1, x2, x3), B(y1, y2)) => (x1, x2, x3).partial_cmp(&(y1, y2, 0)),
46-
(A(x1, x2, x3), C(y1)) => (x1, x2, x3).partial_cmp(&(y1, 0, 0)),
47-
(B(x1, x2), A(y1, y2, y3)) => (x1, x2, 0).partial_cmp(&(y1, y2, y3)),
48-
(B(x1, x2), B(y1, y2)) => (x1, x2).partial_cmp(&(y1, y2)),
49-
(B(x1, x2), C(y1)) => (x1, x2).partial_cmp(&(y1, 0)),
50-
(C(x1), A(y1, y2, y3)) => (x1, 0, 0).partial_cmp(&(y1, y2, y3)),
51-
(C(x1), B(y1, y2)) => (x1, 0).partial_cmp(&(y1, y2)),
52-
(C(x1), C(y1)) => x1.partial_cmp(&y1),
47+
(Mmp(x1, x2, x3), Mmp(y1, y2, y3)) => (x1, x2, x3).partial_cmp(&(y1, y2, y3)),
48+
(Mmp(x1, x2, x3), Mm(y1, y2)) => (x1, x2, x3).partial_cmp(&(y1, y2, 0)),
49+
(Mmp(x1, x2, x3), M(y1)) => (x1, x2, x3).partial_cmp(&(y1, 0, 0)),
50+
(Mm(x1, x2), Mmp(y1, y2, y3)) => (x1, x2, 0).partial_cmp(&(y1, y2, y3)),
51+
(Mm(x1, x2), Mm(y1, y2)) => (x1, x2).partial_cmp(&(y1, y2)),
52+
(Mm(x1, x2), M(y1)) => (x1, x2).partial_cmp(&(y1, 0)),
53+
(M(x1), Mmp(y1, y2, y3)) => (x1, 0, 0).partial_cmp(&(y1, y2, y3)),
54+
(M(x1), Mm(y1, y2)) => (x1, 0).partial_cmp(&(y1, y2)),
55+
(M(x1), M(y1)) => x1.partial_cmp(&y1),
5356
}
5457
}
5558
}
5659

5760
impl fmt::Display for PartialVersion {
5861
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
5962
match self {
60-
Self::A(a, b, c) => fmt.pad(&format!("{}.{}.{}", a, b, c)),
61-
Self::B(a, b) => fmt.pad(&format!("{}.{}", a, b)),
62-
Self::C(a) => fmt.pad(&format!("{}", a)),
63+
Self::Mmp(a, b, c) => fmt.pad(&format!("{}.{}.{}", a, b, c)),
64+
Self::Mm(a, b) => fmt.pad(&format!("{}.{}", a, b)),
65+
Self::M(a) => fmt.pad(&format!("{}", a)),
6366
}
6467
}
6568
}
@@ -75,9 +78,9 @@ impl FromStr for PartialVersion {
7578
caps.get(2).and_then(|n| n.as_str().parse::<u32>().ok()),
7679
caps.get(3).and_then(|n| n.as_str().parse::<u32>().ok()),
7780
) {
78-
(Some(a), Some(b), Some(c)) => Ok(Self::A(a, b, c)),
79-
(Some(a), Some(b), _) => Ok(Self::B(a, b)),
80-
(Some(a), _, _) => Ok(Self::C(a)),
81+
(Some(a), Some(b), Some(c)) => Ok(Self::Mmp(a, b, c)),
82+
(Some(a), Some(b), _) => Ok(Self::Mm(a, b)),
83+
(Some(a), _, _) => Ok(Self::M(a)),
8184
_ => Err(VersionError::BadlyFormed),
8285
},
8386
None => Err(VersionError::Missing),
@@ -95,12 +98,12 @@ mod tests {
9598

9699
#[test]
97100
fn parses_version_below_10() {
98-
assert_eq!(Ok(A(9, 6, 17)), "9.6.17".parse());
101+
assert_eq!(Ok(Mmp(9, 6, 17)), "9.6.17".parse());
99102
}
100103

101104
#[test]
102105
fn parses_version_above_10() {
103-
assert_eq!(Ok(B(12, 2)), "12.2".parse());
106+
assert_eq!(Ok(Mm(12, 2)), "12.2".parse());
104107
}
105108

106109
#[test]
@@ -116,26 +119,26 @@ mod tests {
116119

117120
#[test]
118121
fn displays_version_below_10() {
119-
assert_eq!("9.6.17", format!("{}", A(9, 6, 17)));
122+
assert_eq!("9.6.17", format!("{}", Mmp(9, 6, 17)));
120123
}
121124

122125
#[test]
123126
fn displays_version_above_10() {
124-
assert_eq!("12.2", format!("{}", B(12, 2)));
127+
assert_eq!("12.2", format!("{}", Mm(12, 2)));
125128
}
126129

127130
#[test]
128131
fn partial_ord_works_as_expected() {
129132
let mut versions = vec![
130-
A(9, 10, 11),
131-
A(9, 10, 12),
132-
B(8, 11),
133-
B(9, 11),
134-
B(9, 12),
135-
B(10, 11),
136-
C(8),
137-
C(9),
138-
C(11),
133+
Mmp(9, 10, 11),
134+
Mmp(9, 10, 12),
135+
Mm(8, 11),
136+
Mm(9, 11),
137+
Mm(9, 12),
138+
Mm(10, 11),
139+
M(8),
140+
M(9),
141+
M(11),
139142
];
140143
let mut rng = thread_rng();
141144
for _ in 0..1000 {
@@ -144,15 +147,15 @@ mod tests {
144147
assert_eq!(
145148
versions,
146149
vec![
147-
C(8),
148-
B(8, 11),
149-
C(9),
150-
A(9, 10, 11),
151-
A(9, 10, 12),
152-
B(9, 11),
153-
B(9, 12),
154-
B(10, 11),
155-
C(11),
150+
M(8),
151+
Mm(8, 11),
152+
M(9),
153+
Mmp(9, 10, 11),
154+
Mmp(9, 10, 12),
155+
Mm(9, 11),
156+
Mm(9, 12),
157+
Mm(10, 11),
158+
M(11),
156159
]
157160
);
158161
}
@@ -161,17 +164,17 @@ mod tests {
161164
#[test]
162165
fn sort_key_works_as_expected() {
163166
let mut versions = vec![
164-
A(9, 0, 0),
165-
A(9, 10, 11),
166-
A(9, 10, 12),
167-
B(9, 0),
168-
B(8, 11),
169-
B(9, 11),
170-
B(9, 12),
171-
B(10, 11),
172-
C(8),
173-
C(9),
174-
C(11),
167+
Mmp(9, 0, 0),
168+
Mmp(9, 10, 11),
169+
Mmp(9, 10, 12),
170+
Mm(9, 0),
171+
Mm(8, 11),
172+
Mm(9, 11),
173+
Mm(9, 12),
174+
Mm(10, 11),
175+
M(8),
176+
M(9),
177+
M(11),
175178
];
176179
let mut rng = thread_rng();
177180
for _ in 0..1000 {
@@ -180,17 +183,17 @@ mod tests {
180183
assert_eq!(
181184
versions,
182185
vec![
183-
C(8),
184-
B(8, 11),
185-
C(9),
186-
B(9, 0),
187-
A(9, 0, 0),
188-
A(9, 10, 11),
189-
A(9, 10, 12),
190-
B(9, 11),
191-
B(9, 12),
192-
B(10, 11),
193-
C(11),
186+
M(8),
187+
Mm(8, 11),
188+
M(9),
189+
Mm(9, 0),
190+
Mmp(9, 0, 0),
191+
Mmp(9, 10, 11),
192+
Mmp(9, 10, 12),
193+
Mm(9, 11),
194+
Mm(9, 12),
195+
Mm(10, 11),
196+
M(11),
194197
]
195198
);
196199
}

0 commit comments

Comments
 (0)