AK: Add StringView::hash()

This grabs the hash from the underlying StringImpl if there is one,
otherwise it's computed on the fly.
This commit is contained in:
Andreas Kling 2019-08-24 22:31:06 +02:00
parent bb32fd8bfa
commit d38bd3935b
Notes: sideshowbarker 2024-07-19 12:32:58 +09:00
2 changed files with 11 additions and 0 deletions

View file

@ -109,4 +109,13 @@ unsigned StringView::to_uint(bool& ok) const
return value; return value;
} }
unsigned StringView::hash() const
{
if (is_empty())
return 0;
if (m_impl)
return m_impl->hash();
return string_hash(characters_without_null_termination(), length());
}
} }

View file

@ -39,6 +39,8 @@ public:
int length() const { return m_length; } int length() const { return m_length; }
char operator[](int index) const { return m_characters[index]; } char operator[](int index) const { return m_characters[index]; }
unsigned hash() const;
StringView substring_view(int start, int length) const; StringView substring_view(int start, int length) const;
Vector<StringView> split_view(char) const; Vector<StringView> split_view(char) const;