#ifndef MOJO_PUBLIC_CPP_BINDINGS_LIB_WTF_HASH_UTIL_H_
#define MOJO_PUBLIC_CPP_BINDINGS_LIB_WTF_HASH_UTIL_H_
#include <type_traits>
#include "mojo/public/cpp/bindings/lib/hash_util.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "third_party/blink/renderer/platform/wtf/hash_functions.h"
#include "third_party/blink/renderer/platform/wtf/text/string_hash.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
namespace mojo {
namespace internal {
template <typename T>
size_t WTFHashCombine(size_t seed, const T& value) { … }
template <typename T, bool has_hash_method = HasHashMethod<T>::value>
struct WTFHashTraits;
template <typename T>
size_t WTFHash(size_t seed, const T& value);
WTFHashTraits<T, true>;
WTFHashTraits<T, false>;
template <>
struct WTFHashTraits<WTF::String, false> { … };
template <typename T>
size_t WTFHash(size_t seed, const T& value) { … }
}
}
namespace WTF {
HashTraits<mojo::StructPtr<T>>;
HashTraits<mojo::InlinedStructPtr<T>>;
}
#endif