<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />

StructMultiKey<T1, T2>

struct StructMultiKey<T1, T2> : IEquatable<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; } } }