mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:47:45 +00:00
AK: Add String::hash()
This commit is contained in:
parent
39546303da
commit
ab9e6166e8
1 changed files with 12 additions and 3 deletions
15
AK/String.h
15
AK/String.h
|
@ -181,6 +181,13 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 hash() const
|
||||||
|
{
|
||||||
|
if (!m_impl)
|
||||||
|
return 0;
|
||||||
|
return m_impl->hash();
|
||||||
|
}
|
||||||
|
|
||||||
ByteBuffer to_byte_buffer() const;
|
ByteBuffer to_byte_buffer() const;
|
||||||
|
|
||||||
template<typename BufferType>
|
template<typename BufferType>
|
||||||
|
@ -205,7 +212,10 @@ public:
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
StringView view() const { return { characters(), length() }; }
|
StringView view() const
|
||||||
|
{
|
||||||
|
return { characters(), length() };
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool match_helper(const StringView& mask) const;
|
bool match_helper(const StringView& mask) const;
|
||||||
|
@ -234,7 +244,6 @@ struct Traits<String> : public GenericTraits<String> {
|
||||||
struct CaseInsensitiveStringTraits : public AK::Traits<String> {
|
struct CaseInsensitiveStringTraits : public AK::Traits<String> {
|
||||||
static unsigned hash(const String& s) { return s.impl() ? s.to_lowercase().impl()->hash() : 0; }
|
static unsigned hash(const String& s) { return s.impl() ? s.to_lowercase().impl()->hash() : 0; }
|
||||||
static bool equals(const String& a, const String& b) { return a.to_lowercase() == b.to_lowercase(); }
|
static bool equals(const String& a, const String& b) { return a.to_lowercase() == b.to_lowercase(); }
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline bool operator<(const char* characters, const String& string)
|
inline bool operator<(const char* characters, const String& string)
|
||||||
|
@ -271,5 +280,5 @@ inline bool operator<=(const char* characters, const String& string)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using AK::String;
|
|
||||||
using AK::CaseInsensitiveStringTraits;
|
using AK::CaseInsensitiveStringTraits;
|
||||||
|
using AK::String;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue