2021-02-23 02:13:14 +02:00

46 lines
1.7 KiB
C#

using System.Runtime.CompilerServices;
namespace Asset_Cleaner {
static class DirtyUtils {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int HashCode<T1>(in T1 v1) {
var hash = v1.GetHashCode();
hash = (hash * 397);
return hash;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int HashCode<T1, T2>(in T1 v1, in T2 v2) {
var hash = v1.GetHashCode();
hash = (hash * 397) ^ v2.GetHashCode();
return hash;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int HashCode<T1, T2, T3>(in T1 v1, in T2 v2, in T3 v3) {
var hash = v1.GetHashCode();
hash = (hash * 397) ^ v2.GetHashCode();
hash = (hash * 397) ^ v3.GetHashCode();
return hash;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int HashCode<T1, T2, T3, T4>(in T1 v1, in T2 v2, in T3 v3, in T4 v4) {
var hash = v1.GetHashCode();
hash = (hash * 397) ^ v2.GetHashCode();
hash = (hash * 397) ^ v3.GetHashCode();
hash = (hash * 397) ^ v4.GetHashCode();
return hash;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int HashCode<T1, T2, T3, T4, T5>(in T1 v1, in T2 v2, in T3 v3, in T4 v4, in T5 v5) {
var hash = v1.GetHashCode();
hash = (hash * 397) ^ v2.GetHashCode();
hash = (hash * 397) ^ v3.GetHashCode();
hash = (hash * 397) ^ v4.GetHashCode();
hash = (hash * 397) ^ v5.GetHashCode();
return hash;
}
}
}