1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 04:44:59 +00:00

AK: Make FlyString-to-FlyString comparison inline & trivial

This should never boil down to more than a machine word comparison.
This commit is contained in:
Andreas Kling 2024-03-13 11:42:36 +01:00
parent bc23c5b9fe
commit d125a76f85
3 changed files with 4 additions and 6 deletions

View file

@ -89,11 +89,6 @@ StringView FlyString::bytes_as_string_view() const
return m_data.bytes(); return m_data.bytes();
} }
bool FlyString::operator==(FlyString const& other) const
{
return m_data == other.m_data;
}
bool FlyString::operator==(String const& other) const bool FlyString::operator==(String const& other) const
{ {
return m_data == other; return m_data == other;

View file

@ -41,7 +41,7 @@ public:
[[nodiscard]] ReadonlyBytes bytes() const; [[nodiscard]] ReadonlyBytes bytes() const;
[[nodiscard]] StringView bytes_as_string_view() const; [[nodiscard]] StringView bytes_as_string_view() const;
[[nodiscard]] bool operator==(FlyString const& other) const; [[nodiscard]] ALWAYS_INLINE bool operator==(FlyString const& other) const { return m_data.raw({}) == other.m_data.raw({}); }
[[nodiscard]] bool operator==(String const&) const; [[nodiscard]] bool operator==(String const&) const;
[[nodiscard]] bool operator==(StringView) const; [[nodiscard]] bool operator==(StringView) const;
[[nodiscard]] bool operator==(char const*) const; [[nodiscard]] bool operator==(char const*) const;

View file

@ -6,6 +6,7 @@
#pragma once #pragma once
#include <AK/Badge.h>
#include <AK/Endian.h> #include <AK/Endian.h>
#include <AK/Forward.h> #include <AK/Forward.h>
@ -70,6 +71,8 @@ public:
void did_create_fly_string(Badge<FlyString>) const; void did_create_fly_string(Badge<FlyString>) const;
[[nodiscard]] ALWAYS_INLINE FlatPtr raw(Badge<FlyString>) const { return bit_cast<FlatPtr>(m_data); }
protected: protected:
template<typename Func> template<typename Func>
ErrorOr<void> replace_with_new_string(size_t byte_count, Func&& callback) ErrorOr<void> replace_with_new_string(size_t byte_count, Func&& callback)