private static int CompareBuildVersions(Maybe <string> leftVersion, Maybe <string> rightVersion) { if (leftVersion.None && rightVersion.None) { return(0); // equal if both absent } if (leftVersion.Any() && rightVersion.None) { return(1); } if (leftVersion.None && rightVersion.Any()) { return(-1); } int result = CompareSegmentBySegment(leftVersion.Single(), rightVersion.Single()); return(result); }
private static int ComparePrereleaseVersions(Maybe <string> leftVersion, Maybe <string> rightVersion) { // If the prerelease segment is absent in both instances, then they are considered equal. if (leftVersion.None && rightVersion.None) { return(0); } // By definition, a prerelease version is less than the absence of a prerelease version - this is a bit counterintuitive. if (leftVersion.Any() && rightVersion.None) { return(-1); } if (leftVersion.None && rightVersion.Any()) { return(1); } int result = CompareSegmentBySegment(leftVersion.Single(), rightVersion.Single()); return(result); }
private int MaybeHashCode(Maybe <string> item) { return(item.Any() ? item.Single().GetHashCode() : string.Empty.GetHashCode()); }