FastEnum.Extensions.Generator
1.3.0
dotnet add package FastEnum.Extensions.Generator --version 1.3.0
NuGet\Install-Package FastEnum.Extensions.Generator -Version 1.3.0
<PackageReference Include="FastEnum.Extensions.Generator" Version="1.3.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add FastEnum.Extensions.Generator --version 1.3.0
#r "nuget: FastEnum.Extensions.Generator, 1.3.0"
// Install FastEnum.Extensions.Generator as a Cake Addin #addin nuget:?package=FastEnum.Extensions.Generator&version=1.3.0 // Install FastEnum.Extensions.Generator as a Cake Tool #tool nuget:?package=FastEnum.Extensions.Generator&version=1.3.0
FastEnum.Extensions.Generator
Source Generator for enums to create extension methods with basic functionality.
Usage
Use the [Extensions]
on your enums, so the source generator will generate the extensions for those enums:
Feature
- MembersCount (field)
- GetValues
- GetUnderlyingValues
- GetNames
- HasFlag
- IsDefined
- FastToString
- FastToString with format option
- GetDescription
- TryParse (string/System.ReadOnlySpan<char>)
- TryParseIgnoreCase (string/System.ReadOnlySpan<char>)
Note: I'm trying to make the generated code behave the same as the .NET implementation. If you find any differences please let me know.
Limitations
- Only actively supported .NET versions are supported. See: supported version list
- .NET Framework is not supported
- Generation extensions for enums nested in classes with generic type parameters are not supported.
Example
using FastEnum;
namespace ToStringExample;
public class NestingClass
{
[Extensions]
public enum NestedInClassEnum
{
None
}
}
[Extensions, Flags]
public enum Color
{
[Description("Crimson Red")]
Red = 0x990000,
[Display(Name = "Pine", Description = "Pine")]
Green = 0x166138,
[EnumMember(Value = "Sky")]
Blue = 0x87CEEB
}
[Extensions, Flags]
public enum GenerationOptions : byte
{
None = 0,
ToString = 1,
Parse = 2,
HasFlag = 4
}
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.3.0 | 143 | 10/20/2024 |
- Fixed NuGet package generation.
- Fixed several behaviour differences between the generated code and .NET counter part.
- Optimized HEX string generation for non-byte/sbyte backed enums.
- Fixed bugs and performance issues.
- Removed unnecessary generated code.