| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| #include "CommonDataStructuresPch.h" |
| #include "DataStructures/Interval.h" |
| |
| namespace regex |
| { |
| bool Interval::Includes(int value) const |
| { |
| return (begin <= value) && (end >= value); |
| } |
| |
| bool Interval::Includes(Interval other) const |
| { |
| return (Includes(other.Begin()) && (Includes(other.End()))); |
| } |
| |
| int Interval::CompareTo(Interval other) |
| { |
| if (begin < other.begin) |
| { |
| return -1; |
| } |
| else if (begin == other.begin) |
| { |
| if (end < other.end) |
| { |
| return -1; |
| } |
| else if (end == other.end) |
| { |
| return 0; |
| } |
| else |
| { |
| return 1; |
| } |
| } |
| else |
| { |
| return 1; |
| } |
| } |
| |
| int Interval::Compare(Interval x, Interval y) |
| { |
| return x.CompareTo(y); |
| } |
| |
| bool Interval::Equals(Interval other) |
| { |
| return CompareTo(other) == 0; |
| } |
| |
| bool Interval::Equals(Interval x, Interval y) |
| { |
| return x.CompareTo(y) == 0; |
| } |
| |
| int Interval::GetHashCode() |
| { |
| return _rotl(begin, 7) ^ end; |
| } |
| |
| int Interval::GetHashCode(Interval item) |
| { |
| return item.GetHashCode(); |
| } |
| } |