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}