ardalis/SmartEnum

Add source generator

Aberta

#259 aberto em 18 de abr. de 2022

 (7 comentários) (5 reações) (0 responsável)C# (185 forks)github user discovery
enhancementgood first issuehelp wanted

Métricas do repositório

Stars
 (2.420 estrelas)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

This could be improved further with source generators:

Allowing you to just decorate a partial class like so:

using Ardalis.SmartEnum;

[SmartEnum]
public sealed partial class TestEnum
{
    [EnumMember]
    public static readonly TestEnum One;

    [EnumMember]
    public static readonly TestEnum Two;

    [EnumMember]
    public static readonly TestEnum Three;
}

Generated code:

using Ardalis.SmartEnum;

sealed partial class TestEnum : SmartEnum<TestEnum>
{
    private TestEnum(string name, int value) : base(name, value)
    {
        One = new TestEnum(nameof(One), 1);
        Two = new TestEnum(nameof(Two), 2);
        Three = new TestEnum(nameof(Three), 3);
    }
}

Guia do colaborador