Files
Umbraco-CMS/src/Umbraco.ModelsBuilder.Embedded/HashCombiner.cs

39 lines
880 B
C#

using System;
using System.Globalization;
namespace Umbraco.ModelsBuilder.Embedded
{
// because, of course, it's internal in Umbraco
// see also System.Web.Util.HashCodeCombiner
internal class HashCombiner
{
private long _combinedHash = 5381L;
public void Add(int i)
{
_combinedHash = (_combinedHash << 5) + _combinedHash ^ i;
}
public void Add(object o)
{
Add(o.GetHashCode());
}
public void Add(DateTime d)
{
Add(d.GetHashCode());
}
public void Add(string s)
{
if (s == null) return;
Add(StringComparer.InvariantCulture.GetHashCode(s));
}
public string GetCombinedHashCode()
{
return _combinedHash.ToString("x", CultureInfo.InvariantCulture);
}
}
}