StructMultiKey<T1, T2>
using System;
using System.Runtime.CompilerServices;
namespace Newtonsoft.Json.Utilities
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
internal readonly struct StructMultiKey<[System.Runtime.CompilerServices.Nullable(2)] T1, [System.Runtime.CompilerServices.Nullable(2)] T2> : IEquatable<StructMultiKey<T1, T2>>
{
public readonly T1 Value1;
public readonly T2 Value2;
public StructMultiKey(T1 v1, T2 v2)
{
Value1 = v1;
Value2 = v2;
}
public override int GetHashCode()
{
T1 value = Value1;
int num = value?.GetHashCode() ?? 0;
T2 value2 = Value2;
return num ^ (value2?.GetHashCode() ?? 0);
}
public override bool Equals(object obj)
{
if (!(obj is StructMultiKey<T1, T2>))
return false;
StructMultiKey<T1, T2> other = (StructMultiKey<T1, T2>)obj;
return Equals(other);
}
public bool Equals([System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1,
1
})] StructMultiKey<T1, T2> other)
{
if (object.Equals(Value1, other.Value1))
return object.Equals(Value2, other.Value2);
return false;
}
}
}