* fix validation in new form layout * pin mediatr to last oss version * update dependencies * cleanup code in core * cleanup code in ffmpeg * cleanup code in infra * cleanup code in scanner * cleanup code in application * cleanup main code * cleanup test code * solution-wide code cleanup
27 lines
638 B
C#
27 lines
638 B
C#
namespace ErsatzTV.Core.Extensions;
|
|
|
|
public static class StringExtensions
|
|
{
|
|
public static int GetStableHashCode(this string str)
|
|
{
|
|
unchecked
|
|
{
|
|
var hash1 = 5381;
|
|
int hash2 = hash1;
|
|
|
|
for (var i = 0; i < str.Length && str[i] != '\0'; i += 2)
|
|
{
|
|
hash1 = ((hash1 << 5) + hash1) ^ str[i];
|
|
if (i == str.Length - 1 || str[i + 1] == '\0')
|
|
{
|
|
break;
|
|
}
|
|
|
|
hash2 = ((hash2 << 5) + hash2) ^ str[i + 1];
|
|
}
|
|
|
|
return hash1 + hash2 * 1566083941;
|
|
}
|
|
}
|
|
}
|