Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
RandomizedStringEqualityComparer.cs
Go to the documentation of this file.
2
4
6{
7 private struct MarvinSeed
8 {
9 internal uint p0;
10
11 internal uint p1;
12 }
13
15 {
20
21 public override bool Equals(string x, string y)
22 {
23 return string.Equals(x, y);
24 }
25
26 public override int GetHashCode(string obj)
27 {
28 if (obj == null)
29 {
30 return 0;
31 }
32 return Marvin.ComputeHash32(ref Unsafe.As<char, byte>(ref obj.GetRawStringData()), (uint)(obj.Length * 2), _seed.p0, _seed.p1);
33 }
34 }
35
37 {
42
43 public override bool Equals(string x, string y)
44 {
45 return string.EqualsOrdinalIgnoreCase(x, y);
46 }
47
48 public override int GetHashCode(string obj)
49 {
50 if (obj == null)
51 {
52 return 0;
53 }
54 return Marvin.ComputeHash32OrdinalIgnoreCase(ref obj.GetRawStringData(), obj.Length, _seed.p0, _seed.p1);
55 }
56 }
57
58 private readonly MarvinSeed _seed;
59
61
70
79
84}
static unsafe void GetRandomBytes(byte *buffer, int length)
Definition Interop.cs:1871
unsafe RandomizedStringEqualityComparer(IEqualityComparer< string > underlyingComparer)
static RandomizedStringEqualityComparer Create(IEqualityComparer< string > underlyingComparer, bool ignoreCase)
static int ComputeHash32OrdinalIgnoreCase(ref char data, int count, uint p0, uint p1)
Definition Marvin.cs:106
static int ComputeHash32(ReadOnlySpan< byte > data, ulong seed)
Definition Marvin.cs:17