1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 08:24:58 +00:00

AK+Everywhere: Turn bool keep_empty to an enum in split* functions

This commit is contained in:
demostanis 2022-10-22 15:38:21 +02:00 committed by Linus Groh
parent f485db2501
commit 3e8b5ac920
44 changed files with 96 additions and 81 deletions

View file

@ -97,18 +97,19 @@ StringView String::substring_view(size_t start) const
return { characters() + start, length() - start };
}
Vector<String> String::split(char separator, bool keep_empty) const
Vector<String> String::split(char separator, SplitBehavior split_behavior) const
{
return split_limit(separator, 0, keep_empty);
return split_limit(separator, 0, split_behavior);
}
Vector<String> String::split_limit(char separator, size_t limit, bool keep_empty) const
Vector<String> String::split_limit(char separator, size_t limit, SplitBehavior split_behavior) const
{
if (is_empty())
return {};
Vector<String> v;
size_t substart = 0;
bool keep_empty = has_flag(split_behavior, SplitBehavior::KeepEmpty);
for (size_t i = 0; i < length() && (v.size() + 1) != limit; ++i) {
char ch = characters()[i];
if (ch == separator) {
@ -124,13 +125,14 @@ Vector<String> String::split_limit(char separator, size_t limit, bool keep_empty
return v;
}
Vector<StringView> String::split_view(Function<bool(char)> separator, bool keep_empty) const
Vector<StringView> String::split_view(Function<bool(char)> separator, SplitBehavior split_behavior) const
{
if (is_empty())
return {};
Vector<StringView> v;
size_t substart = 0;
bool keep_empty = has_flag(split_behavior, SplitBehavior::KeepEmpty);
for (size_t i = 0; i < length(); ++i) {
char ch = characters()[i];
if (separator(ch)) {
@ -146,9 +148,9 @@ Vector<StringView> String::split_view(Function<bool(char)> separator, bool keep_
return v;
}
Vector<StringView> String::split_view(char const separator, bool keep_empty) const
Vector<StringView> String::split_view(char const separator, SplitBehavior split_behavior) const
{
return split_view([separator](char ch) { return ch == separator; }, keep_empty);
return split_view([separator](char ch) { return ch == separator; }, split_behavior);
}
ByteBuffer String::to_byte_buffer() const