using System; using System.Collections.Generic; namespace Mirror { public static class Extensions { // string.GetHashCode is not guaranteed to be the same on all machines, but // we need one that is the same on all machines. simple and stupid: public static int GetStableHashCode(this string text) { unchecked { int hash = 23; foreach (char c in text) hash = hash * 31 + c; return hash; } } // previously in DotnetCompatibility.cs // leftover from the UNET days. supposedly for windows store? internal static string GetMethodName(this Delegate func) { #if NETFX_CORE return func.GetMethodInfo().Name; #else return func.Method.Name; #endif } // helper function to copy to List // C# only provides CopyTo(T[]) public static void CopyTo(this IEnumerable source, List destination) { // foreach allocates. use AddRange. destination.AddRange(source); } } }