From 53c8e4257bd35c0f102ea21e2b1423951d6108b3 Mon Sep 17 00:00:00 2001 From: Corniel Nobel Date: Sun, 18 Feb 2024 11:00:42 +0100 Subject: [PATCH] Single class per file. --- .../EmptyClassAttribute.cs | 10 ++++ .../EmptyEnumAttribute.cs | 6 +++ .../EmptyInterfaceAttribute.cs | 6 +++ .../EmptyStructAttribute.cs | 6 +++ .../EmptyTestClassAttribute.cs | 10 ++++ .../EmptyTestEnumAttribute.cs | 6 +++ .../EmptyTestInterfaceAttribute.cs | 6 +++ .../EmptyTestStructAttribute.cs | 6 +++ .../EmptyTypeAttribute.cs | 48 ------------------- 9 files changed, 56 insertions(+), 48 deletions(-) create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyClassAttribute.cs create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyEnumAttribute.cs create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyInterfaceAttribute.cs create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyStructAttribute.cs create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyTestClassAttribute.cs create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyTestEnumAttribute.cs create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyTestInterfaceAttribute.cs create mode 100644 src/Qowaiv.Diagnostics.Contracts/EmptyTestStructAttribute.cs diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyClassAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyClassAttribute.cs new file mode 100644 index 00000000..3ae63c1a --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyClassAttribute.cs @@ -0,0 +1,10 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the class is empty by design. +/// +/// Using this attribute prevents S2094 (Classes should not be empty) from +/// showing up. +/// +[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public class EmptyClassAttribute(string justification) : EmptyTypeAttribute(justification) { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyEnumAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyEnumAttribute.cs new file mode 100644 index 00000000..49bf19c8 --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyEnumAttribute.cs @@ -0,0 +1,6 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the enum is empty by design. +[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public class EmptyEnumAttribute(string justification) : EmptyTypeAttribute(justification) { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyInterfaceAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyInterfaceAttribute.cs new file mode 100644 index 00000000..5d7e7cb5 --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyInterfaceAttribute.cs @@ -0,0 +1,6 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the class is empty by design. +[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public class EmptyInterfaceAttribute(string justification) : EmptyTypeAttribute(justification) { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyStructAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyStructAttribute.cs new file mode 100644 index 00000000..6a3e1b33 --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyStructAttribute.cs @@ -0,0 +1,6 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the struct is empty by design. +[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public class EmptyStructAttribute(string justification) : EmptyTypeAttribute(justification) { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyTestClassAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyTestClassAttribute.cs new file mode 100644 index 00000000..42498f03 --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyTestClassAttribute.cs @@ -0,0 +1,10 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the class is empty by design. +/// +/// Using this attribute prevents S2094 (Classes should not be empty) from +/// showing up. +/// +[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public sealed class EmptyTestClassAttribute(string? justification = null) : EmptyClassAttribute(justification ?? "For test purposes.") { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyTestEnumAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyTestEnumAttribute.cs new file mode 100644 index 00000000..638c7a3a --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyTestEnumAttribute.cs @@ -0,0 +1,6 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the enum is empty by design. +[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public sealed class EmptyTestEnumAttribute(string? justification = null) : EmptyEnumAttribute(justification ?? "For test purposes.") { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyTestInterfaceAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyTestInterfaceAttribute.cs new file mode 100644 index 00000000..07c85330 --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyTestInterfaceAttribute.cs @@ -0,0 +1,6 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the class is empty by design. +[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public sealed class EmptyTestInterfaceAttribute(string? justification = null) : EmptyInterfaceAttribute(justification ?? "For test purposes.") { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyTestStructAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyTestStructAttribute.cs new file mode 100644 index 00000000..e19c6612 --- /dev/null +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyTestStructAttribute.cs @@ -0,0 +1,6 @@ +namespace Qowaiv.Diagnostics.Contracts; + +/// Indicates the struct is empty by design. +[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)] +[Conditional("CONTRACTS_FULL")] +public sealed class EmptyTestStructAttribute(string? justification = null) : EmptyStructAttribute(justification ?? "For test purposes.") { } diff --git a/src/Qowaiv.Diagnostics.Contracts/EmptyTypeAttribute.cs b/src/Qowaiv.Diagnostics.Contracts/EmptyTypeAttribute.cs index d393113f..16648a59 100644 --- a/src/Qowaiv.Diagnostics.Contracts/EmptyTypeAttribute.cs +++ b/src/Qowaiv.Diagnostics.Contracts/EmptyTypeAttribute.cs @@ -7,51 +7,3 @@ public abstract class EmptyTypeAttribute(string justification) : Attribute /// THe justification of this decoration. public string Justification { get; } = justification; } - -/// Indicates the class is empty by design. -/// -/// Using this attribute prevents S2094 (Classes should not be empty) from -/// showing up. -/// -[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public class EmptyClassAttribute(string justification) : EmptyTypeAttribute(justification) { } - -/// Indicates the enum is empty by design. -[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public class EmptyEnumAttribute(string justification) : EmptyTypeAttribute(justification) { } - -/// Indicates the class is empty by design. -[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public class EmptyInterfaceAttribute(string justification) : EmptyTypeAttribute(justification) { } - -/// Indicates the struct is empty by design. -[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public class EmptyStructAttribute(string justification) : EmptyTypeAttribute(justification) { } - -/// Indicates the class is empty by design. -/// -/// Using this attribute prevents S2094 (Classes should not be empty) from -/// showing up. -/// -[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public sealed class EmptyTestClassAttribute(string? justification = null) : EmptyClassAttribute(justification ?? "For test purposes.") { } - -/// Indicates the enum is empty by design. -[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public sealed class EmptyTestEnumAttribute(string? justification = null) : EmptyEnumAttribute(justification ?? "For test purposes.") { } - -/// Indicates the class is empty by design. -[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public sealed class EmptyTestInterfaceAttribute(string? justification = null) : EmptyInterfaceAttribute(justification ?? "For test purposes.") { } - -/// Indicates the struct is empty by design. -[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)] -[Conditional("CONTRACTS_FULL")] -public sealed class EmptyTestStructAttribute(string? justification = null) : EmptyStructAttribute(justification ?? "For test purposes.") { }