diff options
author | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-05-25 01:14:40 -0400 |
---|---|---|
committer | Jesse Plamondon-Willard <github@jplamondonw.com> | 2018-05-25 01:14:40 -0400 |
commit | 3129f67eb1f162e06d96854f319b10ccf583f0aa (patch) | |
tree | 67f7063dd4f362b018a677e6e9d3bd1cc66f63da /src/StardewModdingAPI.Toolkit/ISemanticVersion.cs | |
parent | 2a7bcb28f6a390e165c2cb8817f333aad750a032 (diff) | |
download | SMAPI-3129f67eb1f162e06d96854f319b10ccf583f0aa.tar.gz SMAPI-3129f67eb1f162e06d96854f319b10ccf583f0aa.tar.bz2 SMAPI-3129f67eb1f162e06d96854f319b10ccf583f0aa.zip |
add semantic version to toolkit (#532)
Diffstat (limited to 'src/StardewModdingAPI.Toolkit/ISemanticVersion.cs')
-rw-r--r-- | src/StardewModdingAPI.Toolkit/ISemanticVersion.cs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/StardewModdingAPI.Toolkit/ISemanticVersion.cs b/src/StardewModdingAPI.Toolkit/ISemanticVersion.cs new file mode 100644 index 00000000..ca62d393 --- /dev/null +++ b/src/StardewModdingAPI.Toolkit/ISemanticVersion.cs @@ -0,0 +1,46 @@ +using System; + +namespace StardewModdingAPI.Toolkit +{ + /// <summary>A semantic version with an optional release tag.</summary> + public interface ISemanticVersion : IComparable<ISemanticVersion>, IEquatable<ISemanticVersion> + { + /********* + ** Accessors + *********/ + /// <summary>The major version incremented for major API changes.</summary> + int Major { get; } + + /// <summary>The minor version incremented for backwards-compatible changes.</summary> + int Minor { get; } + + /// <summary>The patch version for backwards-compatible bug fixes.</summary> + int Patch { get; } + + /// <summary>An optional prerelease tag.</summary> + string Tag { get; } + + + /********* + ** Accessors + *********/ + /// <summary>Whether this is a pre-release version.</summary> + bool IsPrerelease(); + + /// <summary>Get whether this version is older than the specified version.</summary> + /// <param name="other">The version to compare with this instance.</param> + bool IsOlderThan(ISemanticVersion other); + + /// <summary>Get whether this version is newer than the specified version.</summary> + /// <param name="other">The version to compare with this instance.</param> + bool IsNewerThan(ISemanticVersion other); + + /// <summary>Get whether this version is between two specified versions (inclusively).</summary> + /// <param name="min">The minimum version.</param> + /// <param name="max">The maximum version.</param> + bool IsBetween(ISemanticVersion min, ISemanticVersion max); + + /// <summary>Get a string representation of the version.</summary> + string ToString(); + } +} |