|
@@ -11,29 +11,23 @@ namespace Discord |
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare users. |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare users. |
|
|
/// </summary> |
|
|
/// </summary> |
|
|
public static IEqualityComparer<IUser> UserComparer => _userComparer ??= new EntityEqualityComparer<IUser, ulong>(); |
|
|
|
|
|
|
|
|
public static IEqualityComparer<IUser> UserComparer { get; } = new EntityEqualityComparer<IUser, ulong>(); |
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare guilds. |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare guilds. |
|
|
/// </summary> |
|
|
/// </summary> |
|
|
public static IEqualityComparer<IGuild> GuildComparer => _guildComparer ??= new EntityEqualityComparer<IGuild, ulong>(); |
|
|
|
|
|
|
|
|
public static IEqualityComparer<IGuild> GuildComparer { get; } = new EntityEqualityComparer<IGuild, ulong>(); |
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare channels. |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare channels. |
|
|
/// </summary> |
|
|
/// </summary> |
|
|
public static IEqualityComparer<IChannel> ChannelComparer => _channelComparer ??= new EntityEqualityComparer<IChannel, ulong>(); |
|
|
|
|
|
|
|
|
public static IEqualityComparer<IChannel> ChannelComparer { get; } = new EntityEqualityComparer<IChannel, ulong>(); |
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare roles. |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare roles. |
|
|
/// </summary> |
|
|
/// </summary> |
|
|
public static IEqualityComparer<IRole> RoleComparer => _roleComparer ??= new EntityEqualityComparer<IRole, ulong>(); |
|
|
|
|
|
|
|
|
public static IEqualityComparer<IRole> RoleComparer { get; } = new EntityEqualityComparer<IRole, ulong>(); |
|
|
/// <summary> |
|
|
/// <summary> |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare messages. |
|
|
/// Gets an <see cref="IEqualityComparer{T}"/> to be used to compare messages. |
|
|
/// </summary> |
|
|
/// </summary> |
|
|
public static IEqualityComparer<IMessage> MessageComparer => _messageComparer ??= new EntityEqualityComparer<IMessage, ulong>(); |
|
|
|
|
|
|
|
|
|
|
|
private static IEqualityComparer<IUser> _userComparer; |
|
|
|
|
|
private static IEqualityComparer<IGuild> _guildComparer; |
|
|
|
|
|
private static IEqualityComparer<IChannel> _channelComparer; |
|
|
|
|
|
private static IEqualityComparer<IRole> _roleComparer; |
|
|
|
|
|
private static IEqualityComparer<IMessage> _messageComparer; |
|
|
|
|
|
|
|
|
public static IEqualityComparer<IMessage> MessageComparer { get; } = new EntityEqualityComparer<IMessage, ulong>(); |
|
|
|
|
|
|
|
|
private sealed class EntityEqualityComparer<TEntity, TId> : EqualityComparer<TEntity> |
|
|
private sealed class EntityEqualityComparer<TEntity, TId> : EqualityComparer<TEntity> |
|
|
where TEntity : IEntity<TId> |
|
|
where TEntity : IEntity<TId> |
|
@@ -46,7 +40,7 @@ namespace Discord |
|
|
(null, null) => true, |
|
|
(null, null) => true, |
|
|
(null, _) => false, |
|
|
(null, _) => false, |
|
|
(_, null) => false, |
|
|
(_, null) => false, |
|
|
var (l, r) => l.Id.Equals(r.Id) |
|
|
|
|
|
|
|
|
_ => x.Id.Equals(y.Id) |
|
|
}; |
|
|
}; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|