blob: 6da90399193d17ef5a810f009645e17dabe48771 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
pub fn push_version(current_version: impl Into<String>) -> Option<String> {
let version_str = current_version.into();
let parts: Vec<&str> = version_str.split('.').collect();
if parts.len() != 3 {
return None;
}
let major: Result<u32, _> = parts[0].parse();
let minor: Result<u32, _> = parts[1].parse();
let patch: Result<u32, _> = parts[2].parse();
if let (Ok(mut major), Ok(mut minor), Ok(mut patch)) = (major, minor, patch) {
patch += 1;
if patch > 99 {
patch = 0;
minor += 1;
if minor > 99 {
minor = 0;
major += 1;
}
}
Some(format!("{}.{}.{}", major, minor, patch))
} else {
None
}
}
|