Browse Source

Implement IEquatable on Optional.

Steven Kirk 6 years ago
parent
commit
55eea624ee
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/Avalonia.Base/Data/Optional.cs

+ 4 - 1
src/Avalonia.Base/Data/Optional.cs

@@ -20,7 +20,7 @@ namespace Avalonia.Data
     ///   conversion from <typeparamref name="T"/>
     /// - For an missing value, use <see cref="Empty"/> or simply `default`
     /// </remarks>
-    public readonly struct Optional<T>
+    public readonly struct Optional<T> : IEquatable<Optional<T>>
     {
         private readonly T _value;
 
@@ -50,6 +50,9 @@ namespace Avalonia.Data
         /// <inheritdoc/>
         public override bool Equals(object obj) => obj is Optional<T> o && this == o;
 
+        /// <inheritdoc/>
+        public bool Equals(Optional<T> other) => this == other;
+
         /// <inheritdoc/>
         public override int GetHashCode() => HasValue ? Value!.GetHashCode() : 0;