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                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FastEnum.Extensions.Generator" Version="1.3.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FastEnum.Extensions.Generator --version 1.3.0                
#r "nuget: FastEnum.Extensions.Generator, 1.3.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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                

Build & Test

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
}
There are no supported framework assets in this package.

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 147 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.