mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 04:54:58 +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:
parent
bc23c5b9fe
commit
d125a76f85
3 changed files with 4 additions and 6 deletions
|
@ -89,11 +89,6 @@ StringView FlyString::bytes_as_string_view() const
|
|||
return m_data.bytes();
|
||||
}
|
||||
|
||||
bool FlyString::operator==(FlyString const& other) const
|
||||
{
|
||||
return m_data == other.m_data;
|
||||
}
|
||||
|
||||
bool FlyString::operator==(String const& other) const
|
||||
{
|
||||
return m_data == other;
|
||||
|
|
|
@ -41,7 +41,7 @@ public:
|
|||
[[nodiscard]] ReadonlyBytes bytes() 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==(StringView) const;
|
||||
[[nodiscard]] bool operator==(char const*) const;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <AK/Badge.h>
|
||||
#include <AK/Endian.h>
|
||||
#include <AK/Forward.h>
|
||||
|
||||
|
@ -70,6 +71,8 @@ public:
|
|||
|
||||
void did_create_fly_string(Badge<FlyString>) const;
|
||||
|
||||
[[nodiscard]] ALWAYS_INLINE FlatPtr raw(Badge<FlyString>) const { return bit_cast<FlatPtr>(m_data); }
|
||||
|
||||
protected:
|
||||
template<typename Func>
|
||||
ErrorOr<void> replace_with_new_string(size_t byte_count, Func&& callback)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue