From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XUtliPoolLib/XFastEnumIntEqualityComparer.cs | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs (limited to 'Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs') diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs b/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs new file mode 100644 index 00000000..65de0abf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; + +namespace XUtliPoolLib +{ + [StructLayout(LayoutKind.Sequential, Size = 1)] + public struct XFastEnumIntEqualityComparer : IEqualityComparer where TEnum : struct + { + public static int ToInt(TEnum en) + { + return EnumInt32ToInt.Convert(en); + } + + public bool Equals(TEnum lhs, TEnum rhs) + { + return XFastEnumIntEqualityComparer.ToInt(lhs) == XFastEnumIntEqualityComparer.ToInt(rhs); + } + + public int GetHashCode(TEnum en) + { + return XFastEnumIntEqualityComparer.ToInt(en); + } + } +} -- cgit v1.1-26-g67d0