mirror of
https://github.com/RGBCube/serenity
synced 2025-07-28 15:27:34 +00:00
Take StringView in more places
We should work towards a pattern where we take StringView as function arguments, and store String as member, to push the String construction to the last possible moment.
This commit is contained in:
parent
b55b6cd7fc
commit
7bce096afd
14 changed files with 28 additions and 36 deletions
|
@ -87,7 +87,7 @@ public:
|
|||
};
|
||||
|
||||
static String repeated(char, int count);
|
||||
bool matches(const String& pattern, CaseSensitivity = CaseSensitivity::CaseInsensitive) const;
|
||||
bool matches(const StringView& pattern, CaseSensitivity = CaseSensitivity::CaseInsensitive) const;
|
||||
|
||||
int to_int(bool& ok) const;
|
||||
unsigned to_uint(bool& ok) const;
|
||||
|
@ -122,7 +122,7 @@ public:
|
|||
return (*m_impl)[i];
|
||||
}
|
||||
|
||||
bool ends_with(const String&) const;
|
||||
bool ends_with(const StringView&) const;
|
||||
|
||||
bool operator==(const String&) const;
|
||||
bool operator!=(const String& other) const { return !(*this == other); }
|
||||
|
@ -166,7 +166,7 @@ public:
|
|||
StringView view() const { return { characters(), length() }; }
|
||||
|
||||
private:
|
||||
bool match_helper(const String& mask) const;
|
||||
bool match_helper(const StringView& mask) const;
|
||||
RetainPtr<StringImpl> m_impl;
|
||||
};
|
||||
|
||||
|
|
|
@ -36,15 +36,7 @@ public:
|
|||
m_buffer[m_offset++] = (byte)(value >> 24) & 0xffu;
|
||||
}
|
||||
|
||||
void operator<<(const char* str)
|
||||
{
|
||||
ssize_t len = strlen(str);
|
||||
ASSERT(len >= 0);
|
||||
for (ssize_t i = 0; i < len; ++i)
|
||||
m_buffer[m_offset++] = str[i];
|
||||
}
|
||||
|
||||
void operator<<(const String& value)
|
||||
void operator<<(const StringView& value)
|
||||
{
|
||||
for (ssize_t i = 0; i < value.length(); ++i)
|
||||
m_buffer[m_offset++] = value[i];
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
namespace AK {
|
||||
|
||||
FileSystemPath::FileSystemPath(const String& s)
|
||||
FileSystemPath::FileSystemPath(const StringView& s)
|
||||
: m_string(s)
|
||||
{
|
||||
m_is_valid = canonicalize();
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace AK {
|
|||
class FileSystemPath {
|
||||
public:
|
||||
FileSystemPath() {}
|
||||
explicit FileSystemPath(const String&);
|
||||
explicit FileSystemPath(const StringView&);
|
||||
|
||||
bool is_valid() const { return m_is_valid; }
|
||||
String string() const { return m_string; }
|
||||
|
|
|
@ -175,7 +175,7 @@ String String::format(const char* fmt, ...)
|
|||
return builder.to_string();
|
||||
}
|
||||
|
||||
bool String::ends_with(const String& str) const
|
||||
bool String::ends_with(const StringView& str) const
|
||||
{
|
||||
if (str.is_empty())
|
||||
return true;
|
||||
|
@ -196,20 +196,20 @@ String String::repeated(char ch, int count)
|
|||
return *impl;
|
||||
}
|
||||
|
||||
bool String::matches(const String& mask, CaseSensitivity case_sensitivity) const
|
||||
bool String::matches(const StringView& mask, CaseSensitivity case_sensitivity) const
|
||||
{
|
||||
if (case_sensitivity == CaseSensitivity::CaseInsensitive) {
|
||||
String this_lower = this->to_lowercase();
|
||||
String mask_lower = mask.to_lowercase();
|
||||
String mask_lower = String(mask).to_lowercase();
|
||||
return this_lower.match_helper(mask_lower);
|
||||
}
|
||||
|
||||
return match_helper(mask);
|
||||
}
|
||||
|
||||
bool String::match_helper(const String& mask) const
|
||||
bool String::match_helper(const StringView& mask) const
|
||||
{
|
||||
if (is_null() || mask.is_null())
|
||||
if (is_null())
|
||||
return false;
|
||||
|
||||
const char* string_ptr = characters();
|
||||
|
|
|
@ -16,7 +16,7 @@ StringBuilder::StringBuilder(ssize_t initial_capacity)
|
|||
m_buffer.grow(initial_capacity);
|
||||
}
|
||||
|
||||
void StringBuilder::append(const String& str)
|
||||
void StringBuilder::append(const StringView& str)
|
||||
{
|
||||
if (str.is_empty())
|
||||
return;
|
||||
|
|
|
@ -11,7 +11,7 @@ public:
|
|||
explicit StringBuilder(ssize_t initial_capacity = 16);
|
||||
~StringBuilder() {}
|
||||
|
||||
void append(const String&);
|
||||
void append(const StringView&);
|
||||
void append(char);
|
||||
void append(const char*, ssize_t);
|
||||
void appendf(const char*, ...);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue