format ContentPackVersion

This commit is contained in:
MihailRis 2025-09-14 12:57:19 +03:00
parent 94989ce292
commit f44747587f
2 changed files with 52 additions and 45 deletions

View File

@ -37,7 +37,8 @@ DependencyVersionOperator Version::string_to_operator(const std::string& op) {
return DependencyVersionOperator::more_or_equal;
else if (op == "<=" || op == "=<")
return DependencyVersionOperator::less_or_equal;
else return DependencyVersionOperator::equal;
else
return DependencyVersionOperator::equal;
}
bool isNumber(const std::string& s) {
@ -63,4 +64,4 @@ bool Version::matches_pattern(const std::string& version) {
}
return parts.size() == 2 || parts.size() == 3;
}
}

View File

@ -3,49 +3,55 @@
#include "content/ContentPack.hpp"
class Version {
public:
int major;
int minor;
int patch;
public:
int major;
int minor;
int patch;
Version(const std::string& version);
bool operator==(const Version& other) const {
return major == other.major && minor == other.minor && patch == other.patch;
Version(const std::string& version);
bool operator==(const Version& other) const {
return major == other.major && minor == other.minor &&
patch == other.patch;
}
bool operator<(const Version& other) const {
if (major != other.major) return major < other.major;
if (minor != other.minor) return minor < other.minor;
return patch < other.patch;
}
bool operator>(const Version& other) const {
return other < *this;
}
bool operator>=(const Version& other) const {
return !(*this < other);
}
bool operator<=(const Version& other) const {
return !(*this > other);
}
bool process_operator(const std::string& op, const Version& other) const {
auto dep_op = Version::string_to_operator(op);
switch (dep_op) {
case DependencyVersionOperator::equal:
return *this == other;
case DependencyVersionOperator::more:
return *this > other;
case DependencyVersionOperator::less:
return *this < other;
case DependencyVersionOperator::less_or_equal:
return *this <= other;
case DependencyVersionOperator::more_or_equal:
return *this >= other;
default:
return false;
}
}
bool operator<(const Version& other) const {
if (major != other.major) return major < other.major;
if (minor != other.minor) return minor < other.minor;
return patch < other.patch;
}
bool operator>(const Version& other) const {
return other < *this;
}
bool operator>=(const Version& other) const {
return !(*this < other);
}
bool operator<=(const Version& other) const {
return !(*this > other);
}
bool process_operator(const std::string& op, const Version& other) const {
auto dep_op = Version::string_to_operator(op);
switch(dep_op) {
case DependencyVersionOperator::equal: return *this == other;
case DependencyVersionOperator::more: return *this > other;
case DependencyVersionOperator::less: return *this < other;
case DependencyVersionOperator::less_or_equal: return *this <= other;
case DependencyVersionOperator::more_or_equal: return *this >= other;
default: return false;
}
}
static DependencyVersionOperator string_to_operator(const std::string& op);
static bool matches_pattern(const std::string& version);
};
static DependencyVersionOperator string_to_operator(const std::string& op);
static bool matches_pattern(const std::string& version);
};