AK: Add comparison operator

s p a c e s h i p  o p e r a t o r

Comparing UTF-8 can be done by simple byte lexicographic comparison per
definition, so we just piggy-back on StringView's high-performance
comparator.
This commit is contained in:
kleines Filmröllchen 2022-12-11 14:31:41 +01:00 committed by Linus Groh
parent ad6a55e1f0
commit ca80353efe
Notes: sideshowbarker 2024-07-17 08:35:21 +09:00

View file

@ -73,6 +73,9 @@ public:
[[nodiscard]] bool operator==(char const* cstring) const;
[[nodiscard]] bool operator!=(char const* cstring) const { return !(*this == cstring); }
// NOTE: UTF-8 is defined in a way that lexicographic ordering of code points is equivalent to lexicographic ordering of bytes.
[[nodiscard]] int operator<=>(String const& other) const { return this->bytes_as_string_view().compare(other.bytes_as_string_view()); }
[[nodiscard]] u32 hash() const;
template<Arithmetic T>