mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-13 15:42:50 +08:00
Refactor enum value retrieval to use EnumUtils for better compatibility with NetStandard 2.0 and AOT
This commit is contained in:
parent
4802751357
commit
10773a5625
@ -54,8 +54,7 @@ internal static class DecorationTable
|
||||
{
|
||||
var result = new List<string>();
|
||||
|
||||
Enum.GetValues(typeof(Decoration))
|
||||
.Cast<Decoration>()
|
||||
EnumUtils.GetValues<Decoration>()
|
||||
.Where(flag => (decoration & flag) != 0)
|
||||
.ForEach(flag =>
|
||||
{
|
||||
|
@ -140,7 +140,7 @@ internal struct FileSize
|
||||
bytes *= 8;
|
||||
}
|
||||
|
||||
foreach (var prefix in (FileSizePrefix[])Enum.GetValues(typeof(FileSizePrefix)))
|
||||
foreach (var prefix in EnumUtils.GetValues<FileSizePrefix>())
|
||||
{
|
||||
// Trying to find the largest unit, that the number of bytes can fit under. Ex. 40kb < 1mb
|
||||
if (bytes < Math.Pow((int)_prefixBase, (int)prefix + 1))
|
||||
|
15
src/Spectre.Console/Internal/Polyfill/EnumHelpers.cs
Normal file
15
src/Spectre.Console/Internal/Polyfill/EnumHelpers.cs
Normal file
@ -0,0 +1,15 @@
|
||||
namespace Spectre.Console;
|
||||
|
||||
internal static class EnumUtils
|
||||
{
|
||||
public static T[] GetValues<T>()
|
||||
where T : struct, Enum
|
||||
{
|
||||
return
|
||||
#if NET6_0_OR_GREATER
|
||||
Enum.GetValues<T>();
|
||||
#else
|
||||
(T[])Enum.GetValues(typeof(T));
|
||||
#endif
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user