using System.Collections.Generic;
using System.Runtime.CompilerServices;
namespace Unity.VisualScripting
{
// Implementation From Roslyn:
// http://source.roslyn.io/#microsoft.codeanalysis/InternalUtilities/ReferenceEqualityComparer.cs
public class ReferenceEqualityComparer : IEqualityComparer<object>
{
private ReferenceEqualityComparer() { }
bool IEqualityComparer<object>.Equals(object a, object b)
{
return a == b;
}
int IEqualityComparer<object>.GetHashCode(object a)
{
return GetHashCode(a);
}
public static readonly ReferenceEqualityComparer Instance = new ReferenceEqualityComparer();
public static int GetHashCode(object a)
{
return RuntimeHelpers.GetHashCode(a);
}
}
public class ReferenceEqualityComparer<T> : IEqualityComparer<T>
{
private ReferenceEqualityComparer() { }
bool IEqualityComparer<T>.Equals(T a, T b)
{
return ReferenceEquals(a, b);
}
int IEqualityComparer<T>.GetHashCode(T a)
{
return GetHashCode(a);
}
public static readonly ReferenceEqualityComparer<T> Instance = new ReferenceEqualityComparer<T>();
public static int GetHashCode(T a)
{
return RuntimeHelpers.GetHashCode(a);
}
}
}