4d0eb4d4f3
* Change to using SemVer builtin type * Remove SptVersion from config, remove redundant .ToString() * Update test mod, fix watermark string conversion
49 lines
1.3 KiB
C#
49 lines
1.3 KiB
C#
using Range = SemanticVersioning.Range;
|
|
using Version = SemanticVersioning.Version;
|
|
|
|
namespace SPTarkov.Common.Semver.Implementations;
|
|
|
|
public class SemanticVersioningSemVer : ISemVer
|
|
{
|
|
public string MaxSatisfying(List<Version> versions)
|
|
{
|
|
return MaxSatisfying(versions.AsEnumerable());
|
|
}
|
|
|
|
public string MaxSatisfying(IEnumerable<Version> versions)
|
|
{
|
|
return MaxSatisfying("*", versions);
|
|
}
|
|
|
|
public string MaxSatisfying(string version, List<Version> versions)
|
|
{
|
|
return MaxSatisfying(version, versions.AsEnumerable());
|
|
}
|
|
|
|
public string MaxSatisfying(string version, IEnumerable<Version> versions)
|
|
{
|
|
var versionRanges = versions.Select(versionInner => versionInner.ToString());
|
|
return Range.MaxSatisfying(version, versionRanges, true);
|
|
}
|
|
|
|
public bool Satisfies(Version version, Version testVersion)
|
|
{
|
|
return Range.IsSatisfied(testVersion.ToString(), version.ToString(), true);
|
|
}
|
|
|
|
public bool AnySatisfies(Version version, List<Version> testVersions)
|
|
{
|
|
return testVersions.Any(v => Satisfies(version, v));
|
|
}
|
|
|
|
public bool IsValid(Version version)
|
|
{
|
|
return Version.TryParse(version.ToString(), out _);
|
|
}
|
|
|
|
public bool IsValidRange(Version version)
|
|
{
|
|
return Range.TryParse(version.ToString(), out _);
|
|
}
|
|
}
|