mirror of
https://github.com/TeamOctolings/Octobot.git
synced 2025-01-31 09:09:00 +03:00
Octol1ttle
e6f53b13f0
This PR splits the extension methods contained in `Extensions.cs` into separate classes in the `Octobot.Extensions` namespace. This was done for multiple reasons: 1) The `Extensions.cs` violates SRP (Single Responsibility Principle) - it takes upon itself every extension method for many types 2) Having a separate class for each extended type is a standard practice - take a look at [Remora.Discord](https://github.com/Remora/Remora.Discord/tree/main/Backend/Remora.Discord.Rest/Extensions) or [osu!](https://github.com/ppy/osu/tree/master/osu.Game/Extensions) 3) Having all extension methods in one file makes it hard to find the method you want
32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using Remora.Rest.Core;
|
|
|
|
namespace Octobot.Extensions;
|
|
|
|
public static class SnowflakeExtensions
|
|
{
|
|
/// <summary>
|
|
/// Checks whether this Snowflake has any value set.
|
|
/// </summary>
|
|
/// <param name="snowflake">The Snowflake to check.</param>
|
|
/// <returns>true if the Snowflake has no value set or it's set to 0, false otherwise.</returns>
|
|
public static bool Empty(this Snowflake snowflake)
|
|
{
|
|
return snowflake.Value is 0;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Checks whether this snowflake is empty (see <see cref="Empty" />) or it's equal to
|
|
/// <paramref name="anotherSnowflake" />
|
|
/// </summary>
|
|
/// <param name="snowflake">The Snowflake to check for emptiness</param>
|
|
/// <param name="anotherSnowflake">The Snowflake to check for equality with <paramref name="snowflake" />.</param>
|
|
/// <returns>
|
|
/// true if <paramref name="snowflake" /> is empty or is equal to <paramref name="anotherSnowflake" />, false
|
|
/// otherwise.
|
|
/// </returns>
|
|
/// <seealso cref="Empty" />
|
|
public static bool EmptyOrEqualTo(this Snowflake snowflake, Snowflake anotherSnowflake)
|
|
{
|
|
return snowflake.Empty() || snowflake == anotherSnowflake;
|
|
}
|
|
}
|