Files
InterfaceGenerator/Speckle.InterfaceGenerator/Attributes.cs
T
Adam Hathcock da4a8a0c50 proper naming
2024-05-20 08:43:35 +01:00

46 lines
1.3 KiB
C#

namespace Speckle.InterfaceGenerator;
internal class Attributes
{
public const string AttributesNamespace = "Speckle.InterfaceGenerator";
public const string GenerateAutoInterfaceClassname = "GenerateAutoInterfaceAttribute";
public const string AutoInterfaceIgnoreAttributeClassname = "AutoInterfaceIgnoreAttribute";
public const string VisibilityModifierPropName = "VisibilityModifier";
public const string InterfaceNamePropName = "Name";
public static readonly string AttributesSourceCode =
$@"
#pragma warning disable IDE0005
using System;
using System.Diagnostics;
#nullable enable
namespace {AttributesNamespace}
{{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, Inherited = false)]
[Conditional(""CodeGeneration"")]
internal sealed class {GenerateAutoInterfaceClassname} : Attribute
{{
public string? {VisibilityModifierPropName} {{ get; init; }}
public string? {InterfaceNamePropName} {{ get; init; }}
public {GenerateAutoInterfaceClassname}()
{{
}}
}}
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, Inherited = false)]
[Conditional(""CodeGeneration"")]
internal sealed class {AutoInterfaceIgnoreAttributeClassname} : Attribute
{{
}}
}}
#pragma warning restore IDE0005
";
}