diff options
Diffstat (limited to 'tools/aapt2/util/StringPiece.h')
-rw-r--r-- | tools/aapt2/util/StringPiece.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/aapt2/util/StringPiece.h b/tools/aapt2/util/StringPiece.h index f91bccc93019..f5c985bd9fff 100644 --- a/tools/aapt2/util/StringPiece.h +++ b/tools/aapt2/util/StringPiece.h @@ -19,6 +19,7 @@ #include <ostream> #include <string> +#include <utils/JenkinsHash.h> #include <utils/String8.h> #include <utils/Unicode.h> @@ -257,4 +258,17 @@ inline ::std::ostream& operator<<(::std::ostream& out, const std::u16string& str return out.write(utf8.string(), utf8.size()); } +namespace std { + +template <typename TChar> +struct hash<aapt::BasicStringPiece<TChar>> { + size_t operator()(const aapt::BasicStringPiece<TChar>& str) const { + uint32_t hashCode = android::JenkinsHashMixBytes( + 0, reinterpret_cast<const uint8_t*>(str.data()), sizeof(TChar) * str.size()); + return static_cast<size_t>(hashCode); + } +}; + +} // namespace std + #endif // AAPT_STRING_PIECE_H |