// ReSharper disable ClassNeverInstantiated.Global
// ReSharper disable once RedundantNullableDirective
#nullable enable
namespace Terminal.Gui.Analyzers.Internal.Attributes;
/// Assembly attribute declaring a known pairing of an type to an extension class.
/// This attribute should only be written by internal source generators for Terminal.Gui. No other usage of any kind is supported.
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class AssemblyExtendedEnumTypeAttribute : System.Attribute
{
/// Creates a new instance of from the provided parameters.
/// The of an decorated with a .
/// The of the decorated with an referring to the same type as .
public AssemblyExtendedEnumTypeAttribute (System.Type enumType, System.Type extensionClass)
{
EnumType = enumType;
ExtensionClass = extensionClass;
}
///An type that has been extended by Terminal.Gui source generators.
public System.Type EnumType { get; init; }
///A class containing extension methods for .
public System.Type ExtensionClass { get; init; }
///
public override string ToString () => $"{EnumType.Name},{ExtensionClass.Name}";
}