Flaggen 1.1.0
dotnet add package Flaggen --version 1.1.0
NuGet\Install-Package Flaggen -Version 1.1.0
<PackageReference Include="Flaggen" Version="1.1.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="Flaggen" Version="1.1.0" />
<PackageReference Include="Flaggen"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add Flaggen --version 1.1.0
#r "nuget: Flaggen, 1.1.0"
#:package Flaggen@1.1.0
#addin nuget:?package=Flaggen&version=1.1.0
#tool nuget:?package=Flaggen&version=1.1.0
Flaggen
A C# source generator that generates extension methods for flags enums.
Usage
Install the package:
dotnet add package Flaggen
Suppose we have this enum:
using System;
[Flags]
public enum LovelyColors {
RoseGold = 1 << 0,
SeaGreen = 1 << 1,
SunshineYellow = 1 << 2,
BrightRed = 1 << 3,
}
The source generator will notice the [Flags]
attribute and generate extension methods
for this enum:
// initalize with some value
var myColors = LovelyColors.RoseGold | LovelyColors.SeaGreen;
// manipulate the flags
myColors.Add(LovelyColors.BrightRed);
myColors.Remove(LovelyColors.RoseGold);
myColors.Toggle(LovelyColors.SeaGreen);
// check for flags
if (myColors.Has(LovelyColors.SunshineYellow))
Console.WriteLine("So shiny!");
All the extension methods using bitwise operators (so no reflection!), which makes them pretty fast (I will not prove this, but you get my trust-me-bro™️ guarantee).
License
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.CodeAnalysis.CSharp (>= 4.13.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
# 1.1.0
- Made extension functions non-pure for a cleaner API
# 1.0.1
- Fix source link
# 1.0.0
- Initial release
- Generates extension methods for adding, removing, toggling and checking flags for enums