blob: 8f93e186d7d679d774f10ef8b41a248384f674a5 (
plain) (
blame)
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
31
32
33
34
35
36
37
38
39
40
41
|
#ifndef VERSION_H_C757E53C
#define VERSION_H_C757E53C
#include <regex>
#include <fmt/core.h>
struct Version {
int major = 0;
int minor = 0;
int revision = 0;
constexpr Version(int major_arg, int minor_arg, int rev_arg)
: major(major_arg), minor(minor_arg), revision(rev_arg) {}
Version(const std::string& ver_str) {
const std::regex version_regex("v([0-9]*)\.([0-9]*)\.([0-9]*)");
std::smatch version_match;
if (std::regex_match(ver_str, version_match, version_regex)) {
major = std::atoi(version_match[1].str().c_str());
minor = std::atoi(version_match[2].str().c_str());
revision = std::atoi(version_match[3].str().c_str());
}
}
std::string ToString() const {
return fmt::format("v{}.{}.{}", major, minor, revision);
}
bool operator<(const Version& rhs) const {
return (major < rhs.major) ||
(major == rhs.major &&
(minor < rhs.minor ||
(minor == rhs.minor && revision < rhs.revision)));
}
};
constexpr const Version kTrackerVersion = Version(0, 10, 6);
#endif /* end of include guard: VERSION_H_C757E53C */
|