namespace Dpz.Core.Service;

internal sealed class JsonElementValueComparer : IEqualityComparer<JsonElement>
{
    public static readonly JsonElementValueComparer Instance = new();

    private JsonElementValueComparer() { }

    public bool Equals(JsonElement x, JsonElement y)
    {
        return JsonElement.DeepEquals(x, y);
    }

    public int GetHashCode(JsonElement obj)
    {
        return obj.ValueKind is JsonValueKind.Undefined or JsonValueKind.Null
            ? 0
            : StringComparer.Ordinal.GetHashCode(obj.GetRawText());
    }
}
评论加载中...