Skip to content

Commit

Permalink
Single class per file.
Browse files Browse the repository at this point in the history
  • Loading branch information
Corniel committed Feb 18, 2024
1 parent 31ffa93 commit 74a1b6e
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 48 deletions.
10 changes: 10 additions & 0 deletions src/Qowaiv.Diagnostics.Contracts/EmptyClassAttribute.cs
@@ -0,0 +1,10 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the class is empty by design.</summary>
/// <remarks>
/// Using this attribute prevents S2094 (Classes should not be empty) from
/// showing up.
/// </remarks>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyClassAttribute(string justification) : EmptyTypeAttribute(justification) { }
6 changes: 6 additions & 0 deletions src/Qowaiv.Diagnostics.Contracts/EmptyEnumAttribute.cs
@@ -0,0 +1,6 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the enum is empty by design.</summary>
[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyEnumAttribute(string justification) : EmptyTypeAttribute(justification) { }
6 changes: 6 additions & 0 deletions src/Qowaiv.Diagnostics.Contracts/EmptyInterfaceAttribute.cs
@@ -0,0 +1,6 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the class is empty by design.</summary>
[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyInterfaceAttribute(string justification) : EmptyTypeAttribute(justification) { }
6 changes: 6 additions & 0 deletions src/Qowaiv.Diagnostics.Contracts/EmptyStructAttribute.cs
@@ -0,0 +1,6 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the struct is empty by design.</summary>
[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyStructAttribute(string justification) : EmptyTypeAttribute(justification) { }
10 changes: 10 additions & 0 deletions src/Qowaiv.Diagnostics.Contracts/EmptyTestClassAttribute.cs
@@ -0,0 +1,10 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the class is empty by design.</summary>
/// <remarks>
/// Using this attribute prevents S2094 (Classes should not be empty) from
/// showing up.
/// </remarks>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestClassAttribute(string? justification = null) : EmptyClassAttribute(justification ?? "For test purposes.") { }
6 changes: 6 additions & 0 deletions src/Qowaiv.Diagnostics.Contracts/EmptyTestEnumAttribute.cs
@@ -0,0 +1,6 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the enum is empty by design.</summary>
[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestEnumAttribute(string? justification = null) : EmptyEnumAttribute(justification ?? "For test purposes.") { }
@@ -0,0 +1,6 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the class is empty by design.</summary>
[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestInterfaceAttribute(string? justification = null) : EmptyInterfaceAttribute(justification ?? "For test purposes.") { }
6 changes: 6 additions & 0 deletions src/Qowaiv.Diagnostics.Contracts/EmptyTestStructAttribute.cs
@@ -0,0 +1,6 @@
namespace Qowaiv.Diagnostics.Contracts;

/// <summary>Indicates the struct is empty by design.</summary>
[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestStructAttribute(string? justification = null) : EmptyStructAttribute(justification ?? "For test purposes.") { }
48 changes: 0 additions & 48 deletions src/Qowaiv.Diagnostics.Contracts/EmptyTypeAttribute.cs
Expand Up @@ -7,51 +7,3 @@ public abstract class EmptyTypeAttribute(string justification) : Attribute
/// <summary>THe justification of this decoration.</summary>
public string Justification { get; } = justification;
}

/// <summary>Indicates the class is empty by design.</summary>
/// <remarks>
/// Using this attribute prevents S2094 (Classes should not be empty) from
/// showing up.
/// </remarks>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyClassAttribute(string justification) : EmptyTypeAttribute(justification) { }

/// <summary>Indicates the enum is empty by design.</summary>
[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyEnumAttribute(string justification) : EmptyTypeAttribute(justification) { }

/// <summary>Indicates the class is empty by design.</summary>
[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyInterfaceAttribute(string justification) : EmptyTypeAttribute(justification) { }

/// <summary>Indicates the struct is empty by design.</summary>
[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public class EmptyStructAttribute(string justification) : EmptyTypeAttribute(justification) { }

/// <summary>Indicates the class is empty by design.</summary>
/// <remarks>
/// Using this attribute prevents S2094 (Classes should not be empty) from
/// showing up.
/// </remarks>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestClassAttribute(string? justification = null) : EmptyClassAttribute(justification ?? "For test purposes.") { }

/// <summary>Indicates the enum is empty by design.</summary>
[AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestEnumAttribute(string? justification = null) : EmptyEnumAttribute(justification ?? "For test purposes.") { }

/// <summary>Indicates the class is empty by design.</summary>
[AttributeUsage(AttributeTargets.Interface, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestInterfaceAttribute(string? justification = null) : EmptyInterfaceAttribute(justification ?? "For test purposes.") { }

/// <summary>Indicates the struct is empty by design.</summary>
[AttributeUsage(AttributeTargets.Struct, AllowMultiple = false)]
[Conditional("CONTRACTS_FULL")]
public sealed class EmptyTestStructAttribute(string? justification = null) : EmptyStructAttribute(justification ?? "For test purposes.") { }

0 comments on commit 74a1b6e

Please sign in to comment.