| @@ -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) | |||||
| }; | }; | ||||
| } | } | ||||