wasSharp

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 22  →  ?path2? @ 23
/NetHash.cs
@@ -0,0 +1,43 @@
///////////////////////////////////////////////////////////////////////////
// Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 //
// Please see: http://www.gnu.org/licenses/gpl.html for legal details, //
// rights of fair usage, the disclaimer and warranty conditions. //
///////////////////////////////////////////////////////////////////////////
 
using System.Collections.Generic;
 
namespace wasSharp
{
public struct NetHash
{
private readonly int hashCode;
 
public NetHash(int hashCode = 17)
{
this.hashCode = hashCode;
}
 
public static NetHash Init => new NetHash();
 
public static implicit operator int(NetHash hashCode)
{
return hashCode.GetHashCode();
}
 
public NetHash Hash<T>(T obj)
{
var c = EqualityComparer<T>.Default;
var h = c.Equals(obj, default(T)) ? 0 : obj.GetHashCode();
unchecked
{
h += hashCode*31;
}
return new NetHash(h);
}
 
public override int GetHashCode()
{
return hashCode;
}
}
}