From f172e8f17c883dc54e1ac1b5924f2cb83fc343b6 Mon Sep 17 00:00:00 2001 From: Benjamin Paassen Date: Fri, 23 Jan 2015 13:31:53 +0100 Subject: added equals operator to RangeSet and Range. --- src/core/RangeSet.hpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/core') diff --git a/src/core/RangeSet.hpp b/src/core/RangeSet.hpp index 2c138dc..b196dec 100644 --- a/src/core/RangeSet.hpp +++ b/src/core/RangeSet.hpp @@ -169,6 +169,16 @@ struct Range { { return Range(from, std::numeric_limits::max()); } + + friend bool operator==(const Range &lhs, const Range &rhs) + { + return lhs.start == rhs.start && lhs.end == rhs.end; + } + + friend bool operator!=(const Range &lhs, const Range &rhs) + { + return !(lhs == rhs); + } }; /** @@ -341,6 +351,28 @@ public: { return this->ranges; } + + friend bool operator==(const RangeSet &lhs, const RangeSet &rhs) + { + if (lhs.ranges.size() != rhs.ranges.size()) { + return false; + } + auto leftIt = lhs.ranges.begin(); + auto rightIt = rhs.ranges.begin(); + while (leftIt != lhs.ranges.end()) { + if (*leftIt != *rightIt) { + return false; + } + leftIt++; + rightIt++; + } + return true; + } + + friend bool operator!=(const RangeSet &lhs, const RangeSet &rhs) + { + return !(lhs == rhs); + } }; } -- cgit v1.2.3