Makes hint Equatable and Printable for tests

This commit is contained in:
Daniel J. Hofmann 2016-03-15 13:59:19 +01:00 committed by Patrick Niklaus
parent b6b59e5c08
commit 3c5f6bd8ac
2 changed files with 16 additions and 1 deletions

View File

@ -34,6 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <string>
#include <cstdint>
#include <iosfwd>
namespace osrm
{
@ -57,6 +58,9 @@ struct Hint
std::string ToBase64() const;
static Hint FromBase64(const std::string &base64Hint);
friend bool operator==(const Hint &, const Hint &);
friend std::ostream &operator<<(std::ostream &, const Hint &);
};
#ifndef _MSC_VER

View File

@ -6,6 +6,8 @@
#include <iterator>
#include <algorithm>
#include <ostream>
#include <tuple>
namespace osrm
{
@ -45,5 +47,14 @@ Hint Hint::FromBase64(const std::string &base64Hint)
return decodeBase64Bytewise<Hint>(encoded);
}
bool operator==(const Hint &lhs, const Hint &rhs)
{
return std::tie(lhs.phantom, lhs.data_checksum) ==
std::tie(rhs.phantom, rhs.data_checksum);
}
}
std::ostream &operator<<(std::ostream &out, const Hint &hint) { return out << hint.ToBase64(); }
} // ns engine
} // ns osrm