1
0
mirror of https://github.com/SerenityOS/serenity synced 2024-07-09 09:20:46 +00:00

AK: Add StringBuilder::try_join()

This is a failable version of StringBuilder::join().
This commit is contained in:
MacDue 2023-01-14 00:08:18 +00:00 committed by Andreas Kling
parent 0c688fa117
commit 2366265c53

View File

@ -78,15 +78,21 @@ public:
template<class SeparatorType, class CollectionType>
void join(SeparatorType const& separator, CollectionType const& collection, StringView fmtstr = "{}"sv)
{
MUST(try_join(separator, collection, fmtstr));
}
template<class SeparatorType, class CollectionType>
ErrorOr<void> try_join(SeparatorType const& separator, CollectionType const& collection, StringView fmtstr = "{}"sv)
{
bool first = true;
for (auto& item : collection) {
if (first)
first = false;
else
append(separator);
appendff(fmtstr, item);
if (!first)
TRY(try_append(separator));
TRY(try_appendff(fmtstr, item));
first = false;
}
return {};
}
private: