Browse Source

Remove specialized implementation, as per feedback

pull/929/head
Joe4evr 7 years ago
parent
commit
7a43cab45a
1 changed files with 1 additions and 25 deletions
  1. +1
    -25
      src/Discord.Net.Core/Utils/Comparers.cs

+ 1
- 25
src/Discord.Net.Core/Utils/Comparers.cs View File

@@ -10,7 +10,7 @@ namespace Discord
public static IEqualityComparer<IGuild> GuildComparer => _guildComparer ?? (_guildComparer = new EntityEqualityComparer<IGuild, ulong>()); public static IEqualityComparer<IGuild> GuildComparer => _guildComparer ?? (_guildComparer = new EntityEqualityComparer<IGuild, ulong>());
public static IEqualityComparer<IChannel> ChannelComparer => _channelComparer ?? (_channelComparer = new EntityEqualityComparer<IChannel, ulong>()); public static IEqualityComparer<IChannel> ChannelComparer => _channelComparer ?? (_channelComparer = new EntityEqualityComparer<IChannel, ulong>());
public static IEqualityComparer<IRole> RoleComparer => _roleComparer ?? (_roleComparer = new EntityEqualityComparer<IRole, ulong>()); public static IEqualityComparer<IRole> RoleComparer => _roleComparer ?? (_roleComparer = new EntityEqualityComparer<IRole, ulong>());
public static IEqualityComparer<IMessage> MessageComparer => _messageComparer ?? (_messageComparer = new MessageEqualityComparer());
public static IEqualityComparer<IMessage> MessageComparer => _messageComparer ?? (_messageComparer = new EntityEqualityComparer<IMessage, ulong>());


private static IEqualityComparer<IUser> _userComparer; private static IEqualityComparer<IUser> _userComparer;
private static IEqualityComparer<IGuild> _guildComparer; private static IEqualityComparer<IGuild> _guildComparer;
@@ -41,29 +41,5 @@ namespace Discord
return obj?.Id.GetHashCode() ?? 0; return obj?.Id.GetHashCode() ?? 0;
} }
} }

// Message IDs are allegedly not guaranteed to be globally unique forever,
// so they require a specialized implementation.
private sealed class MessageEqualityComparer : EqualityComparer<IMessage>
{
public override bool Equals(IMessage x, IMessage y)
{
bool xNull = x == null;
bool yNull = y == null;

if (xNull && yNull)
return true;

if (xNull ^ yNull)
return false;

return x.Channel.Id.Equals(y.Channel.Id) && x.Id.Equals(y.Id);
}

public override int GetHashCode(IMessage obj)
{
return obj?.Id.GetHashCode() ?? 0;
}
}
} }
} }

Loading…
Cancel
Save