Provides enumeration values utilities for Unity.
- Fast utilitiy methods for enum. (GetValue, GetNames, IsDefined, TryParase etc..)
- Install from UnityPackage from Release Page
- Package Manager
Download .unitypackage from Release Page
{
"dependencies": {
"com.xtaltools.unienum": "https://github.com/neptaco/UniEnum.git?path=src/UniEnum.Unity/Assets/UniEnum"
}
}
Api Documentation
.NET |
UniEnum |
Enum.GetNames(typeof(EnumType)) |
UniEnum.GetNames<EnumType>() |
Enum.GetValues(typeof(EnumType)) |
UniEnum.GetValues<EnumType>() |
Enum.IsDefined(typeof(EnumType), v) |
UniEnum.IsDefined<EnumType>(v) 1 |
Enum.TryParse(typeof(EnumType)) |
UniEnum.TryParse<EnumType>(v) |
Note
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.630 (2004/?/20H1)
Intel Core i5-8259U CPU 2.30GHz (Coffee Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.100
[Host] : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
ShortRun : .NET Core 5.0.0 (CoreCLR 5.0.20.51904, CoreFX 5.0.20.51904), X64 RyuJIT
Method |
Mean |
Error |
StdDev |
Median |
Ratio |
RatioSD |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
UniEnum_Values |
0.0931 ns |
0.8366 ns |
0.0459 ns |
0.1120 ns |
1.00 |
0.00 |
- |
- |
- |
- |
FastEnum_Values |
0.1494 ns |
1.3796 ns |
0.0756 ns |
0.1634 ns |
2.44 |
2.54 |
- |
- |
- |
- |
Enum_Values |
767.8288 ns |
109.8056 ns |
6.0188 ns |
765.2773 ns |
10,559.26 |
7,092.53 |
0.0706 |
- |
- |
224 B |
Method |
Mean |
Error |
StdDev |
Ratio |
RatioSD |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
UniEnum_TryParse_CaseSensitive_1 |
16.01 ns |
11.717 ns |
0.642 ns |
1.00 |
0.00 |
- |
- |
- |
- |
FastEnum_TryParse_CaseSensitive_1 |
20.38 ns |
4.270 ns |
0.234 ns |
1.27 |
0.05 |
- |
- |
- |
- |
UniEnum_TryParse_CaseSensitive_500 |
16.21 ns |
4.119 ns |
0.226 ns |
1.01 |
0.05 |
- |
- |
- |
- |
FastEnum_TryParse_CaseSensitive_500 |
20.65 ns |
2.056 ns |
0.113 ns |
1.29 |
0.05 |
- |
- |
- |
- |
UniEnum_TryParse_IgnoreCase_1 |
21.31 ns |
12.460 ns |
0.683 ns |
1.33 |
0.02 |
- |
- |
- |
- |
FastEnum_TryParse_IgnoreCase_1 |
16.40 ns |
5.825 ns |
0.319 ns |
1.03 |
0.06 |
- |
- |
- |
- |
UniEnum_TryParse_IgnoreCase_500 |
23.99 ns |
10.884 ns |
0.597 ns |
1.50 |
0.02 |
- |
- |
- |
- |
FastEnum_TryParse_IgnoreCase_500 |
4,363.10 ns |
972.177 ns |
53.288 ns |
272.76 |
11.38 |
- |
- |
- |
- |
Method |
Mean |
Error |
StdDev |
Ratio |
RatioSD |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
UniEnum_Continuous_IsDefined |
0.8545 ns |
0.1330 ns |
0.0073 ns |
1.00 |
0.00 |
- |
- |
- |
- |
FastEnum_Continuous_IsDefined |
3.5935 ns |
0.7328 ns |
0.0402 ns |
4.21 |
0.08 |
- |
- |
- |
- |
Method |
Mean |
Error |
StdDev |
Ratio |
RatioSD |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
UniEnum_Discontinuous_IsDefined |
2.001 ns |
0.1944 ns |
0.0107 ns |
1.00 |
0.00 |
- |
- |
- |
- |
FastEnum_Discontinuous_IsDefined |
4.030 ns |
0.6492 ns |
0.0356 ns |
2.01 |
0.02 |
- |
- |
- |
- |
Method |
Mean |
Error |
StdDev |
Ratio |
RatioSD |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
UniEnum_Short_IsDefined |
0.9304 ns |
0.4986 ns |
0.0273 ns |
1.00 |
0.00 |
- |
- |
- |
- |
FastEnum_Short_IsDefined |
3.2503 ns |
0.5247 ns |
0.0288 ns |
3.50 |
0.12 |
- |
- |
- |
- |
This library is under the MIT License.