From d6f096d87f3ddbb691eb0ed24832e28e2c3d7bb6 Mon Sep 17 00:00:00 2001 From: Ian Qvist Date: Sat, 15 Jun 2024 23:37:34 +0200 Subject: [PATCH] Rename to FastEnum --- .editorconfig | 106 +++++++++ .github/FUNDING.yml | 2 +- .github/ISSUE_TEMPLATE/bug_report.md | 4 - .github/workflows/generic-build.yml | 10 +- .github/workflows/nuget-release.yml | 10 +- .gitignore | 5 +- .globalconfig | 216 ++++++++++++++++++ EnumSourceGen.sln => FastEnum.sln | 10 +- Imports/Benchmarks.props | 1 + Imports/Readme.md | 33 --- Imports/Tests.props | 1 - LICENSE.txt | 2 +- Locals/Directory.Packages.props | 2 +- README.md | 26 +-- Src/Directory.Build.props | 2 +- Src/Directory.Packages.Analyzers.props | 15 +- Src/Directory.Packages.props | 12 +- .../EnumSourceGen.Examples.csproj | 13 -- Src/EnumSourceGen/Properties/AssemblyInfo.cs | 4 - .../Benchmarks/EnumLengthBenchmark.cs | 4 +- .../Benchmarks/FlagBenchmarks.cs | 4 +- .../Benchmarks/GetNamesBenchmark.cs | 4 +- .../Benchmarks/GetUnderlyingValueBenchmark.cs | 4 +- .../Benchmarks/GetValuesBenchmark.cs | 4 +- .../Benchmarks/IsDefinedBenchmark.cs | 4 +- .../Benchmarks/ToStringBenchmark.cs | 4 +- .../Benchmarks/TryParseBenchmark.cs | 6 +- .../Code/EnumHelper.cs | 2 +- .../Code/TestEnum.cs | 4 +- .../Code/TestFlagsEnum.cs | 4 +- .../FastEnum.Benchmarks.csproj} | 4 +- .../Program.cs | 0 .../FastEnum.Examples.csproj | 13 ++ .../Program.cs | 16 +- .../Utilities.cs | 2 +- .../BugTests.cs | 8 +- .../Code/TestHelper.cs | 4 +- .../CodeGenTests.cs | 8 +- .../DebugTests.cs | 6 +- .../FastEnum.Tests.CodeGen.csproj} | 4 +- .../Resources/DifferentNamespace.input | 4 +- .../Resources/DifferentNamespace.output | 0 .../Resources/DifferentUnderlyingType.input | 4 +- .../Resources/DifferentUnderlyingType.output | 0 .../Resources/DisableEnumsWrapper.input | 2 +- .../Resources/DisableEnumsWrapper.output | 0 .../Resources/DisplayName.input | 2 +- .../Resources/DisplayName.output | 0 .../Resources/DuplicateValues.input | 2 +- .../Resources/DuplicateValues.output | 0 .../Resources/EnumClassName.input | 2 +- .../Resources/EnumClassName.output | 0 .../Resources/EnumClassNamespace.input | 2 +- .../Resources/EnumClassNamespace.output | 0 .../Resources/EnumNameOverride.input | 2 +- .../Resources/EnumNameOverride.output | 0 .../Resources/EnumTransform.input | 8 +- .../Resources/EnumTransform.output | 0 .../Resources/ExtensionClassName.input | 2 +- .../Resources/ExtensionClassName.output | 0 .../Resources/ExtensionClassNamespace.input | 2 +- .../Resources/ExtensionClassNamespace.output | 0 .../Resources/Flags.input | 2 +- .../Resources/Flags.output | 0 .../Resources/GlobalNamespaceEnum.input | 2 +- .../Resources/GlobalNamespaceEnum.output | 0 .../Resources/InternalEnum.input | 2 +- .../Resources/InternalEnum.output | 0 .../Resources/NestedType.input | 2 +- .../Resources/NestedType.output | 0 .../Resources/OmitValue.input | 2 +- .../Resources/OmitValue.output | 0 .../Resources/ValueExplicit.input | 2 +- .../Resources/ValueExplicit.output | 0 .../Resources/ValueMultiple.input | 2 +- .../Resources/ValueMultiple.output | 0 .../Resources/ValueSingle.input | 2 +- .../Resources/ValueSingle.output | 0 .../Resources/_Header.dat | 2 +- .../TransformHelperTests.cs | 4 +- .../Code/Enums.cs | 14 +- .../EnumClassTests.cs | 4 +- .../EnumExtensionsTest.cs | 4 +- .../EnumTransformTests.cs | 4 +- .../FastEnum.Tests.Functionality.csproj} | 4 +- .../Data/DisplayData.cs | 5 +- .../Data/EnumOmitValueData.cs | 2 +- .../Data/EnumTransformData.cs | 5 +- .../Data/EnumTransformValueData.cs | 5 +- .../Data/FastEnumData.cs} | 11 +- .../EnumGenerator.cs | 45 ++-- .../EnumOmitExclude.cs | 2 +- .../EnumOmitValueAttribute.cs | 4 +- Src/{EnumSourceGen => FastEnum}/EnumOrder.cs | 2 +- .../EnumTransform.cs | 2 +- .../EnumTransformAttribute.cs | 4 +- .../EnumTransformValueAttribute.cs | 4 +- .../Extensions/StringExtensions.cs | 2 +- .../FastEnum.csproj} | 0 .../FastEnumAttribute.cs} | 6 +- .../Generators/EnumClassCode.cs | 10 +- .../Generators/EnumExtensionCode.cs | 12 +- .../Generators/EnumFormatCode.cs | 9 +- .../Helpers/CodeGenHelper.cs | 2 +- .../Helpers/TransformHelper.cs | 6 +- .../Helpers/TypeHelper.cs | 2 +- .../Polyfills/IsExternalInit.cs | 0 Src/FastEnum/Properties/AssemblyInfo.cs | 4 + .../Spec/EnumMemberSpec.cs | 7 +- .../Spec/EnumSpec.cs | 16 +- 110 files changed, 558 insertions(+), 276 deletions(-) create mode 100644 .editorconfig create mode 100644 .globalconfig rename EnumSourceGen.sln => FastEnum.sln (90%) delete mode 100644 Imports/Readme.md delete mode 100644 Src/EnumSourceGen.Examples/EnumSourceGen.Examples.csproj delete mode 100644 Src/EnumSourceGen/Properties/AssemblyInfo.cs rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/EnumLengthBenchmark.cs (79%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/FlagBenchmarks.cs (83%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/GetNamesBenchmark.cs (80%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/GetUnderlyingValueBenchmark.cs (82%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/GetValuesBenchmark.cs (80%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/IsDefinedBenchmark.cs (89%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/ToStringBenchmark.cs (88%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Benchmarks/TryParseBenchmark.cs (87%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Code/EnumHelper.cs (97%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Code/TestEnum.cs (67%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Code/TestFlagsEnum.cs (53%) rename Src/{EnumSourceGen.Benchmarks/EnumSourceGen.Benchmarks.csproj => FastEnum.Benchmarks/FastEnum.Benchmarks.csproj} (61%) rename Src/{EnumSourceGen.Benchmarks => FastEnum.Benchmarks}/Program.cs (100%) create mode 100644 Src/FastEnum.Examples/FastEnum.Examples.csproj rename Src/{EnumSourceGen.Examples => FastEnum.Examples}/Program.cs (94%) rename Src/{EnumSourceGen.Examples => FastEnum.Examples}/Utilities.cs (92%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/BugTests.cs (83%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Code/TestHelper.cs (95%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/CodeGenTests.cs (82%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/DebugTests.cs (80%) rename Src/{EnumSourceGen.Tests.Functionality/EnumSourceGen.Tests.Functionality.csproj => FastEnum.Tests.CodeGen/FastEnum.Tests.CodeGen.csproj} (66%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DifferentNamespace.input (86%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DifferentNamespace.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DifferentUnderlyingType.input (88%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DifferentUnderlyingType.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DisableEnumsWrapper.input (56%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DisableEnumsWrapper.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DisplayName.input (94%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DisplayName.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DuplicateValues.input (93%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/DuplicateValues.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumClassName.input (73%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumClassName.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumClassNamespace.input (69%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumClassNamespace.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumNameOverride.input (71%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumNameOverride.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumTransform.input (85%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/EnumTransform.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ExtensionClassName.input (70%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ExtensionClassName.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ExtensionClassNamespace.input (68%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ExtensionClassNamespace.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/Flags.input (91%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/Flags.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/GlobalNamespaceEnum.input (85%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/GlobalNamespaceEnum.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/InternalEnum.input (94%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/InternalEnum.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/NestedType.input (92%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/NestedType.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/OmitValue.input (92%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/OmitValue.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ValueExplicit.input (92%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ValueExplicit.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ValueMultiple.input (89%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ValueMultiple.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ValueSingle.input (87%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/ValueSingle.output (100%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/Resources/_Header.dat (68%) rename Src/{EnumSourceGen.Tests.CodeGen => FastEnum.Tests.CodeGen}/TransformHelperTests.cs (93%) rename Src/{EnumSourceGen.Tests.Functionality => FastEnum.Tests.Functionality}/Code/Enums.cs (79%) rename Src/{EnumSourceGen.Tests.Functionality => FastEnum.Tests.Functionality}/EnumClassTests.cs (97%) rename Src/{EnumSourceGen.Tests.Functionality => FastEnum.Tests.Functionality}/EnumExtensionsTest.cs (95%) rename Src/{EnumSourceGen.Tests.Functionality => FastEnum.Tests.Functionality}/EnumTransformTests.cs (70%) rename Src/{EnumSourceGen.Tests.CodeGen/EnumSourceGen.Tests.CodeGen.csproj => FastEnum.Tests.Functionality/FastEnum.Tests.Functionality.csproj} (66%) rename Src/{EnumSourceGen => FastEnum}/Data/DisplayData.cs (86%) rename Src/{EnumSourceGen => FastEnum}/Data/EnumOmitValueData.cs (92%) rename Src/{EnumSourceGen => FastEnum}/Data/EnumTransformData.cs (93%) rename Src/{EnumSourceGen => FastEnum}/Data/EnumTransformValueData.cs (83%) rename Src/{EnumSourceGen/Data/EnumSourceGenData.cs => FastEnum/Data/FastEnumData.cs} (85%) rename Src/{EnumSourceGen => FastEnum}/EnumGenerator.cs (84%) rename Src/{EnumSourceGen => FastEnum}/EnumOmitExclude.cs (93%) rename Src/{EnumSourceGen => FastEnum}/EnumOmitValueAttribute.cs (67%) rename Src/{EnumSourceGen => FastEnum}/EnumOrder.cs (65%) rename Src/{EnumSourceGen => FastEnum}/EnumTransform.cs (67%) rename Src/{EnumSourceGen => FastEnum}/EnumTransformAttribute.cs (89%) rename Src/{EnumSourceGen => FastEnum}/EnumTransformValueAttribute.cs (74%) rename Src/{EnumSourceGen => FastEnum}/Extensions/StringExtensions.cs (92%) rename Src/{EnumSourceGen/EnumSourceGen.csproj => FastEnum/FastEnum.csproj} (100%) rename Src/{EnumSourceGen/EnumSourceGenAttribute.cs => FastEnum/FastEnumAttribute.cs} (90%) rename Src/{EnumSourceGen => FastEnum}/Generators/EnumClassCode.cs (98%) rename Src/{EnumSourceGen => FastEnum}/Generators/EnumExtensionCode.cs (97%) rename Src/{EnumSourceGen => FastEnum}/Generators/EnumFormatCode.cs (65%) rename Src/{EnumSourceGen => FastEnum}/Helpers/CodeGenHelper.cs (73%) rename Src/{EnumSourceGen => FastEnum}/Helpers/TransformHelper.cs (96%) rename Src/{EnumSourceGen => FastEnum}/Helpers/TypeHelper.cs (95%) rename Src/{EnumSourceGen => FastEnum}/Polyfills/IsExternalInit.cs (100%) create mode 100644 Src/FastEnum/Properties/AssemblyInfo.cs rename Src/{EnumSourceGen => FastEnum}/Spec/EnumMemberSpec.cs (92%) rename Src/{EnumSourceGen => FastEnum}/Spec/EnumSpec.cs (88%) diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..a6e8200 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,106 @@ +root = true + +[*] +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false +max_line_length = 180 + +# XML based formats +[*.{appxmanifest,axml,build,config,csproj,dbml,discomap,dtd,jsproj,lsproj,njsproj,nuspec,proj,props,resw,resx,StyleCop,targets,tasks,vbproj,xml,xsd}] +indent_style = space +indent_size = 2 +tab_width = 2 +ij_xml_space_inside_empty_tag = true +ij_xml_keep_blank_lines = 1 + +# JSON based formats +[*.{json,resjson}] +indent_style = space +indent_size = 2 +tab_width = 2 + +# Web languages +[*.{css,htm,html,js}] +indent_style = space +indent_size = 2 +tab_width = 2 + +# Programming languages +[*.{asax,ascx,aspx,axaml,cs,cshtml}] +indent_style = space +indent_size = 4 +tab_width = 4 + +# Analyzer settings +roslynator_accessibility_modifiers = explicit +roslynator_enum_has_flag_style = method +roslynator_object_creation_type_style = explicit +roslynator_use_var_instead_of_implicit_object_creation = false +csharp_style_namespace_declarations = file_scoped:error +dotnet_public_api_analyzer.require_api_files = true # Disable the requirement for projects to have a PublicAPI.Shipped.txt file + +# Csharp styles +csharp_new_line_before_members_in_object_initializers = false +csharp_preferred_modifier_order = public, private, protected, internal, new, sealed, static, unsafe, override, extern, async, virtual, abstract, volatile, readonly:suggestion +csharp_preserve_single_line_blocks = true +csharp_space_after_cast = false +csharp_style_var_elsewhere = false:none +csharp_style_var_when_type_is_apparent = false:none + +# ReSharper properties +resharper_align_multiline_calls_chain = true +resharper_arguments_skip_single = true +resharper_blank_lines_after_block_statements = 0 +resharper_blank_lines_after_start_comment = 0 +resharper_blank_lines_around_auto_property = 1 +resharper_blank_lines_around_property = 1 +resharper_blank_lines_around_single_line_type = 0 +resharper_braces_for_fixed = required_for_multiline +resharper_braces_for_for = required_for_multiline +resharper_braces_for_foreach = required_for_multiline +resharper_braces_for_ifelse = required_for_multiline +resharper_braces_for_lock = required_for_multiline +resharper_braces_for_using = required_for_multiline +resharper_braces_for_while = required_for_multiline +resharper_csharp_blank_lines_around_field = 0 +resharper_csharp_blank_lines_around_invocable = 1 +resharper_csharp_empty_block_style = together_same_line +resharper_csharp_keep_blank_lines_in_code = 1 +resharper_csharp_keep_blank_lines_in_declarations = 1 +resharper_csharp_max_line_length = 2081 +resharper_csharp_space_before_trailing_comment = true +resharper_csharp_wrap_lines = false +resharper_csharp_wrap_parameters_style = chop_if_long +resharper_indent_preprocessor_other = do_not_change +resharper_instance_members_qualify_declared_in = this_class +resharper_keep_existing_attribute_arrangement = true +resharper_keep_existing_enum_arrangement = false +resharper_local_function_body = expression_body +resharper_method_or_operator_body = expression_body +resharper_nested_ternary_style = compact +resharper_object_creation_when_type_evident = explicitly_typed +resharper_place_accessorholder_attribute_on_same_line = false +resharper_place_accessor_attribute_on_same_line = true +resharper_place_expr_accessor_on_single_line = true +resharper_place_expr_method_on_single_line = true +resharper_place_expr_property_on_single_line = true +resharper_place_field_attribute_on_same_line = false +resharper_place_simple_embedded_statement_on_same_line = false +resharper_place_simple_initializer_on_single_line = true +resharper_remove_blank_lines_near_braces_in_code = true +resharper_remove_blank_lines_near_braces_in_declarations = true +resharper_space_after_attributes = false +resharper_space_between_attribute_sections = false +resharper_space_within_empty_braces = false +resharper_space_within_single_line_array_initializer_braces = true +resharper_wrap_object_and_collection_initializer_style = chop_always +resharper_space_before_trailing_comment = true +resharper_xmldoc_indent_text = ZeroIndent +resharper_xmldoc_max_line_length = 300 +resharper_xmldoc_attribute_indent = align_by_first_attribute +resharper_xmldoc_keep_user_linebreaks = true +resharper_parentheses_non_obvious_operations = none, multiplicative, additive, arithmetic, shift, bitwise_and, bitwise_exclusive_or, bitwise_inclusive_or, bitwise + +# Microsoft .NET properties +csharp_style_var_for_built_in_types = false:suggestion \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 33b3fa0..28dcbe5 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -github: [Genbox] +github: [ Genbox ] custom: http://paypal.me/IanQvist diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e9920e8..508734d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -7,10 +7,6 @@ assignees: '' --- -* [ ] I hereby verify that I am a sponsor. - -Sponsorship is required before you can submit bug reports. See https://github.com/sponsors/Genbox - **Describe the bug** What is the bug about? diff --git a/.github/workflows/generic-build.yml b/.github/workflows/generic-build.yml index b456299..eb478c4 100644 --- a/.github/workflows/generic-build.yml +++ b/.github/workflows/generic-build.yml @@ -19,10 +19,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Setup .NET Core 7.0 - uses: actions/setup-dotnet@v3 + - uses: actions/checkout@v4.1.1 + - name: Setup .NET Core 8.0 + uses: actions/setup-dotnet@v4.0.0 with: - dotnet-version: '7.0.x' + dotnet-version: '8.0.x' - name: Build - run: dotnet build -c Release EnumSourceGen.sln \ No newline at end of file + run: dotnet build -c Release FastEnum.sln \ No newline at end of file diff --git a/.github/workflows/nuget-release.yml b/.github/workflows/nuget-release.yml index 96f3f65..5e59ad2 100644 --- a/.github/workflows/nuget-release.yml +++ b/.github/workflows/nuget-release.yml @@ -17,12 +17,12 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - name: Setup .NET Core 7.0 - uses: actions/setup-dotnet@v3 + - uses: actions/checkout@v4.1.1 + - name: Setup .NET Core 8.0 + uses: actions/setup-dotnet@v4.0.0 with: - dotnet-version: '7.0.x' + dotnet-version: '8.0.x' - name: Pack release - run: dotnet pack -c Release -o tmp EnumSourceGen.sln + run: dotnet pack -c Release -o tmp FastEnum.sln - name: Upload to nuget run: dotnet nuget push --skip-duplicate -k ${{secrets.NUGET_KEY}} -s https://api.nuget.org/v3/index.json tmp/* \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7db6daa..9052873 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,7 @@ # Rider cache folder .idea/ -*.sln.DotSettings.user \ No newline at end of file +*.sln.DotSettings.user + +# Benchmark.Net artifact folder +*BenchmarkDotNet.Artifacts/ \ No newline at end of file diff --git a/.globalconfig b/.globalconfig new file mode 100644 index 0000000..4cd0453 --- /dev/null +++ b/.globalconfig @@ -0,0 +1,216 @@ +is_global = true + +# Analyzer rules +dotnet_diagnostic.async001.severity = error +dotnet_diagnostic.async002.severity = error +dotnet_diagnostic.ca1001.severity = warning +dotnet_diagnostic.ca1009.severity = warning +dotnet_diagnostic.ca1012.severity = error +dotnet_diagnostic.ca1016.severity = warning +dotnet_diagnostic.ca1018.severity = error +dotnet_diagnostic.ca1027.severity = error +dotnet_diagnostic.ca1028.severity = none +dotnet_diagnostic.ca1031.severity = none +dotnet_diagnostic.ca1033.severity = warning +dotnet_diagnostic.ca1040.severity = suggestion +dotnet_diagnostic.ca1041.severity = error +dotnet_diagnostic.ca1049.severity = warning +dotnet_diagnostic.ca1054.severity = none +dotnet_diagnostic.ca1056.severity = none +dotnet_diagnostic.ca1060.severity = warning +dotnet_diagnostic.ca1061.severity = warning +dotnet_diagnostic.ca1062.severity = none +dotnet_diagnostic.ca1063.severity = warning +dotnet_diagnostic.ca1065.severity = warning +dotnet_diagnostic.ca1301.severity = warning +dotnet_diagnostic.ca1303.severity = none +dotnet_diagnostic.ca1308.severity = none +dotnet_diagnostic.ca1400.severity = warning +dotnet_diagnostic.ca1401.severity = warning +dotnet_diagnostic.ca1403.severity = warning +dotnet_diagnostic.ca1404.severity = warning +dotnet_diagnostic.ca1405.severity = warning +dotnet_diagnostic.ca1410.severity = warning +dotnet_diagnostic.ca1415.severity = warning +dotnet_diagnostic.ca1507.severity = error +dotnet_diagnostic.ca1707.severity = none +dotnet_diagnostic.ca1712.severity = suggestion +dotnet_diagnostic.ca1716.severity = none +dotnet_diagnostic.ca1720.severity = none +dotnet_diagnostic.ca1724.severity = none +dotnet_diagnostic.ca1813.severity = error +dotnet_diagnostic.ca1816.severity = error +dotnet_diagnostic.ca1819.severity = none +dotnet_diagnostic.ca1821.severity = none +dotnet_diagnostic.ca1825.severity = error +dotnet_diagnostic.ca1900.severity = warning +dotnet_diagnostic.ca1901.severity = warning +dotnet_diagnostic.ca2002.severity = warning +dotnet_diagnostic.ca2007.severity = none +dotnet_diagnostic.ca2009.severity = error +dotnet_diagnostic.ca2100.severity = warning +dotnet_diagnostic.ca2101.severity = warning +dotnet_diagnostic.ca2108.severity = warning +dotnet_diagnostic.ca2111.severity = warning +dotnet_diagnostic.ca2112.severity = warning +dotnet_diagnostic.ca2114.severity = warning +dotnet_diagnostic.ca2116.severity = warning +dotnet_diagnostic.ca2117.severity = warning +dotnet_diagnostic.ca2122.severity = warning +dotnet_diagnostic.ca2123.severity = warning +dotnet_diagnostic.ca2124.severity = warning +dotnet_diagnostic.ca2126.severity = warning +dotnet_diagnostic.ca2131.severity = warning +dotnet_diagnostic.ca2132.severity = warning +dotnet_diagnostic.ca2133.severity = warning +dotnet_diagnostic.ca2134.severity = warning +dotnet_diagnostic.ca2137.severity = warning +dotnet_diagnostic.ca2138.severity = warning +dotnet_diagnostic.ca2140.severity = warning +dotnet_diagnostic.ca2141.severity = warning +dotnet_diagnostic.ca2146.severity = warning +dotnet_diagnostic.ca2147.severity = warning +dotnet_diagnostic.ca2149.severity = warning +dotnet_diagnostic.ca2200.severity = error +dotnet_diagnostic.ca2202.severity = warning +dotnet_diagnostic.ca2207.severity = warning +dotnet_diagnostic.ca2212.severity = warning +dotnet_diagnostic.ca2213.severity = none +dotnet_diagnostic.ca2214.severity = warning +dotnet_diagnostic.ca2216.severity = warning +dotnet_diagnostic.ca2220.severity = warning +dotnet_diagnostic.ca2229.severity = warning +dotnet_diagnostic.ca2231.severity = warning +dotnet_diagnostic.ca2232.severity = warning +dotnet_diagnostic.ca2235.severity = warning +dotnet_diagnostic.ca2236.severity = warning +dotnet_diagnostic.ca2237.severity = warning +dotnet_diagnostic.ca2238.severity = warning +dotnet_diagnostic.ca2240.severity = warning +dotnet_diagnostic.ca2241.severity = warning +dotnet_diagnostic.ca2242.severity = warning +dotnet_diagnostic.cac001.severity = none +dotnet_diagnostic.cac002.severity = none +dotnet_diagnostic.cs0108.severity = error +dotnet_diagnostic.cs0109.severity = error +dotnet_diagnostic.cs0114.severity = error +dotnet_diagnostic.cs0162.severity = error +dotnet_diagnostic.cs0168.severity = error +dotnet_diagnostic.cs0251.severity = error +dotnet_diagnostic.cs0659.severity = error +dotnet_diagnostic.cs0660.severity = error +dotnet_diagnostic.cs1591.severity = none +dotnet_diagnostic.cs1717.severity = error +dotnet_diagnostic.cs1718.severity = error +dotnet_diagnostic.cs8600.severity = error +dotnet_diagnostic.cs8601.severity = error +dotnet_diagnostic.cs8602.severity = error +dotnet_diagnostic.cs8603.severity = error +dotnet_diagnostic.cs8604.severity = error +dotnet_diagnostic.cs8608.severity = error +dotnet_diagnostic.cs8609.severity = error +dotnet_diagnostic.cs8610.severity = error +dotnet_diagnostic.cs8611.severity = error +dotnet_diagnostic.cs8612.severity = error +dotnet_diagnostic.cs8613.severity = error +dotnet_diagnostic.cs8614.severity = error +dotnet_diagnostic.cs8615.severity = error +dotnet_diagnostic.cs8616.severity = error +dotnet_diagnostic.cs8617.severity = error +dotnet_diagnostic.cs8619.severity = error +dotnet_diagnostic.cs8620.severity = error +dotnet_diagnostic.cs8625.severity = error +dotnet_diagnostic.cs8629.severity = error +dotnet_diagnostic.cs8767.severity = error +dotnet_diagnostic.de0001.severity = error +dotnet_diagnostic.de0002.severity = error +dotnet_diagnostic.de0003.severity = error +dotnet_diagnostic.de0004.severity = error +dotnet_diagnostic.de0005.severity = warning +dotnet_diagnostic.de0006.severity = error +dotnet_diagnostic.de0007.severity = error +dotnet_diagnostic.de0008.severity = error +dotnet_diagnostic.de0009.severity = error +dotnet_diagnostic.idisp013.severity = error +dotnet_diagnostic.idisp014.severity = none +dotnet_diagnostic.lindhartanalysermissingawaitwarning.severity = error +dotnet_diagnostic.pc001.severity = none +dotnet_diagnostic.pc002.severity = suggestion +dotnet_diagnostic.pc003.severity = none +dotnet_diagnostic.rcs1015.severity = warning +dotnet_diagnostic.rcs1025.severity = error +dotnet_diagnostic.rcs1042.severity = error +dotnet_diagnostic.rcs1043.severity = suggestion +dotnet_diagnostic.rcs1044.severity = error +dotnet_diagnostic.rcs1046.severity = suggestion +dotnet_diagnostic.rcs1047.severity = error +dotnet_diagnostic.rcs1052.severity = error +dotnet_diagnostic.rcs1062.severity = error +dotnet_diagnostic.rcs1066.severity = error +dotnet_diagnostic.rcs1075.severity = none +dotnet_diagnostic.rcs1079.severity = error +dotnet_diagnostic.rcs1080.severity = warning +dotnet_diagnostic.rcs1093.severity = warning +dotnet_diagnostic.rcs1096.severity = none +dotnet_diagnostic.rcs1097.severity = error +dotnet_diagnostic.rcs1102.severity = none +dotnet_diagnostic.rcs1105.severity = error +dotnet_diagnostic.rcs1106.severity = error +dotnet_diagnostic.rcs1107.severity = error +dotnet_diagnostic.rcs1124.severity = none +dotnet_diagnostic.rcs1124fadeout.severity = none +dotnet_diagnostic.rcs1130.severity = error +dotnet_diagnostic.rcs1141.severity = none +dotnet_diagnostic.rcs1155.severity = error +dotnet_diagnostic.rcs1161.severity = none +dotnet_diagnostic.rcs1163.severity = none +dotnet_diagnostic.rcs1174.severity = none +dotnet_diagnostic.rcs1229.severity = error +dotnet_diagnostic.rcs1194.severity = none +dotnet_diagnostic.rcs1203.severity = error +dotnet_diagnostic.rcs1210.severity = error +dotnet_diagnostic.rcs1214.severity = warning +dotnet_diagnostic.rcs1215.severity = error +dotnet_diagnostic.s1128.severity = none +dotnet_diagnostic.s3925.severity = none +dotnet_diagnostic.serilog001.severity = error +dotnet_diagnostic.cs8632.severity = error +dotnet_diagnostic.refl026.severity = error +dotnet_diagnostic.rcs1123.severity = none +dotnet_diagnostic.ss019.severity = none # Switches must have a default label +dotnet_diagnostic.ss036.severity = none # An enum should explicitly specify its values. +dotnet_diagnostic.ma0097.severity = none # A class that implements IComparable or IComparable should override comparison operators +dotnet_diagnostic.ma0051.severity = none # Method is too long +dotnet_diagnostic.ma0006.severity = none # Use String.Equals instead of equality operator +dotnet_diagnostic.ma0012.severity = none # is reserved +dotnet_diagnostic.s112.severity = none # is reserved +dotnet_diagnostic.s2479.severity = none # Replace control character at with control character +dotnet_diagnostic.ca1848.severity = none # Use the LoggerMessage delegates +dotnet_diagnostic.ca1416.severity = none # Validate platform compatibility +dotnet_diagnostic.ma0049.severity = none # Type name should not match containing namespace +dotnet_diagnostic.ma0007.severity = none # Add a comma after the last value +dotnet_diagnostic.ss019.severity = none # Switch is missing a default label. Include this to provide fallback behaviour for any missing cases, including when the upstream API adds them later on. +dotnet_diagnostic.xunit1026.severity = none # Theory methods should use all of their parameters +dotnet_diagnostic.ca1032.severity = none # Implement constructors for exception +dotnet_diagnostic.hlq013.severity = none # Consider using foreach loop +dotnet_diagnostic.ca1019.severity = none # Define accessors for attribute arguments +dotnet_diagnostic.ca1055.severity = none # URI return values should not be strings +dotnet_diagnostic.ca5394.severity = none # Do not use insecure randomness +dotnet_diagnostic.ca1700.severity = none # Do not name enum values 'Reserved' +dotnet_diagnostic.scs0005.severity = none # Weak Random Number Generator +dotnet_diagnostic.s3267.severity = none # Loops should be simplified with "LINQ" expressions +dotnet_diagnostic.ca5351.severity = none # Do Not Use Broken Cryptographic Algorithms +dotnet_diagnostic.scs0006.severity = none # Weak hashing function +dotnet_diagnostic.ca1711.severity = none # Identifiers should not have incorrect suffix +dotnet_diagnostic.s2997.severity = error # "IDisposables" created in a "using" statement should not be returned +dotnet_diagnostic.s125.severity = none # Sections of code should not be commented out +dotnet_diagnostic.syslib1006.severity = none # Multiple logging methods are using event id -1 in class +dotnet_diagnostic.syslib1015.severity = error # Argument '' is not referenced from the logging message +dotnet_diagnostic.syslib1014.severity = none # Template 'key' is not provided as argument to the logging method (using CS0103 instead) +dotnet_diagnostic.ma0018.severity = none # Do not declare static members on generic types (deprecated; use CA1000 instead) +dotnet_diagnostic.rcs1058.severity = none # Use compound assignment +dotnet_diagnostic.s907.severity = none # "goto" statement should not be used + +# Broken +dotnet_diagnostic.S2589.severity = none # Boolean expressions should not be gratuitous +dotnet_diagnostic.S2583.severity = none # Conditionally executed code should be reachable \ No newline at end of file diff --git a/EnumSourceGen.sln b/FastEnum.sln similarity index 90% rename from EnumSourceGen.sln rename to FastEnum.sln index 0b71da2..be86a9a 100644 --- a/EnumSourceGen.sln +++ b/FastEnum.sln @@ -3,11 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.32112.339 MinimumVisualStudioVersion = 15.0.26124.0 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnumSourceGen", "Src\EnumSourceGen\EnumSourceGen.csproj", "{D47FDDF9-B47A-411C-B6A0-F59A6C9555F6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastEnum", "Src\FastEnum\FastEnum.csproj", "{D47FDDF9-B47A-411C-B6A0-F59A6C9555F6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnumSourceGen.Examples", "Src\EnumSourceGen.Examples\EnumSourceGen.Examples.csproj", "{276D1EB6-57A2-4808-AC3F-DCC14E996C30}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastEnum.Examples", "Src\FastEnum.Examples\FastEnum.Examples.csproj", "{276D1EB6-57A2-4808-AC3F-DCC14E996C30}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnumSourceGen.Tests.CodeGen", "Src\EnumSourceGen.Tests.CodeGen\EnumSourceGen.Tests.CodeGen.csproj", "{24047F09-FAE0-4920-BFDB-0D8D3064B403}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastEnum.Tests.CodeGen", "Src\FastEnum.Tests.CodeGen\FastEnum.Tests.CodeGen.csproj", "{24047F09-FAE0-4920-BFDB-0D8D3064B403}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Items", "_Items", "{EF1D19B3-97F1-4504-95AB-BE249F5BF29A}" ProjectSection(SolutionItems) = preProject @@ -17,7 +17,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Items", "_Items", "{EF1D19 README.md = README.md EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnumSourceGen.Benchmarks", "Src\EnumSourceGen.Benchmarks\EnumSourceGen.Benchmarks.csproj", "{58EFED35-F40A-48C6-9138-EACC2848B43D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastEnum.Benchmarks", "Src\FastEnum.Benchmarks\FastEnum.Benchmarks.csproj", "{58EFED35-F40A-48C6-9138-EACC2848B43D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Imports", "_Imports", "{C17720CD-1FBA-4181-A15D-5E361643B534}" EndProject @@ -66,7 +66,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Project", "Project", "{6A21 Imports\Tests.props = Imports\Tests.props EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnumSourceGen.Tests.Functionality", "Src\EnumSourceGen.Tests.Functionality\EnumSourceGen.Tests.Functionality.csproj", "{0AC60E27-303B-4777-8FF5-7B0C86B94E00}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastEnum.Tests.Functionality", "Src\FastEnum.Tests.Functionality\FastEnum.Tests.Functionality.csproj", "{0AC60E27-303B-4777-8FF5-7B0C86B94E00}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Imports/Benchmarks.props b/Imports/Benchmarks.props index e1d396a..6063af1 100644 --- a/Imports/Benchmarks.props +++ b/Imports/Benchmarks.props @@ -7,6 +7,7 @@ + diff --git a/Imports/Readme.md b/Imports/Readme.md deleted file mode 100644 index 3a9b5fe..0000000 --- a/Imports/Readme.md +++ /dev/null @@ -1,33 +0,0 @@ -## Locals - -Add a file to the locals folder named the same as the file you want to override. Locals as included after the base includes. - -Currently supports: - -* Directory.Build.props -* Directory.Build.targets -* Directory.Packages.props -* Directory.Packages.Analyzers.props -* Benchmarks.props -* Console.props -* Examples.props -* Library.props -* Tests.props - -## Switches - -#### IncludeBaseProject (default: true) - -When set to true, tests, examples and benchmarks include their base projects. The base project is determined by project name. -For example: - -* MyProject <- Base project -* MyProject.Tests <- Automatically references MyProject - -#### IncludeInternalsVisibleTo (default: true) - -When set to true, library projects will set InternalsVisibleTo as an assembly attribute, and automatically include benchmark and test projects. - -#### IncludeAnalyzers (default: true) - -When set to true, analyzers are installed in the different project types. It also disable the embedded .NET analyzers. \ No newline at end of file diff --git a/Imports/Tests.props b/Imports/Tests.props index 0bae1d4..5b9faf6 100644 --- a/Imports/Tests.props +++ b/Imports/Tests.props @@ -21,7 +21,6 @@ - diff --git a/LICENSE.txt b/LICENSE.txt index 006a5a8..89222c4 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 Ian Qvist +Copyright (c) 2024 Ian Qvist Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Locals/Directory.Packages.props b/Locals/Directory.Packages.props index 5f097fa..5d803cc 100644 --- a/Locals/Directory.Packages.props +++ b/Locals/Directory.Packages.props @@ -4,6 +4,6 @@ - + \ No newline at end of file diff --git a/README.md b/README.md index ad6853c..aa9b478 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# EnumSourceGen +# FastEnum -[![NuGet](https://img.shields.io/nuget/v/Genbox.EnumSourceGen.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/Genbox.EnumSourceGen/) -[![License](https://img.shields.io/github/license/Genbox/EnumSourceGen)](https://github.com/Genbox/EnumSourceGen/blob/master/LICENSE.txt) +[![NuGet](https://img.shields.io/nuget/v/Genbox.FastEnum.svg?style=flat-square&label=nuget)](https://www.nuget.org/packages/Genbox.FastEnum/) +[![License](https://img.shields.io/github/license/Genbox/FastEnum)](https://github.com/Genbox/FastEnum/blob/master/LICENSE.txt) ### Description @@ -27,10 +27,10 @@ Print values, parse, or get the underlying value of enums without using reflecti ### Examples -Lets create a very simple enum, and add the `[EnumSourceGen]` attribute to it. +Lets create a very simple enum, and add the `[FastEnum]` attribute to it. ```csharp -[EnumSourceGen] +[FastEnum] public enum Color { Red, @@ -97,7 +97,7 @@ Underlying values: If you add [DisplayAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.displayattribute?view=net-7.0) to an enum, the source generator will generate extra methods. For example, you can add [DisplayAttribute] to an enum value like this: ```csharp -[EnumSourceGen] +[FastEnum] internal enum MyEnum { [Display(Name = "Value1Name", Description = "Value1Description")] @@ -121,11 +121,11 @@ Description: Value1Description #### FlagsAttribute -If you have an enum with the [FlagsAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.flagsattribute?view=net-7.0), EnumSourceGen will add a method called `IsFlagSet()`. +If you have an enum with the [FlagsAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.flagsattribute?view=net-7.0), FastEnum will add a method called `IsFlagSet()`. ```csharp [Flags] -[EnumSourceGen] +[FastEnum] internal enum MyFlagsEnum { None = 0, @@ -147,7 +147,7 @@ Is Value2 set: False ### Options -`[EnumSourceGen]` have several options to control the behavior of the generated code. +`[FastEnum]` have several options to control the behavior of the generated code. #### ExtensionClassName @@ -216,7 +216,7 @@ The language uses the following modifier chars: Let's say you want to omit the first character in all values, uppercase the third character and lowercase the rest. ```csharp -[EnumSourceGen] +[FastEnum] [EnumTransform(CasePattern = "OOULLLLL")] public enum MyEnum { @@ -233,7 +233,7 @@ The pattern is matched as much as possible. A pattern of `U` will simply upperca It is possible to omit enum value both fully and partially. This is useful if you, let's say, want to use the enum values directly in a dropdown on a website, but don't want to include a value in the list. ```csharp -[EnumSourceGen] +[FastEnum] public enum Color { [EnumOmitValue] //Completely omitted @@ -278,7 +278,7 @@ Green #### Parse/TryParse methods -EnumSourceGen has some additional features compared to dotnet's `Enum.Parse()` and `Enum.TryParse()`: +FastEnum has some additional features compared to dotnet's `Enum.Parse()` and `Enum.TryParse()`: * Supports [StringComparison](https://learn.microsoft.com/en-us/dotnet/api/system.stringcomparison?view=net-7.0) (defaults to ordinal comparison) * Supports parsing `ValueOverride` when using `[EnumTransformValue]`. Also supports `DisplayName` and `Description` when using [DisplayAttribute](https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.displayattribute?view=net-7.0) @@ -294,7 +294,7 @@ and `Enums.MyEnum.IsDefined(MyEnum.Value1 | MyEnum.Value3)` both work. Here are benchmarks for calling different methods in dotnet vs. using CodeGen vs. using [Enums.net](https://github.com/TylerBrinkley/Enums.NET). Enums.net is a high-performance library for working with enum values. -The table below shows that Enums.net is between 2-80x faster than dotnet, but EnumSourceGen is 2-14x faster than Enums.net. +The table below shows that Enums.net is between 2-80x faster than dotnet, but FastEnum is 2-14x faster than Enums.net. | Method | Mean | Error | StdDev | Median | |-------------------------------|--------------:|-----------:|-----------:|--------------:| diff --git a/Src/Directory.Build.props b/Src/Directory.Build.props index a054ed1..7593b66 100644 --- a/Src/Directory.Build.props +++ b/Src/Directory.Build.props @@ -3,7 +3,7 @@ Ian Qvist - Copyright 2023, by Ian Qvist. All rights reserved. + Copyright 2024, by Ian Qvist. All rights reserved. diff --git a/Src/Directory.Packages.Analyzers.props b/Src/Directory.Packages.Analyzers.props index cea3fa9..ef8da9e 100644 --- a/Src/Directory.Packages.Analyzers.props +++ b/Src/Directory.Packages.Analyzers.props @@ -8,22 +8,21 @@ - + - - + + - + - + - + - - + \ No newline at end of file diff --git a/Src/Directory.Packages.props b/Src/Directory.Packages.props index e84a727..98c712f 100644 --- a/Src/Directory.Packages.props +++ b/Src/Directory.Packages.props @@ -5,14 +5,14 @@ - - + + - - - + + + - + \ No newline at end of file diff --git a/Src/EnumSourceGen.Examples/EnumSourceGen.Examples.csproj b/Src/EnumSourceGen.Examples/EnumSourceGen.Examples.csproj deleted file mode 100644 index 05d57ad..0000000 --- a/Src/EnumSourceGen.Examples/EnumSourceGen.Examples.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - net7.0 - - - - - - - - - diff --git a/Src/EnumSourceGen/Properties/AssemblyInfo.cs b/Src/EnumSourceGen/Properties/AssemblyInfo.cs deleted file mode 100644 index bbdea71..0000000 --- a/Src/EnumSourceGen/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("EnumSourceGen.Tests.CodeGen")] -[assembly: InternalsVisibleTo("Genbox.EnumSourceGen.Tests.CodeGen")] \ No newline at end of file diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/EnumLengthBenchmark.cs b/Src/FastEnum.Benchmarks/Benchmarks/EnumLengthBenchmark.cs similarity index 79% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/EnumLengthBenchmark.cs rename to Src/FastEnum.Benchmarks/Benchmarks/EnumLengthBenchmark.cs index 1ad1727..7a3e0f6 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/EnumLengthBenchmark.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/EnumLengthBenchmark.cs @@ -1,7 +1,7 @@ using BenchmarkDotNet.Attributes; -using Genbox.EnumSourceGen.Benchmarks.Code; +using Genbox.FastEnum.Benchmarks.Code; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("Length")] public class EnumLengthBenchmark diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/FlagBenchmarks.cs b/Src/FastEnum.Benchmarks/Benchmarks/FlagBenchmarks.cs similarity index 83% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/FlagBenchmarks.cs rename to Src/FastEnum.Benchmarks/Benchmarks/FlagBenchmarks.cs index 70ae423..2d8e65d 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/FlagBenchmarks.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/FlagBenchmarks.cs @@ -1,8 +1,8 @@ using BenchmarkDotNet.Attributes; using EnumsNET; -using Genbox.EnumSourceGen.Benchmarks.Code; +using Genbox.FastEnum.Benchmarks.Code; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("Flags")] public class FlagBenchmarks diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/GetNamesBenchmark.cs b/Src/FastEnum.Benchmarks/Benchmarks/GetNamesBenchmark.cs similarity index 80% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/GetNamesBenchmark.cs rename to Src/FastEnum.Benchmarks/Benchmarks/GetNamesBenchmark.cs index 7011bf2..a4f51e7 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/GetNamesBenchmark.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/GetNamesBenchmark.cs @@ -1,7 +1,7 @@ using BenchmarkDotNet.Attributes; -using Genbox.EnumSourceGen.Benchmarks.Code; +using Genbox.FastEnum.Benchmarks.Code; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("Names")] public class GetNamesBenchmark diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/GetUnderlyingValueBenchmark.cs b/Src/FastEnum.Benchmarks/Benchmarks/GetUnderlyingValueBenchmark.cs similarity index 82% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/GetUnderlyingValueBenchmark.cs rename to Src/FastEnum.Benchmarks/Benchmarks/GetUnderlyingValueBenchmark.cs index 8573f3d..790b1c8 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/GetUnderlyingValueBenchmark.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/GetUnderlyingValueBenchmark.cs @@ -1,7 +1,7 @@ using BenchmarkDotNet.Attributes; -using Genbox.EnumSourceGen.Benchmarks.Code; +using Genbox.FastEnum.Benchmarks.Code; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("Underlying values")] public class GetUnderlyingValueBenchmark diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/GetValuesBenchmark.cs b/Src/FastEnum.Benchmarks/Benchmarks/GetValuesBenchmark.cs similarity index 80% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/GetValuesBenchmark.cs rename to Src/FastEnum.Benchmarks/Benchmarks/GetValuesBenchmark.cs index e8c515f..659d959 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/GetValuesBenchmark.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/GetValuesBenchmark.cs @@ -1,7 +1,7 @@ using BenchmarkDotNet.Attributes; -using Genbox.EnumSourceGen.Benchmarks.Code; +using Genbox.FastEnum.Benchmarks.Code; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("Values")] public class GetValuesBenchmark diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/IsDefinedBenchmark.cs b/Src/FastEnum.Benchmarks/Benchmarks/IsDefinedBenchmark.cs similarity index 89% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/IsDefinedBenchmark.cs rename to Src/FastEnum.Benchmarks/Benchmarks/IsDefinedBenchmark.cs index da00732..1ce7f0a 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/IsDefinedBenchmark.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/IsDefinedBenchmark.cs @@ -1,7 +1,7 @@ using BenchmarkDotNet.Attributes; -using Genbox.EnumSourceGen.Benchmarks.Code; +using Genbox.FastEnum.Benchmarks.Code; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("IsDefined")] public class IsDefinedBenchmark diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/ToStringBenchmark.cs b/Src/FastEnum.Benchmarks/Benchmarks/ToStringBenchmark.cs similarity index 88% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/ToStringBenchmark.cs rename to Src/FastEnum.Benchmarks/Benchmarks/ToStringBenchmark.cs index 8cdae0e..9436d9e 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/ToStringBenchmark.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/ToStringBenchmark.cs @@ -1,8 +1,8 @@ using BenchmarkDotNet.Attributes; using EnumsNET; -using Genbox.EnumSourceGen.Benchmarks.Code; +using Genbox.FastEnum.Benchmarks.Code; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("ToString")] public class ToStringBenchmark diff --git a/Src/EnumSourceGen.Benchmarks/Benchmarks/TryParseBenchmark.cs b/Src/FastEnum.Benchmarks/Benchmarks/TryParseBenchmark.cs similarity index 87% rename from Src/EnumSourceGen.Benchmarks/Benchmarks/TryParseBenchmark.cs rename to Src/FastEnum.Benchmarks/Benchmarks/TryParseBenchmark.cs index 712bcc7..dc4d989 100644 --- a/Src/EnumSourceGen.Benchmarks/Benchmarks/TryParseBenchmark.cs +++ b/Src/FastEnum.Benchmarks/Benchmarks/TryParseBenchmark.cs @@ -1,9 +1,9 @@ using BenchmarkDotNet.Attributes; using EnumsNET; -using Genbox.EnumSourceGen.Benchmarks.Code; -using Enums = Genbox.EnumSourceGen.Benchmarks.Code.Enums; +using Genbox.FastEnum.Benchmarks.Code; +using Enums = Genbox.FastEnum.Benchmarks.Code.Enums; -namespace Genbox.EnumSourceGen.Benchmarks.Benchmarks; +namespace Genbox.FastEnum.Benchmarks.Benchmarks; [BenchmarkCategory("TryParse")] public class TryParseBenchmark diff --git a/Src/EnumSourceGen.Benchmarks/Code/EnumHelper.cs b/Src/FastEnum.Benchmarks/Code/EnumHelper.cs similarity index 97% rename from Src/EnumSourceGen.Benchmarks/Code/EnumHelper.cs rename to Src/FastEnum.Benchmarks/Code/EnumHelper.cs index 1ca2510..8a68b1a 100644 --- a/Src/EnumSourceGen.Benchmarks/Code/EnumHelper.cs +++ b/Src/FastEnum.Benchmarks/Code/EnumHelper.cs @@ -2,7 +2,7 @@ using System.Diagnostics.CodeAnalysis; using System.Reflection; -namespace Genbox.EnumSourceGen.Benchmarks.Code; +namespace Genbox.FastEnum.Benchmarks.Code; internal static class EnumHelper where T : struct { diff --git a/Src/EnumSourceGen.Benchmarks/Code/TestEnum.cs b/Src/FastEnum.Benchmarks/Code/TestEnum.cs similarity index 67% rename from Src/EnumSourceGen.Benchmarks/Code/TestEnum.cs rename to Src/FastEnum.Benchmarks/Code/TestEnum.cs index 64ed84e..61fb267 100644 --- a/Src/EnumSourceGen.Benchmarks/Code/TestEnum.cs +++ b/Src/FastEnum.Benchmarks/Code/TestEnum.cs @@ -1,8 +1,8 @@ using System.ComponentModel.DataAnnotations; -namespace Genbox.EnumSourceGen.Benchmarks.Code; +namespace Genbox.FastEnum.Benchmarks.Code; -[EnumSourceGen] +[FastEnum] public enum TestEnum { First, diff --git a/Src/EnumSourceGen.Benchmarks/Code/TestFlagsEnum.cs b/Src/FastEnum.Benchmarks/Code/TestFlagsEnum.cs similarity index 53% rename from Src/EnumSourceGen.Benchmarks/Code/TestFlagsEnum.cs rename to Src/FastEnum.Benchmarks/Code/TestFlagsEnum.cs index 6b96744..3ae4748 100644 --- a/Src/EnumSourceGen.Benchmarks/Code/TestFlagsEnum.cs +++ b/Src/FastEnum.Benchmarks/Code/TestFlagsEnum.cs @@ -1,7 +1,7 @@ -namespace Genbox.EnumSourceGen.Benchmarks.Code; +namespace Genbox.FastEnum.Benchmarks.Code; [Flags] -[EnumSourceGen] +[FastEnum] public enum TestFlagsEnum { None = 0, diff --git a/Src/EnumSourceGen.Benchmarks/EnumSourceGen.Benchmarks.csproj b/Src/FastEnum.Benchmarks/FastEnum.Benchmarks.csproj similarity index 61% rename from Src/EnumSourceGen.Benchmarks/EnumSourceGen.Benchmarks.csproj rename to Src/FastEnum.Benchmarks/FastEnum.Benchmarks.csproj index 8ded8f3..2e5b395 100644 --- a/Src/EnumSourceGen.Benchmarks/EnumSourceGen.Benchmarks.csproj +++ b/Src/FastEnum.Benchmarks/FastEnum.Benchmarks.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/Src/EnumSourceGen.Benchmarks/Program.cs b/Src/FastEnum.Benchmarks/Program.cs similarity index 100% rename from Src/EnumSourceGen.Benchmarks/Program.cs rename to Src/FastEnum.Benchmarks/Program.cs diff --git a/Src/FastEnum.Examples/FastEnum.Examples.csproj b/Src/FastEnum.Examples/FastEnum.Examples.csproj new file mode 100644 index 0000000..7416b2b --- /dev/null +++ b/Src/FastEnum.Examples/FastEnum.Examples.csproj @@ -0,0 +1,13 @@ + + + + net7.0 + + + + + + + + + diff --git a/Src/EnumSourceGen.Examples/Program.cs b/Src/FastEnum.Examples/Program.cs similarity index 94% rename from Src/EnumSourceGen.Examples/Program.cs rename to Src/FastEnum.Examples/Program.cs index fd5a05b..25e940b 100644 --- a/Src/EnumSourceGen.Examples/Program.cs +++ b/Src/FastEnum.Examples/Program.cs @@ -1,7 +1,7 @@ using System.ComponentModel.DataAnnotations; -using static Genbox.EnumSourceGen.Examples.Utilities; +using static Genbox.FastEnum.Examples.Utilities; -namespace Genbox.EnumSourceGen.Examples; +namespace Genbox.FastEnum.Examples; internal static class Program { @@ -74,7 +74,7 @@ private static void OmittingValues() } [Flags] - [EnumSourceGen] + [FastEnum] internal enum MyEnum { [Display(Name = "Value1Name", Description = "Value1Description")] @@ -82,7 +82,7 @@ internal enum MyEnum Value2 } - [EnumSourceGen] + [FastEnum] [EnumTransform(Preset = EnumTransform.UpperCase)] internal enum EnumWithPresetTransform { @@ -91,7 +91,7 @@ internal enum EnumWithPresetTransform myvalue, } - [EnumSourceGen] + [FastEnum] [EnumTransform(Regex = "/^Enum//")] //Replace "Enum" with nothing internal enum EnumWithRegexTransform { @@ -99,7 +99,7 @@ internal enum EnumWithRegexTransform EnumValue2, } - [EnumSourceGen] + [FastEnum] [EnumTransform(CasePattern = "U_U_U")] //Uppercase the first, third and fifth characters internal enum EnumWithCasePatternTransform { @@ -107,7 +107,7 @@ internal enum EnumWithCasePatternTransform Value2, } - [EnumSourceGen] + [FastEnum] internal enum EnumWithOmit { [Display(Name = "Value1Name", Description = "Value1Description")] @@ -120,7 +120,7 @@ internal enum EnumWithOmit NotOmittedInIsDefined } - [EnumSourceGen] + [FastEnum] internal enum MyEnum2 { [Display(Name = "Value1Name")] diff --git a/Src/EnumSourceGen.Examples/Utilities.cs b/Src/FastEnum.Examples/Utilities.cs similarity index 92% rename from Src/EnumSourceGen.Examples/Utilities.cs rename to Src/FastEnum.Examples/Utilities.cs index 538c7ae..dfc5b6a 100644 --- a/Src/EnumSourceGen.Examples/Utilities.cs +++ b/Src/FastEnum.Examples/Utilities.cs @@ -1,4 +1,4 @@ -namespace Genbox.EnumSourceGen.Examples; +namespace Genbox.FastEnum.Examples; /// /// Just a few utilities to help printing to the console diff --git a/Src/EnumSourceGen.Tests.CodeGen/BugTests.cs b/Src/FastEnum.Tests.CodeGen/BugTests.cs similarity index 83% rename from Src/EnumSourceGen.Tests.CodeGen/BugTests.cs rename to Src/FastEnum.Tests.CodeGen/BugTests.cs index 84cef7e..ecc9927 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/BugTests.cs +++ b/Src/FastEnum.Tests.CodeGen/BugTests.cs @@ -1,6 +1,6 @@ -using Genbox.EnumSourceGen.Tests.CodeGen.Code; +using Genbox.FastEnum.Tests.CodeGen.Code; -namespace Genbox.EnumSourceGen.Tests.CodeGen; +namespace Genbox.FastEnum.Tests.CodeGen; /// /// The tests in this class used to produce diagnostic errors. They should no longer do that, or it is a regression. @@ -11,7 +11,7 @@ public class BugTests public void TestUlongBug() { string code = """ -[EnumSourceGen] +[FastEnum] public enum TestEnum : ulong { None = 0, @@ -25,7 +25,7 @@ public enum TestEnum : ulong public void TestNegativeValueBug() { string code = """ -[EnumSourceGen] +[FastEnum] public enum TestEnum : long { None = 0, diff --git a/Src/EnumSourceGen.Tests.CodeGen/Code/TestHelper.cs b/Src/FastEnum.Tests.CodeGen/Code/TestHelper.cs similarity index 95% rename from Src/EnumSourceGen.Tests.CodeGen/Code/TestHelper.cs rename to Src/FastEnum.Tests.CodeGen/Code/TestHelper.cs index e8f7277..7a714a5 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Code/TestHelper.cs +++ b/Src/FastEnum.Tests.CodeGen/Code/TestHelper.cs @@ -5,7 +5,7 @@ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; -namespace Genbox.EnumSourceGen.Tests.CodeGen.Code; +namespace Genbox.FastEnum.Tests.CodeGen.Code; internal static class TestHelper { @@ -84,6 +84,6 @@ public static string ReadResource(string name) private static string GetHeader() { - return _headerCache ??= ReadResource("Genbox.EnumSourceGen.Tests.CodeGen.Resources._Header.dat"); + return _headerCache ??= ReadResource("Genbox.FastEnum.Tests.CodeGen.Resources._Header.dat"); } } \ No newline at end of file diff --git a/Src/EnumSourceGen.Tests.CodeGen/CodeGenTests.cs b/Src/FastEnum.Tests.CodeGen/CodeGenTests.cs similarity index 82% rename from Src/EnumSourceGen.Tests.CodeGen/CodeGenTests.cs rename to Src/FastEnum.Tests.CodeGen/CodeGenTests.cs index 1c03ba3..50cd539 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/CodeGenTests.cs +++ b/Src/FastEnum.Tests.CodeGen/CodeGenTests.cs @@ -1,8 +1,8 @@ using System.Reflection; -using Genbox.EnumSourceGen.Tests.CodeGen.Code; -using static Genbox.EnumSourceGen.Tests.CodeGen.Code.TestHelper; +using Genbox.FastEnum.Tests.CodeGen.Code; +using static Genbox.FastEnum.Tests.CodeGen.Code.TestHelper; -namespace Genbox.EnumSourceGen.Tests.CodeGen; +namespace Genbox.FastEnum.Tests.CodeGen; public class CodeGenTests { @@ -21,7 +21,7 @@ public void UpdateResources(string testName) string inputSource = ReadResource(testName); string actual = GetGeneratedOutput(inputSource).ReplaceLineEndings("\n"); - File.WriteAllText(@"..\..\..\Resources\" + Path.ChangeExtension(testName.Substring(45), ".output"), actual); + File.WriteAllText(@"..\..\..\Resources\" + Path.ChangeExtension(testName.Substring(40), ".output"), actual); } public static IEnumerable GetTests() diff --git a/Src/EnumSourceGen.Tests.CodeGen/DebugTests.cs b/Src/FastEnum.Tests.CodeGen/DebugTests.cs similarity index 80% rename from Src/EnumSourceGen.Tests.CodeGen/DebugTests.cs rename to Src/FastEnum.Tests.CodeGen/DebugTests.cs index 4a807d4..6d10a66 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/DebugTests.cs +++ b/Src/FastEnum.Tests.CodeGen/DebugTests.cs @@ -1,6 +1,6 @@ -using Genbox.EnumSourceGen.Tests.CodeGen.Code; +using Genbox.FastEnum.Tests.CodeGen.Code; -namespace Genbox.EnumSourceGen.Tests.CodeGen; +namespace Genbox.FastEnum.Tests.CodeGen; public class DebugTests { @@ -17,7 +17,7 @@ public void CodeGenDemo() string source = """ namespace Some.Namespace.Here2 { - [EnumSourceGen] + [FastEnum] public enum MyEnum { Value, diff --git a/Src/EnumSourceGen.Tests.Functionality/EnumSourceGen.Tests.Functionality.csproj b/Src/FastEnum.Tests.CodeGen/FastEnum.Tests.CodeGen.csproj similarity index 66% rename from Src/EnumSourceGen.Tests.Functionality/EnumSourceGen.Tests.Functionality.csproj rename to Src/FastEnum.Tests.CodeGen/FastEnum.Tests.CodeGen.csproj index 06fcda7..4bcc71b 100644 --- a/Src/EnumSourceGen.Tests.Functionality/EnumSourceGen.Tests.Functionality.csproj +++ b/Src/FastEnum.Tests.CodeGen/FastEnum.Tests.CodeGen.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentNamespace.input b/Src/FastEnum.Tests.CodeGen/Resources/DifferentNamespace.input similarity index 86% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentNamespace.input rename to Src/FastEnum.Tests.CodeGen/Resources/DifferentNamespace.input index 5e6ade8..a4fe26c 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentNamespace.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/DifferentNamespace.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here1 { - [EnumSourceGen] + [FastEnum] public enum MyEnum { Value @@ -11,7 +11,7 @@ namespace Some.Namespace.Here1 namespace Some.Namespace.Here2 { - [EnumSourceGen] + [FastEnum] public enum MyEnum { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentNamespace.output b/Src/FastEnum.Tests.CodeGen/Resources/DifferentNamespace.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentNamespace.output rename to Src/FastEnum.Tests.CodeGen/Resources/DifferentNamespace.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentUnderlyingType.input b/Src/FastEnum.Tests.CodeGen/Resources/DifferentUnderlyingType.input similarity index 88% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentUnderlyingType.input rename to Src/FastEnum.Tests.CodeGen/Resources/DifferentUnderlyingType.input index 0aaa0fe..cae011a 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentUnderlyingType.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/DifferentUnderlyingType.input @@ -2,14 +2,14 @@ namespace Some.Namespace.Here; -[EnumSourceGen] +[FastEnum] public enum MyEnum : byte { Value } //Adding this as ulong used to give problems -[EnumSourceGen] +[FastEnum] public enum MyEnum2 : ulong { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentUnderlyingType.output b/Src/FastEnum.Tests.CodeGen/Resources/DifferentUnderlyingType.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DifferentUnderlyingType.output rename to Src/FastEnum.Tests.CodeGen/Resources/DifferentUnderlyingType.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DisableEnumsWrapper.input b/Src/FastEnum.Tests.CodeGen/Resources/DisableEnumsWrapper.input similarity index 56% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DisableEnumsWrapper.input rename to Src/FastEnum.Tests.CodeGen/Resources/DisableEnumsWrapper.input index 2d89d0e..3d85302 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/DisableEnumsWrapper.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/DisableEnumsWrapper.input @@ -1,6 +1,6 @@ //This test checks if we correctly remove the Enums wrapper class -[EnumSourceGen(DisableEnumsWrapper = true, EnumsClassNamespace = "Enums")] +[FastEnum(DisableEnumsWrapper = true, EnumsClassNamespace = "Enums")] public enum MyEnum { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DisableEnumsWrapper.output b/Src/FastEnum.Tests.CodeGen/Resources/DisableEnumsWrapper.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DisableEnumsWrapper.output rename to Src/FastEnum.Tests.CodeGen/Resources/DisableEnumsWrapper.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DisplayName.input b/Src/FastEnum.Tests.CodeGen/Resources/DisplayName.input similarity index 94% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DisplayName.input rename to Src/FastEnum.Tests.CodeGen/Resources/DisplayName.input index 0d1e896..45cfe57 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/DisplayName.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/DisplayName.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen] +[FastEnum] public enum MyEnum { [Display(Name = "myname1")] diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DisplayName.output b/Src/FastEnum.Tests.CodeGen/Resources/DisplayName.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DisplayName.output rename to Src/FastEnum.Tests.CodeGen/Resources/DisplayName.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DuplicateValues.input b/Src/FastEnum.Tests.CodeGen/Resources/DuplicateValues.input similarity index 93% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DuplicateValues.input rename to Src/FastEnum.Tests.CodeGen/Resources/DuplicateValues.input index c79dc71..2d224af 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/DuplicateValues.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/DuplicateValues.input @@ -3,7 +3,7 @@ namespace Some.Namespace.Here; [Flags] -[EnumSourceGen] +[FastEnum] public enum Profile { Unknown = 0, diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/DuplicateValues.output b/Src/FastEnum.Tests.CodeGen/Resources/DuplicateValues.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/DuplicateValues.output rename to Src/FastEnum.Tests.CodeGen/Resources/DuplicateValues.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassName.input b/Src/FastEnum.Tests.CodeGen/Resources/EnumClassName.input similarity index 73% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassName.input rename to Src/FastEnum.Tests.CodeGen/Resources/EnumClassName.input index a7ff483..b6878d4 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassName.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/EnumClassName.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen(EnumsClassName = "Enums2")] +[FastEnum(EnumsClassName = "Enums2")] public enum MyEnum { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassName.output b/Src/FastEnum.Tests.CodeGen/Resources/EnumClassName.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassName.output rename to Src/FastEnum.Tests.CodeGen/Resources/EnumClassName.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassNamespace.input b/Src/FastEnum.Tests.CodeGen/Resources/EnumClassNamespace.input similarity index 69% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassNamespace.input rename to Src/FastEnum.Tests.CodeGen/Resources/EnumClassNamespace.input index 0ed1435..6a37299 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassNamespace.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/EnumClassNamespace.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen(EnumsClassNamespace = "Test.Namespace")] +[FastEnum(EnumsClassNamespace = "Test.Namespace")] public enum MyEnum { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassNamespace.output b/Src/FastEnum.Tests.CodeGen/Resources/EnumClassNamespace.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumClassNamespace.output rename to Src/FastEnum.Tests.CodeGen/Resources/EnumClassNamespace.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumNameOverride.input b/Src/FastEnum.Tests.CodeGen/Resources/EnumNameOverride.input similarity index 71% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumNameOverride.input rename to Src/FastEnum.Tests.CodeGen/Resources/EnumNameOverride.input index 522a5b7..15f6675 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumNameOverride.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/EnumNameOverride.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen(EnumNameOverride = "OtherEnum")] +[FastEnum(EnumNameOverride = "OtherEnum")] public enum MyEnum { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumNameOverride.output b/Src/FastEnum.Tests.CodeGen/Resources/EnumNameOverride.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumNameOverride.output rename to Src/FastEnum.Tests.CodeGen/Resources/EnumNameOverride.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumTransform.input b/Src/FastEnum.Tests.CodeGen/Resources/EnumTransform.input similarity index 85% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumTransform.input rename to Src/FastEnum.Tests.CodeGen/Resources/EnumTransform.input index 2cc0f7e..57c8c6f 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumTransform.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/EnumTransform.input @@ -1,27 +1,27 @@ //This tests if the transforms are being used. -[EnumSourceGen] +[FastEnum] internal enum MyEnum1 { [EnumTransformValue(ValueOverride = "NotFirst")] First } -[EnumSourceGen] +[FastEnum] [EnumTransform(Preset = EnumTransform.UpperCase)] internal enum MyEnum2 { First } -[EnumSourceGen] +[FastEnum] [EnumTransform(Regex = "/First/Last/")] internal enum MyEnum3 { First } -[EnumSourceGen] +[FastEnum] [EnumTransform(CasePattern = "LUUUU")] internal enum MyEnum4 { diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/EnumTransform.output b/Src/FastEnum.Tests.CodeGen/Resources/EnumTransform.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/EnumTransform.output rename to Src/FastEnum.Tests.CodeGen/Resources/EnumTransform.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassName.input b/Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassName.input similarity index 70% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassName.input rename to Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassName.input index 2ad456e..3e21d57 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassName.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassName.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen(ExtensionClassName = "MyExtensions")] +[FastEnum(ExtensionClassName = "MyExtensions")] public enum MyEnum { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassName.output b/Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassName.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassName.output rename to Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassName.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassNamespace.input b/Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassNamespace.input similarity index 68% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassNamespace.input rename to Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassNamespace.input index 21cf4cf..0946e32 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassNamespace.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassNamespace.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen(ExtensionClassNamespace = "Test.Namespace")] +[FastEnum(ExtensionClassNamespace = "Test.Namespace")] public enum MyEnum { Value diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassNamespace.output b/Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassNamespace.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ExtensionClassNamespace.output rename to Src/FastEnum.Tests.CodeGen/Resources/ExtensionClassNamespace.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/Flags.input b/Src/FastEnum.Tests.CodeGen/Resources/Flags.input similarity index 91% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/Flags.input rename to Src/FastEnum.Tests.CodeGen/Resources/Flags.input index 3332848..a623b13 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/Flags.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/Flags.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen] +[FastEnum] [Flags] public enum MyEnum { diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/Flags.output b/Src/FastEnum.Tests.CodeGen/Resources/Flags.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/Flags.output rename to Src/FastEnum.Tests.CodeGen/Resources/Flags.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/GlobalNamespaceEnum.input b/Src/FastEnum.Tests.CodeGen/Resources/GlobalNamespaceEnum.input similarity index 85% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/GlobalNamespaceEnum.input rename to Src/FastEnum.Tests.CodeGen/Resources/GlobalNamespaceEnum.input index 2e616b1..8762a82 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/GlobalNamespaceEnum.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/GlobalNamespaceEnum.input @@ -1,6 +1,6 @@ //This test checks if we support enums in the global namespace -[EnumSourceGen] +[FastEnum] public enum MyEnum { First diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/GlobalNamespaceEnum.output b/Src/FastEnum.Tests.CodeGen/Resources/GlobalNamespaceEnum.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/GlobalNamespaceEnum.output rename to Src/FastEnum.Tests.CodeGen/Resources/GlobalNamespaceEnum.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/InternalEnum.input b/Src/FastEnum.Tests.CodeGen/Resources/InternalEnum.input similarity index 94% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/InternalEnum.input rename to Src/FastEnum.Tests.CodeGen/Resources/InternalEnum.input index ff97dd5..f33adab 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/InternalEnum.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/InternalEnum.input @@ -3,7 +3,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen] +[FastEnum] internal enum MyEnum { First, diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/InternalEnum.output b/Src/FastEnum.Tests.CodeGen/Resources/InternalEnum.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/InternalEnum.output rename to Src/FastEnum.Tests.CodeGen/Resources/InternalEnum.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/NestedType.input b/Src/FastEnum.Tests.CodeGen/Resources/NestedType.input similarity index 92% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/NestedType.input rename to Src/FastEnum.Tests.CodeGen/Resources/NestedType.input index 0f4829f..88350db 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/NestedType.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/NestedType.input @@ -4,7 +4,7 @@ namespace Some.Namespace.Here; internal class MyClass { - [EnumSourceGen] + [FastEnum] internal enum MyEnum { First, diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/NestedType.output b/Src/FastEnum.Tests.CodeGen/Resources/NestedType.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/NestedType.output rename to Src/FastEnum.Tests.CodeGen/Resources/NestedType.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/OmitValue.input b/Src/FastEnum.Tests.CodeGen/Resources/OmitValue.input similarity index 92% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/OmitValue.input rename to Src/FastEnum.Tests.CodeGen/Resources/OmitValue.input index 1877174..e950b4c 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/OmitValue.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/OmitValue.input @@ -1,6 +1,6 @@ //This tests if the transforms are being used. -[EnumSourceGen] +[FastEnum] internal enum MyEnum { Value = 0, diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/OmitValue.output b/Src/FastEnum.Tests.CodeGen/Resources/OmitValue.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/OmitValue.output rename to Src/FastEnum.Tests.CodeGen/Resources/OmitValue.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueExplicit.input b/Src/FastEnum.Tests.CodeGen/Resources/ValueExplicit.input similarity index 92% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ValueExplicit.input rename to Src/FastEnum.Tests.CodeGen/Resources/ValueExplicit.input index e77e619..8fa11b6 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueExplicit.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/ValueExplicit.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen] +[FastEnum] public enum MyEnum { First = 10, diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueExplicit.output b/Src/FastEnum.Tests.CodeGen/Resources/ValueExplicit.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ValueExplicit.output rename to Src/FastEnum.Tests.CodeGen/Resources/ValueExplicit.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueMultiple.input b/Src/FastEnum.Tests.CodeGen/Resources/ValueMultiple.input similarity index 89% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ValueMultiple.input rename to Src/FastEnum.Tests.CodeGen/Resources/ValueMultiple.input index eba44c0..6877652 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueMultiple.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/ValueMultiple.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen] +[FastEnum] public enum MyEnum { First, diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueMultiple.output b/Src/FastEnum.Tests.CodeGen/Resources/ValueMultiple.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ValueMultiple.output rename to Src/FastEnum.Tests.CodeGen/Resources/ValueMultiple.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueSingle.input b/Src/FastEnum.Tests.CodeGen/Resources/ValueSingle.input similarity index 87% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ValueSingle.input rename to Src/FastEnum.Tests.CodeGen/Resources/ValueSingle.input index a889cd9..c3c9332 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueSingle.input +++ b/Src/FastEnum.Tests.CodeGen/Resources/ValueSingle.input @@ -2,7 +2,7 @@ namespace Some.Namespace.Here; -[EnumSourceGen] +[FastEnum] public enum MyEnum { First diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/ValueSingle.output b/Src/FastEnum.Tests.CodeGen/Resources/ValueSingle.output similarity index 100% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/ValueSingle.output rename to Src/FastEnum.Tests.CodeGen/Resources/ValueSingle.output diff --git a/Src/EnumSourceGen.Tests.CodeGen/Resources/_Header.dat b/Src/FastEnum.Tests.CodeGen/Resources/_Header.dat similarity index 68% rename from Src/EnumSourceGen.Tests.CodeGen/Resources/_Header.dat rename to Src/FastEnum.Tests.CodeGen/Resources/_Header.dat index 209cd97..b001e81 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/Resources/_Header.dat +++ b/Src/FastEnum.Tests.CodeGen/Resources/_Header.dat @@ -1,3 +1,3 @@ using System; -using Genbox.EnumSourceGen; +using Genbox.FastEnum; using System.ComponentModel.DataAnnotations; \ No newline at end of file diff --git a/Src/EnumSourceGen.Tests.CodeGen/TransformHelperTests.cs b/Src/FastEnum.Tests.CodeGen/TransformHelperTests.cs similarity index 93% rename from Src/EnumSourceGen.Tests.CodeGen/TransformHelperTests.cs rename to Src/FastEnum.Tests.CodeGen/TransformHelperTests.cs index 6827ffc..baa0865 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/TransformHelperTests.cs +++ b/Src/FastEnum.Tests.CodeGen/TransformHelperTests.cs @@ -1,6 +1,6 @@ -using Genbox.EnumSourceGen.Helpers; +using Genbox.FastEnum.Helpers; -namespace Genbox.EnumSourceGen.Tests.CodeGen; +namespace Genbox.FastEnum.Tests.CodeGen; public class TransformHelperTests { diff --git a/Src/EnumSourceGen.Tests.Functionality/Code/Enums.cs b/Src/FastEnum.Tests.Functionality/Code/Enums.cs similarity index 79% rename from Src/EnumSourceGen.Tests.Functionality/Code/Enums.cs rename to Src/FastEnum.Tests.Functionality/Code/Enums.cs index 0a02a51..f2593e8 100644 --- a/Src/EnumSourceGen.Tests.Functionality/Code/Enums.cs +++ b/Src/FastEnum.Tests.Functionality/Code/Enums.cs @@ -1,8 +1,8 @@ using System.ComponentModel.DataAnnotations; -namespace Genbox.EnumSourceGen.Tests.Functionality.Code +namespace Genbox.FastEnum.Tests.Functionality.Code { - [EnumSourceGen] + [FastEnum] public enum NonFlagsEnum : ulong { Value1, @@ -11,7 +11,7 @@ public enum NonFlagsEnum : ulong } [Flags] - [EnumSourceGen] + [FastEnum] public enum TestEnum : long { [Display(Name = "FirstDisplayName", Description = "FirstDescription")] @@ -22,7 +22,7 @@ public enum TestEnum : long Min = long.MinValue } - [EnumSourceGen] + [FastEnum] [EnumTransform(Preset = EnumTransform.UpperCase)] public enum TestTransformsEnum : long { @@ -31,7 +31,7 @@ public enum TestTransformsEnum : long uppercase } - [EnumSourceGen] + [FastEnum] public enum TestOmitEnum { [EnumOmitValue] @@ -41,9 +41,9 @@ public enum TestOmitEnum } } -namespace Genbox.EnumSourceGen.Tests.Functionality.OtherNamespace +namespace Genbox.FastEnum.Tests.Functionality.OtherNamespace { - [EnumSourceGen] + [FastEnum] public enum TestEnum { First, diff --git a/Src/EnumSourceGen.Tests.Functionality/EnumClassTests.cs b/Src/FastEnum.Tests.Functionality/EnumClassTests.cs similarity index 97% rename from Src/EnumSourceGen.Tests.Functionality/EnumClassTests.cs rename to Src/FastEnum.Tests.Functionality/EnumClassTests.cs index 7b25491..57a9e07 100644 --- a/Src/EnumSourceGen.Tests.Functionality/EnumClassTests.cs +++ b/Src/FastEnum.Tests.Functionality/EnumClassTests.cs @@ -1,6 +1,6 @@ -using Genbox.EnumSourceGen.Tests.Functionality.Code; +using Genbox.FastEnum.Tests.Functionality.Code; -namespace Genbox.EnumSourceGen.Tests.Functionality; +namespace Genbox.FastEnum.Tests.Functionality; public class EnumClassTests { diff --git a/Src/EnumSourceGen.Tests.Functionality/EnumExtensionsTest.cs b/Src/FastEnum.Tests.Functionality/EnumExtensionsTest.cs similarity index 95% rename from Src/EnumSourceGen.Tests.Functionality/EnumExtensionsTest.cs rename to Src/FastEnum.Tests.Functionality/EnumExtensionsTest.cs index e19a550..7948870 100644 --- a/Src/EnumSourceGen.Tests.Functionality/EnumExtensionsTest.cs +++ b/Src/FastEnum.Tests.Functionality/EnumExtensionsTest.cs @@ -1,6 +1,6 @@ -using Genbox.EnumSourceGen.Tests.Functionality.Code; +using Genbox.FastEnum.Tests.Functionality.Code; -namespace Genbox.EnumSourceGen.Tests.Functionality; +namespace Genbox.FastEnum.Tests.Functionality; public class EnumExtensionsTest { diff --git a/Src/EnumSourceGen.Tests.Functionality/EnumTransformTests.cs b/Src/FastEnum.Tests.Functionality/EnumTransformTests.cs similarity index 70% rename from Src/EnumSourceGen.Tests.Functionality/EnumTransformTests.cs rename to Src/FastEnum.Tests.Functionality/EnumTransformTests.cs index c48fb26..152bfa6 100644 --- a/Src/EnumSourceGen.Tests.Functionality/EnumTransformTests.cs +++ b/Src/FastEnum.Tests.Functionality/EnumTransformTests.cs @@ -1,6 +1,6 @@ -using Genbox.EnumSourceGen.Tests.Functionality.Code; +using Genbox.FastEnum.Tests.Functionality.Code; -namespace Genbox.EnumSourceGen.Tests.Functionality; +namespace Genbox.FastEnum.Tests.Functionality; public class EnumTransformTests { diff --git a/Src/EnumSourceGen.Tests.CodeGen/EnumSourceGen.Tests.CodeGen.csproj b/Src/FastEnum.Tests.Functionality/FastEnum.Tests.Functionality.csproj similarity index 66% rename from Src/EnumSourceGen.Tests.CodeGen/EnumSourceGen.Tests.CodeGen.csproj rename to Src/FastEnum.Tests.Functionality/FastEnum.Tests.Functionality.csproj index 06fcda7..4bcc71b 100644 --- a/Src/EnumSourceGen.Tests.CodeGen/EnumSourceGen.Tests.CodeGen.csproj +++ b/Src/FastEnum.Tests.Functionality/FastEnum.Tests.Functionality.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/Src/EnumSourceGen/Data/DisplayData.cs b/Src/FastEnum/Data/DisplayData.cs similarity index 86% rename from Src/EnumSourceGen/Data/DisplayData.cs rename to Src/FastEnum/Data/DisplayData.cs index 77e6376..6f22c67 100644 --- a/Src/EnumSourceGen/Data/DisplayData.cs +++ b/Src/FastEnum/Data/DisplayData.cs @@ -1,7 +1,6 @@ -using Genbox.EnumSourceGen.Extensions; -using Genbox.EnumSourceGen.Helpers; +using Genbox.FastEnum.Extensions; -namespace Genbox.EnumSourceGen.Data; +namespace Genbox.FastEnum.Data; internal class DisplayData : IEquatable { diff --git a/Src/EnumSourceGen/Data/EnumOmitValueData.cs b/Src/FastEnum/Data/EnumOmitValueData.cs similarity index 92% rename from Src/EnumSourceGen/Data/EnumOmitValueData.cs rename to Src/FastEnum/Data/EnumOmitValueData.cs index b5514ae..92a85e7 100644 --- a/Src/EnumSourceGen/Data/EnumOmitValueData.cs +++ b/Src/FastEnum/Data/EnumOmitValueData.cs @@ -1,4 +1,4 @@ -namespace Genbox.EnumSourceGen.Data; +namespace Genbox.FastEnum.Data; internal class EnumOmitValueData : IEquatable { diff --git a/Src/EnumSourceGen/Data/EnumTransformData.cs b/Src/FastEnum/Data/EnumTransformData.cs similarity index 93% rename from Src/EnumSourceGen/Data/EnumTransformData.cs rename to Src/FastEnum/Data/EnumTransformData.cs index c9458d9..0b0bde2 100644 --- a/Src/EnumSourceGen/Data/EnumTransformData.cs +++ b/Src/FastEnum/Data/EnumTransformData.cs @@ -1,7 +1,6 @@ -using Genbox.EnumSourceGen.Extensions; -using Genbox.EnumSourceGen.Helpers; +using Genbox.FastEnum.Extensions; -namespace Genbox.EnumSourceGen.Data; +namespace Genbox.FastEnum.Data; internal class EnumTransformData : IEquatable { diff --git a/Src/EnumSourceGen/Data/EnumTransformValueData.cs b/Src/FastEnum/Data/EnumTransformValueData.cs similarity index 83% rename from Src/EnumSourceGen/Data/EnumTransformValueData.cs rename to Src/FastEnum/Data/EnumTransformValueData.cs index ffbf4ff..9a4af61 100644 --- a/Src/EnumSourceGen/Data/EnumTransformValueData.cs +++ b/Src/FastEnum/Data/EnumTransformValueData.cs @@ -1,7 +1,6 @@ -using Genbox.EnumSourceGen.Extensions; -using Genbox.EnumSourceGen.Helpers; +using Genbox.FastEnum.Extensions; -namespace Genbox.EnumSourceGen.Data; +namespace Genbox.FastEnum.Data; internal class EnumTransformValueData : IEquatable { diff --git a/Src/EnumSourceGen/Data/EnumSourceGenData.cs b/Src/FastEnum/Data/FastEnumData.cs similarity index 85% rename from Src/EnumSourceGen/Data/EnumSourceGenData.cs rename to Src/FastEnum/Data/FastEnumData.cs index cc8d024..2a643dd 100644 --- a/Src/EnumSourceGen/Data/EnumSourceGenData.cs +++ b/Src/FastEnum/Data/FastEnumData.cs @@ -1,9 +1,8 @@ -using Genbox.EnumSourceGen.Extensions; -using Genbox.EnumSourceGen.Helpers; +using Genbox.FastEnum.Extensions; -namespace Genbox.EnumSourceGen.Data; +namespace Genbox.FastEnum.Data; -internal class EnumSourceGenData : IEquatable +internal class FastEnumData : IEquatable { public string? ExtensionClassName { get; set; } public string? ExtensionClassNamespace { get; set; } @@ -13,7 +12,7 @@ internal class EnumSourceGenData : IEquatable public bool DisableEnumsWrapper { get; set; } public bool DisableCache { get; set; } - public bool Equals(EnumSourceGenData? other) + public bool Equals(FastEnumData? other) { if (ReferenceEquals(null, other)) return false; return ExtensionClassName == other.ExtensionClassName && ExtensionClassNamespace == other.ExtensionClassNamespace && EnumsClassName == other.EnumsClassName && EnumsClassNamespace == other.EnumsClassNamespace && EnumNameOverride == other.EnumNameOverride && DisableEnumsWrapper == other.DisableEnumsWrapper && DisableCache == other.DisableCache; @@ -22,7 +21,7 @@ public bool Equals(EnumSourceGenData? other) public override bool Equals(object? obj) { if (ReferenceEquals(null, obj)) return false; - return obj.GetType() == GetType() && Equals((EnumSourceGenData)obj); + return obj.GetType() == GetType() && Equals((FastEnumData)obj); } public override int GetHashCode() diff --git a/Src/EnumSourceGen/EnumGenerator.cs b/Src/FastEnum/EnumGenerator.cs similarity index 84% rename from Src/EnumSourceGen/EnumGenerator.cs rename to Src/FastEnum/EnumGenerator.cs index 9f2164d..7666470 100644 --- a/Src/EnumSourceGen/EnumGenerator.cs +++ b/Src/FastEnum/EnumGenerator.cs @@ -1,34 +1,33 @@ using System.Collections.Immutable; using System.Reflection; using System.Text; -using Genbox.EnumSourceGen.Data; -using Genbox.EnumSourceGen.Generators; -using Genbox.EnumSourceGen.Helpers; -using Genbox.EnumSourceGen.Spec; +using Genbox.FastEnum.Data; +using Genbox.FastEnum.Generators; +using Genbox.FastEnum.Helpers; +using Genbox.FastEnum.Spec; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Text; - #if RELEASE using System.Globalization; #endif -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; [Generator(LanguageNames.CSharp)] public class EnumGenerator : IIncrementalGenerator { private const string DisplayAttribute = "System.ComponentModel.DataAnnotations.DisplayAttribute"; private const string FlagsAttribute = "System.FlagsAttribute"; - private const string EnumSourceGenAttr = "Genbox.EnumSourceGen." + nameof(EnumSourceGenAttribute); - private const string EnumTransformAttr = "Genbox.EnumSourceGen." + nameof(EnumTransformAttribute); - private const string EnumTransformValueAttr = "Genbox.EnumSourceGen." + nameof(EnumTransformValueAttribute); - private const string EnumOmitValueAttr = "Genbox.EnumSourceGen." + nameof(EnumOmitValueAttribute); + private const string FastEnumAttr = "Genbox.FastEnum." + nameof(FastEnumAttribute); + private const string EnumTransformAttr = "Genbox.FastEnum." + nameof(EnumTransformAttribute); + private const string EnumTransformValueAttr = "Genbox.FastEnum." + nameof(EnumTransformValueAttribute); + private const string EnumOmitValueAttr = "Genbox.FastEnum." + nameof(EnumOmitValueAttribute); public void Initialize(IncrementalGeneratorInitializationContext context) { IncrementalValueProvider> sp = context.SyntaxProvider - .ForAttributeWithMetadataName(EnumSourceGenAttr, static (node, _) => node is EnumDeclarationSyntax m && m.AttributeLists.Count > 0, Transform) + .ForAttributeWithMetadataName(FastEnumAttr, static (node, _) => node is EnumDeclarationSyntax m && m.AttributeLists.Count > 0, Transform) .Where(x => x != null) .Collect()!; @@ -40,7 +39,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context) if (!IsSpecsValid(specs, out string? message)) { - DiagnosticDescriptor report = new DiagnosticDescriptor("ESG001", "EnumSourceGen", $"Validation failed with message: {message}", "errors", DiagnosticSeverity.Error, true); + DiagnosticDescriptor report = new DiagnosticDescriptor("ESG001", "FastEnum", $"Validation failed with message: {message}", "errors", DiagnosticSeverity.Error, true); spc.ReportDiagnostic(Diagnostic.Create(report, Location.None)); return; } @@ -58,14 +57,14 @@ public void Initialize(IncrementalGeneratorInitializationContext context) } catch (Exception e) { - DiagnosticDescriptor report = new DiagnosticDescriptor("ESG002", "EnumSourceGen", $"An error happened while generating code for {enumSpec.FullName}. Error: {e.Message}", "errors", DiagnosticSeverity.Error, true); + DiagnosticDescriptor report = new DiagnosticDescriptor("ESG002", "FastEnum", $"An error happened while generating code for {enumSpec.FullName}. Error: {e.Message}", "errors", DiagnosticSeverity.Error, true); spc.ReportDiagnostic(Diagnostic.Create(report, Location.None)); } } }); } - private bool IsSpecsValid(ImmutableArray specs, out string? message) + private static bool IsSpecsValid(ImmutableArray specs, out string? message) { //### Detect name conflicts ### // By default the Enums class is generated as: .. @@ -79,7 +78,7 @@ private bool IsSpecsValid(ImmutableArray specs, out string? message) foreach (EnumSpec es in specs) { - EnumSourceGenData esd = es.SourceGenData; + FastEnumData esd = es.Data; string enumNamespace = esd.EnumsClassNamespace ?? (es.Namespace ?? "global::"); string enumClassName = esd.EnumsClassName ?? "Enums"; @@ -89,7 +88,7 @@ private bool IsSpecsValid(ImmutableArray specs, out string? message) if (!nameSet.Add(fullName)) { - message = $"Two enums collide in name: {fullName}. Use {nameof(EnumSourceGenAttribute.EnumNameOverride)}, {nameof(EnumSourceGenAttribute.EnumsClassName)} or {nameof(EnumSourceGenAttribute.EnumsClassNamespace)} to resolve the conflict"; + message = $"Two enums collide in name: {fullName}. Use {nameof(FastEnumAttribute.EnumNameOverride)}, {nameof(FastEnumAttribute.EnumsClassName)} or {nameof(FastEnumAttribute.EnumsClassNamespace)} to resolve the conflict"; return false; } } @@ -115,7 +114,7 @@ private bool IsSpecsValid(ImmutableArray specs, out string? message) if (enumAccess == Accessibility.Private) { - message = $"EnumSourceGen is not supported on private enum: '{es.FullName}'"; + message = $"FastEnum is not supported on private enum: '{es.FullName}'"; return false; } @@ -155,7 +154,7 @@ private static SourceText GetSource(StringBuilder sb, AssemblyName assemblyName, return null; bool hasFlags = false; - EnumSourceGenData? enumSourceGenData = null; + FastEnumData? fastEnumData = null; EnumTransformData? enumTransformData = null; foreach (AttributeData ad in symbol.GetAttributes()) @@ -165,15 +164,15 @@ private static SourceText GetSource(StringBuilder sb, AssemblyName assemblyName, string name = ad.AttributeClass.ToDisplayString(); - if (name.Equals(EnumSourceGenAttr, StringComparison.Ordinal)) - enumSourceGenData = TypeHelper.MapData(ad.NamedArguments); + if (name.Equals(FastEnumAttr, StringComparison.Ordinal)) + fastEnumData = TypeHelper.MapData(ad.NamedArguments); else if (name.Equals(FlagsAttribute, StringComparison.Ordinal)) hasFlags = true; else if (name.Equals(EnumTransformAttr, StringComparison.Ordinal)) enumTransformData = TypeHelper.MapData(ad.NamedArguments); } - if (enumSourceGenData == null) + if (fastEnumData == null) return null; //Now we read attributes applied to members of the enum @@ -247,6 +246,8 @@ private static SourceText GetSource(StringBuilder sb, AssemblyName assemblyName, break; case SymbolDisplayPartKind.Punctuation: break; + default: + throw new InvalidOperationException("Unsupported value: " + part.Kind); } if (inNamespace) @@ -262,6 +263,6 @@ private static SourceText GetSource(StringBuilder sb, AssemblyName assemblyName, string fqn = fqnSb.ToString(); string? enumNamespace = namespaceSb.Length == 0 ? null : namespaceSb.ToString().TrimEnd('.'); - return new EnumSpec(enumName, enumFullName, fqn, enumNamespace, accessChain.ToArray(), hasName, hasDescription, hasFlags, underlyingType, enumSourceGenData, members.ToArray(), enumTransformData); + return new EnumSpec(enumName, enumFullName, fqn, enumNamespace, accessChain.ToArray(), hasName, hasDescription, hasFlags, underlyingType, fastEnumData, members.ToArray(), enumTransformData); } } \ No newline at end of file diff --git a/Src/EnumSourceGen/EnumOmitExclude.cs b/Src/FastEnum/EnumOmitExclude.cs similarity index 93% rename from Src/EnumSourceGen/EnumOmitExclude.cs rename to Src/FastEnum/EnumOmitExclude.cs index dba5b27..8e2e9b2 100644 --- a/Src/EnumSourceGen/EnumOmitExclude.cs +++ b/Src/FastEnum/EnumOmitExclude.cs @@ -1,4 +1,4 @@ -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; [Flags] public enum EnumOmitExclude diff --git a/Src/EnumSourceGen/EnumOmitValueAttribute.cs b/Src/FastEnum/EnumOmitValueAttribute.cs similarity index 67% rename from Src/EnumSourceGen/EnumOmitValueAttribute.cs rename to Src/FastEnum/EnumOmitValueAttribute.cs index 4fcd2ee..cf612da 100644 --- a/Src/EnumSourceGen/EnumOmitValueAttribute.cs +++ b/Src/FastEnum/EnumOmitValueAttribute.cs @@ -1,8 +1,8 @@ // ReSharper disable RedundantNameQualifier -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; -[global::System.Diagnostics.Conditional("ENUMSOURCEGEN_INCLUDE_ATTRIBUTE")] +[global::System.Diagnostics.Conditional("FASTENUM_INCLUDE_ATTRIBUTE")] [global::System.AttributeUsage(AttributeTargets.Field)] public sealed class EnumOmitValueAttribute : global::System.Attribute { diff --git a/Src/EnumSourceGen/EnumOrder.cs b/Src/FastEnum/EnumOrder.cs similarity index 65% rename from Src/EnumSourceGen/EnumOrder.cs rename to Src/FastEnum/EnumOrder.cs index 7d60088..4db1469 100644 --- a/Src/EnumSourceGen/EnumOrder.cs +++ b/Src/FastEnum/EnumOrder.cs @@ -1,4 +1,4 @@ -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; public enum EnumOrder { diff --git a/Src/EnumSourceGen/EnumTransform.cs b/Src/FastEnum/EnumTransform.cs similarity index 67% rename from Src/EnumSourceGen/EnumTransform.cs rename to Src/FastEnum/EnumTransform.cs index 1fb07dc..2c39359 100644 --- a/Src/EnumSourceGen/EnumTransform.cs +++ b/Src/FastEnum/EnumTransform.cs @@ -1,4 +1,4 @@ -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; public enum EnumTransform { diff --git a/Src/EnumSourceGen/EnumTransformAttribute.cs b/Src/FastEnum/EnumTransformAttribute.cs similarity index 89% rename from Src/EnumSourceGen/EnumTransformAttribute.cs rename to Src/FastEnum/EnumTransformAttribute.cs index 5b51bea..7352a84 100644 --- a/Src/EnumSourceGen/EnumTransformAttribute.cs +++ b/Src/FastEnum/EnumTransformAttribute.cs @@ -1,8 +1,8 @@ //ReSharper disable RedundantNameQualifier -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; -[global::System.Diagnostics.Conditional("ENUMSOURCEGEN_INCLUDE_ATTRIBUTE")] +[global::System.Diagnostics.Conditional("FASTENUM_INCLUDE_ATTRIBUTE")] [global::System.AttributeUsage(AttributeTargets.Enum)] public sealed class EnumTransformAttribute : global::System.Attribute { diff --git a/Src/EnumSourceGen/EnumTransformValueAttribute.cs b/Src/FastEnum/EnumTransformValueAttribute.cs similarity index 74% rename from Src/EnumSourceGen/EnumTransformValueAttribute.cs rename to Src/FastEnum/EnumTransformValueAttribute.cs index e13aae0..3be6e3c 100644 --- a/Src/EnumSourceGen/EnumTransformValueAttribute.cs +++ b/Src/FastEnum/EnumTransformValueAttribute.cs @@ -1,8 +1,8 @@ //ReSharper disable RedundantNameQualifier -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; -[global::System.Diagnostics.Conditional("ENUMSOURCEGEN_INCLUDE_ATTRIBUTE")] +[global::System.Diagnostics.Conditional("FASTENUM_INCLUDE_ATTRIBUTE")] [global::System.AttributeUsage(AttributeTargets.Field)] public sealed class EnumTransformValueAttribute : global::System.Attribute { diff --git a/Src/EnumSourceGen/Extensions/StringExtensions.cs b/Src/FastEnum/Extensions/StringExtensions.cs similarity index 92% rename from Src/EnumSourceGen/Extensions/StringExtensions.cs rename to Src/FastEnum/Extensions/StringExtensions.cs index 8ee72c3..9988ddd 100644 --- a/Src/EnumSourceGen/Extensions/StringExtensions.cs +++ b/Src/FastEnum/Extensions/StringExtensions.cs @@ -1,4 +1,4 @@ -namespace Genbox.EnumSourceGen.Extensions; +namespace Genbox.FastEnum.Extensions; internal static class StringExtensions { diff --git a/Src/EnumSourceGen/EnumSourceGen.csproj b/Src/FastEnum/FastEnum.csproj similarity index 100% rename from Src/EnumSourceGen/EnumSourceGen.csproj rename to Src/FastEnum/FastEnum.csproj diff --git a/Src/EnumSourceGen/EnumSourceGenAttribute.cs b/Src/FastEnum/FastEnumAttribute.cs similarity index 90% rename from Src/EnumSourceGen/EnumSourceGenAttribute.cs rename to Src/FastEnum/FastEnumAttribute.cs index dea1ef7..309d3e5 100644 --- a/Src/EnumSourceGen/EnumSourceGenAttribute.cs +++ b/Src/FastEnum/FastEnumAttribute.cs @@ -1,10 +1,10 @@ // ReSharper disable RedundantNameQualifier -namespace Genbox.EnumSourceGen; +namespace Genbox.FastEnum; /// Add to enums to indicate that extension methods should be generated for the type -[global::System.Diagnostics.Conditional("ENUMSOURCEGEN_INCLUDE_ATTRIBUTE")] +[global::System.Diagnostics.Conditional("FASTENUM_INCLUDE_ATTRIBUTE")] [global::System.AttributeUsage(AttributeTargets.Enum)] -public sealed class EnumSourceGenAttribute : global::System.Attribute +public sealed class FastEnumAttribute : global::System.Attribute { /// /// Override the name of the extension class. If not provided, the enum name with "Extensions" appended will be used. For example for an Enum called StatusCodes, the default name diff --git a/Src/EnumSourceGen/Generators/EnumClassCode.cs b/Src/FastEnum/Generators/EnumClassCode.cs similarity index 98% rename from Src/EnumSourceGen/Generators/EnumClassCode.cs rename to Src/FastEnum/Generators/EnumClassCode.cs index 4fa8112..cab16a2 100644 --- a/Src/EnumSourceGen/Generators/EnumClassCode.cs +++ b/Src/FastEnum/Generators/EnumClassCode.cs @@ -1,17 +1,17 @@ using System.Globalization; using System.Text; -using Genbox.EnumSourceGen.Data; -using Genbox.EnumSourceGen.Helpers; -using Genbox.EnumSourceGen.Spec; +using Genbox.FastEnum.Data; +using Genbox.FastEnum.Helpers; +using Genbox.FastEnum.Spec; using Microsoft.CodeAnalysis; -namespace Genbox.EnumSourceGen.Generators; +namespace Genbox.FastEnum.Generators; internal static class EnumClassCode { internal static string Generate(EnumSpec es) { - EnumSourceGenData op = es.SourceGenData; + FastEnumData op = es.Data; string? ns = op.EnumsClassNamespace ?? es.Namespace; string cn = op.EnumNameOverride ?? es.Name; diff --git a/Src/EnumSourceGen/Generators/EnumExtensionCode.cs b/Src/FastEnum/Generators/EnumExtensionCode.cs similarity index 97% rename from Src/EnumSourceGen/Generators/EnumExtensionCode.cs rename to Src/FastEnum/Generators/EnumExtensionCode.cs index 79c4320..588fca8 100644 --- a/Src/EnumSourceGen/Generators/EnumExtensionCode.cs +++ b/Src/FastEnum/Generators/EnumExtensionCode.cs @@ -1,17 +1,17 @@ using System.Text; -using Genbox.EnumSourceGen.Data; -using Genbox.EnumSourceGen.Helpers; -using Genbox.EnumSourceGen.Spec; +using Genbox.FastEnum.Data; +using Genbox.FastEnum.Helpers; +using Genbox.FastEnum.Spec; using Microsoft.CodeAnalysis; -using static Genbox.EnumSourceGen.Helpers.CodeGenHelper; +using static Genbox.FastEnum.Helpers.CodeGenHelper; -namespace Genbox.EnumSourceGen.Generators; +namespace Genbox.FastEnum.Generators; internal static class EnumExtensionCode { public static string Generate(EnumSpec es) { - EnumSourceGenData op = es.SourceGenData; + FastEnumData op = es.Data; string? ns = op.ExtensionClassNamespace ?? es.Namespace; string cn = op.EnumNameOverride ?? es.Name; diff --git a/Src/EnumSourceGen/Generators/EnumFormatCode.cs b/Src/FastEnum/Generators/EnumFormatCode.cs similarity index 65% rename from Src/EnumSourceGen/Generators/EnumFormatCode.cs rename to Src/FastEnum/Generators/EnumFormatCode.cs index 49be45c..3dd78a0 100644 --- a/Src/EnumSourceGen/Generators/EnumFormatCode.cs +++ b/Src/FastEnum/Generators/EnumFormatCode.cs @@ -1,14 +1,13 @@ -using Genbox.EnumSourceGen.Data; -using Genbox.EnumSourceGen.Spec; +using Genbox.FastEnum.Spec; -namespace Genbox.EnumSourceGen.Generators; +namespace Genbox.FastEnum.Generators; internal static class EnumFormatCode { internal static string Generate(EnumSpec es) { - string? ns = es.SourceGenData.EnumsClassNamespace ?? es.Namespace; //We use the same namespace as the Enums class - string cn = es.SourceGenData.EnumNameOverride ?? es.Name; + string? ns = es.Data.EnumsClassNamespace ?? es.Namespace; //We use the same namespace as the Enums class + string cn = es.Data.EnumNameOverride ?? es.Name; string res = $$""" using System; diff --git a/Src/EnumSourceGen/Helpers/CodeGenHelper.cs b/Src/FastEnum/Helpers/CodeGenHelper.cs similarity index 73% rename from Src/EnumSourceGen/Helpers/CodeGenHelper.cs rename to Src/FastEnum/Helpers/CodeGenHelper.cs index 2a64357..bb20d3d 100644 --- a/Src/EnumSourceGen/Helpers/CodeGenHelper.cs +++ b/Src/FastEnum/Helpers/CodeGenHelper.cs @@ -1,4 +1,4 @@ -namespace Genbox.EnumSourceGen.Helpers; +namespace Genbox.FastEnum.Helpers; internal static class CodeGenHelper { diff --git a/Src/EnumSourceGen/Helpers/TransformHelper.cs b/Src/FastEnum/Helpers/TransformHelper.cs similarity index 96% rename from Src/EnumSourceGen/Helpers/TransformHelper.cs rename to Src/FastEnum/Helpers/TransformHelper.cs index 948eafe..2954b34 100644 --- a/Src/EnumSourceGen/Helpers/TransformHelper.cs +++ b/Src/FastEnum/Helpers/TransformHelper.cs @@ -1,8 +1,8 @@ using System.Text.RegularExpressions; -using Genbox.EnumSourceGen.Data; -using Genbox.EnumSourceGen.Spec; +using Genbox.FastEnum.Data; +using Genbox.FastEnum.Spec; -namespace Genbox.EnumSourceGen.Helpers; +namespace Genbox.FastEnum.Helpers; internal static class TransformHelper { diff --git a/Src/EnumSourceGen/Helpers/TypeHelper.cs b/Src/FastEnum/Helpers/TypeHelper.cs similarity index 95% rename from Src/EnumSourceGen/Helpers/TypeHelper.cs rename to Src/FastEnum/Helpers/TypeHelper.cs index 91e10e6..6d032aa 100644 --- a/Src/EnumSourceGen/Helpers/TypeHelper.cs +++ b/Src/FastEnum/Helpers/TypeHelper.cs @@ -2,7 +2,7 @@ using System.Reflection; using Microsoft.CodeAnalysis; -namespace Genbox.EnumSourceGen.Helpers; +namespace Genbox.FastEnum.Helpers; internal static class TypeHelper { diff --git a/Src/EnumSourceGen/Polyfills/IsExternalInit.cs b/Src/FastEnum/Polyfills/IsExternalInit.cs similarity index 100% rename from Src/EnumSourceGen/Polyfills/IsExternalInit.cs rename to Src/FastEnum/Polyfills/IsExternalInit.cs diff --git a/Src/FastEnum/Properties/AssemblyInfo.cs b/Src/FastEnum/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..445a08a --- /dev/null +++ b/Src/FastEnum/Properties/AssemblyInfo.cs @@ -0,0 +1,4 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("FastEnum.Tests.CodeGen")] +[assembly: InternalsVisibleTo("Genbox.FastEnum.Tests.CodeGen")] \ No newline at end of file diff --git a/Src/EnumSourceGen/Spec/EnumMemberSpec.cs b/Src/FastEnum/Spec/EnumMemberSpec.cs similarity index 92% rename from Src/EnumSourceGen/Spec/EnumMemberSpec.cs rename to Src/FastEnum/Spec/EnumMemberSpec.cs index 19e547e..9b2b365 100644 --- a/Src/EnumSourceGen/Spec/EnumMemberSpec.cs +++ b/Src/FastEnum/Spec/EnumMemberSpec.cs @@ -1,8 +1,7 @@ -using Genbox.EnumSourceGen.Data; -using Genbox.EnumSourceGen.Extensions; -using Genbox.EnumSourceGen.Helpers; +using Genbox.FastEnum.Data; +using Genbox.FastEnum.Extensions; -namespace Genbox.EnumSourceGen.Spec; +namespace Genbox.FastEnum.Spec; internal class EnumMemberSpec : IEquatable { diff --git a/Src/EnumSourceGen/Spec/EnumSpec.cs b/Src/FastEnum/Spec/EnumSpec.cs similarity index 88% rename from Src/EnumSourceGen/Spec/EnumSpec.cs rename to Src/FastEnum/Spec/EnumSpec.cs index 9610b13..47a3abe 100644 --- a/Src/EnumSourceGen/Spec/EnumSpec.cs +++ b/Src/FastEnum/Spec/EnumSpec.cs @@ -1,12 +1,12 @@ -using Genbox.EnumSourceGen.Data; -using Genbox.EnumSourceGen.Extensions; +using Genbox.FastEnum.Data; +using Genbox.FastEnum.Extensions; using Microsoft.CodeAnalysis; -namespace Genbox.EnumSourceGen.Spec; +namespace Genbox.FastEnum.Spec; internal class EnumSpec : IEquatable { - public EnumSpec(string name, string fullName, string fullyQualifiedName, string? @namespace, Accessibility[] accessChain, bool hasDisplay, bool hasDescription, bool hasFlags, string underlyingType, EnumSourceGenData sourceGenData, EnumMemberSpec[] members, EnumTransformData? transformData) + public EnumSpec(string name, string fullName, string fullyQualifiedName, string? @namespace, Accessibility[] accessChain, bool hasDisplay, bool hasDescription, bool hasFlags, string underlyingType, FastEnumData data, EnumMemberSpec[] members, EnumTransformData? transformData) { Name = name; FullName = fullName; @@ -17,7 +17,7 @@ public EnumSpec(string name, string fullName, string fullyQualifiedName, string? HasDescription = hasDescription; HasFlags = hasFlags; UnderlyingType = underlyingType; - SourceGenData = sourceGenData; + Data = data; Members = members; TransformData = transformData; } @@ -31,7 +31,7 @@ public EnumSpec(string name, string fullName, string fullyQualifiedName, string? public bool HasDescription { get; } public bool HasFlags { get; } public string UnderlyingType { get; } - public EnumSourceGenData SourceGenData { get; } + public FastEnumData Data { get; } public EnumTransformData? TransformData { get; } public EnumMemberSpec[] Members { get; } @@ -46,7 +46,7 @@ public bool Equals(EnumSpec other) HasDescription == other.HasDescription && HasFlags == other.HasFlags && UnderlyingType == other.UnderlyingType && - SourceGenData.Equals(other.SourceGenData) && + Data.Equals(other.Data) && ListEqual(Members, other.Members) && Equals(TransformData, other.TransformData); } @@ -72,7 +72,7 @@ public override int GetHashCode() hashCode = (hashCode * 397) ^ HasDescription.GetHashCode(); hashCode = (hashCode * 397) ^ HasFlags.GetHashCode(); hashCode = (hashCode * 397) ^ UnderlyingType.GetDeterministicHashCode(); - hashCode = (hashCode * 397) ^ SourceGenData.GetHashCode(); + hashCode = (hashCode * 397) ^ Data.GetHashCode(); foreach (EnumMemberSpec member in Members) {