1 #include <mbgl/tile/tile_id.hpp> 2 3 #include <boost/functional/hash.hpp> 4 5 namespace std { 6 operator ()(const mbgl::CanonicalTileID & id) const7size_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) const15size_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) const22size_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