TeamCity.MSBuild.Logger/ComparerContextNodeIdTargetId.cs (21 lines of code) (raw):
namespace TeamCity.MSBuild.Logger
{
using System.Collections.Generic;
using Microsoft.Build.Framework;
internal class ComparerContextNodeIdTargetId : IEqualityComparer<BuildEventContext>
{
public static readonly IEqualityComparer<BuildEventContext> Shared = new ComparerContextNodeIdTargetId();
public bool Equals(BuildEventContext x, BuildEventContext y)
{
if (x == null || y == null || x.NodeId != y.NodeId || x.ProjectContextId != y.ProjectContextId)
{
return false;
}
return x.TargetId == y.TargetId;
}
public int GetHashCode(BuildEventContext x)
{
return x.ProjectContextId + (x.NodeId << 24);
}
}
}