From ca80353efedc0ececa0f68da74f75c3fdb1f1f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kleines=20Filmr=C3=B6llchen?= Date: Sun, 11 Dec 2022 14:31:41 +0100 Subject: [PATCH] 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. --- AK/String.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/AK/String.h b/AK/String.h index 1df4edac92..01c4c3cc1b 100644 --- a/AK/String.h +++ b/AK/String.h @@ -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