1 #include <mbgl/tile/tile_id.hpp>
2 
3 #include <boost/functional/hash.hpp>
4 
5 namespace std {
6 
operator ()(const mbgl::CanonicalTileID & id) const7 size_t hash<mbgl::CanonicalTileID>::operator()(const mbgl::CanonicalTileID& id) const {
8     std::size_t seed = 0;
9     boost::hash_combine(seed, id.x);
10     boost::hash_combine(seed, id.y);
11     boost::hash_combine(seed, id.z);
12     return seed;
13 }
14 
operator ()(const mbgl::UnwrappedTileID & id) const15 size_t hash<mbgl::UnwrappedTileID>::operator()(const mbgl::UnwrappedTileID& id) const {
16     std::size_t seed = 0;
17     boost::hash_combine(seed, std::hash<mbgl::CanonicalTileID>{}(id.canonical));
18     boost::hash_combine(seed, id.wrap);
19     return seed;
20 }
21 
operator ()(const mbgl::OverscaledTileID & id) const22 size_t hash<mbgl::OverscaledTileID>::operator()(const mbgl::OverscaledTileID& id) const {
23     std::size_t seed = 0;
24     boost::hash_combine(seed, std::hash<mbgl::CanonicalTileID>{}(id.canonical));
25     boost::hash_combine(seed, id.overscaledZ);
26     return seed;
27 }
28 
29 } // namespace std
30