A game about forced loneliness, made by TACStudios
1namespace Unity.VisualScripting
2{
3 public static class HashUtility
4 {
5 public static int GetHashCode<T>(T a)
6 {
7 return a?.GetHashCode() ?? 0;
8 }
9
10 public static int GetHashCode<T1, T2>(T1 a, T2 b)
11 {
12 unchecked
13 {
14 var hash = 17;
15
16 hash = hash * 23 + (a?.GetHashCode() ?? 0);
17 hash = hash * 23 + (b?.GetHashCode() ?? 0);
18
19 return hash;
20 }
21 }
22
23 public static int GetHashCode<T1, T2, T3>(T1 a, T2 b, T3 c)
24 {
25 unchecked
26 {
27 var hash = 17;
28
29 hash = hash * 23 + (a?.GetHashCode() ?? 0);
30 hash = hash * 23 + (b?.GetHashCode() ?? 0);
31 hash = hash * 23 + (c?.GetHashCode() ?? 0);
32
33 return hash;
34 }
35 }
36
37 public static int GetHashCode<T1, T2, T3, T4>(T1 a, T2 b, T3 c, T4 d)
38 {
39 unchecked
40 {
41 var hash = 17;
42
43 hash = hash * 23 + (a?.GetHashCode() ?? 0);
44 hash = hash * 23 + (b?.GetHashCode() ?? 0);
45 hash = hash * 23 + (c?.GetHashCode() ?? 0);
46 hash = hash * 23 + (d?.GetHashCode() ?? 0);
47
48 return hash;
49 }
50 }
51
52 public static int GetHashCode<T1, T2, T3, T4, T5>(T1 a, T2 b, T3 c, T4 d, T5 e)
53 {
54 unchecked
55 {
56 var hash = 17;
57
58 hash = hash * 23 + (a?.GetHashCode() ?? 0);
59 hash = hash * 23 + (b?.GetHashCode() ?? 0);
60 hash = hash * 23 + (c?.GetHashCode() ?? 0);
61 hash = hash * 23 + (d?.GetHashCode() ?? 0);
62 hash = hash * 23 + (e?.GetHashCode() ?? 0);
63
64 return hash;
65 }
66 }
67
68 public static int GetHashCodeAlloc(params object[] values)
69 {
70 unchecked
71 {
72 var hash = 17;
73
74 foreach (var value in values)
75 {
76 hash = hash * 23 + (value?.GetHashCode() ?? 0);
77 }
78
79 return hash;
80 }
81 }
82 }
83}