2019-08-23 11:56:54 -07:00
|
|
|
namespace System
|
|
|
|
{
|
|
|
|
struct Version
|
|
|
|
{
|
2020-05-05 18:27:24 +02:00
|
|
|
public uint32 Major;
|
|
|
|
public uint32 Minor;
|
|
|
|
public uint32 Build = 0;
|
|
|
|
public uint32 Revision = 0;
|
2019-08-23 11:56:54 -07:00
|
|
|
|
2020-05-05 18:27:24 +02:00
|
|
|
public this(uint32 major, uint32 minor)
|
2019-08-23 11:56:54 -07:00
|
|
|
{
|
|
|
|
Major = major;
|
|
|
|
Minor = minor;
|
|
|
|
}
|
|
|
|
|
2020-05-05 18:27:24 +02:00
|
|
|
public this(uint32 major, uint32 minor, uint32 build, uint32 revision)
|
2019-08-23 11:56:54 -07:00
|
|
|
{
|
|
|
|
Major = major;
|
|
|
|
Minor = minor;
|
|
|
|
Build = build;
|
|
|
|
Revision = revision;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static int operator<=>(Version lhs, Version rhs)
|
|
|
|
{
|
|
|
|
if (lhs.Major != rhs.Major)
|
|
|
|
if (lhs.Major > rhs.Major)
|
|
|
|
return 1;
|
|
|
|
else
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
if (lhs.Minor != rhs.Minor)
|
|
|
|
if (lhs.Minor > rhs.Minor)
|
|
|
|
return 1;
|
|
|
|
else
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
if (lhs.Build != rhs.Build)
|
|
|
|
if (lhs.Build > rhs.Build)
|
|
|
|
return 1;
|
|
|
|
else
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
if (lhs.Revision != rhs.Revision)
|
|
|
|
if (lhs.Revision > rhs.Revision)
|
|
|
|
return 1;
|
|
|
|
else
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
2020-05-05 18:27:24 +02:00
|
|
|
|
|
|
|
public bool Check(uint32 major)
|
|
|
|
{
|
|
|
|
return Major == major;
|
|
|
|
}
|
|
|
|
|
|
|
|
public bool Check(uint32 major, uint32 minor)
|
|
|
|
{
|
|
|
|
return (Major > major) || ((Major == major) && (Minor >= minor));
|
|
|
|
}
|
|
|
|
|
|
|
|
public bool Check(uint32 major, uint32 minor, uint32 build)
|
|
|
|
{
|
|
|
|
return (Major > major) || ((Major == major) && (Minor > minor)) ||
|
|
|
|
((Major == major) && (Minor == minor) && (Build >= build));
|
|
|
|
}
|
|
|
|
|
|
|
|
public bool Check(uint32 major, uint32 minor, uint32 build, uint32 revision)
|
|
|
|
{
|
|
|
|
return (Major > major) || ((Major == major) && (Minor > minor)) ||
|
|
|
|
((Major == major) && (Minor == minor) && (Build > build)) ||
|
|
|
|
((Major == major) && (Minor == minor) && (Build == build) && (Revision >= revision));
|
|
|
|
}
|
2019-08-23 11:56:54 -07:00
|
|
|
}
|
|
|
|
}
|