diff --git a/AK/Utf8View.cpp b/AK/Utf8View.cpp index 90b56be2a59..b7bdbd43bc1 100644 --- a/AK/Utf8View.cpp +++ b/AK/Utf8View.cpp @@ -132,6 +132,16 @@ bool Utf8View::validate() const return true; } +size_t Utf8View::length_in_codepoints() const +{ + size_t length = 0; + for (auto codepoint : *this) { + (void)codepoint; + ++length; + } + return length; +} + Utf8CodepointIterator::Utf8CodepointIterator(const unsigned char* ptr, int length) : m_ptr(ptr) , m_length(length) diff --git a/AK/Utf8View.h b/AK/Utf8View.h index 1a4a26ae094..5946a6f5e51 100644 --- a/AK/Utf8View.h +++ b/AK/Utf8View.h @@ -72,6 +72,8 @@ public: bool validate() const; + size_t length_in_codepoints() const; + private: const unsigned char* begin_ptr() const; const unsigned char* end_ptr() const;