feat: added IIdentifiable comparison interface & IsIdentical extension method

This commit is contained in:
2026-03-03 23:30:56 +03:00
parent 1d3dd8b046
commit fa514531bf
3 changed files with 10 additions and 1 deletions

View File

@@ -3,7 +3,7 @@ namespace Engine.Core;
/// <summary>
/// Represents any instance in the engine with an id.
/// </summary>
public interface IIdentifiable
public interface IIdentifiable : System.IComparable<IIdentifiable>
{
/// <summary>
/// Event triggered when the <see cref="Id"/> of the <see cref="IIdentifiable"/> changes.

View File

@@ -101,4 +101,6 @@ public abstract class BaseEntity : IEntity
protected BaseEntity() => Id = Guid.NewGuid().ToString("D");
protected BaseEntity(string id) => Id = id;
public int CompareTo(IIdentifiable? other) => Id.CompareTo(other?.Id);
}

View File

@@ -0,0 +1,7 @@
namespace Engine.Core;
public static class IdentifiableExtensions
{
public static bool IsIdentical(this IIdentifiable? left, IIdentifiable? right)
=> left?.CompareTo(right) == 0;
}