AK: Add optional format string parameter to String{,Builder}::join()

Allow specifying a custom format string that's being used for each item
instead of hardcoding "{}".
This commit is contained in:
Linus Groh 2022-02-22 21:31:05 +00:00
parent f8ff8c8dd6
commit b253bca807
Notes: sideshowbarker 2024-07-17 18:21:16 +09:00
2 changed files with 4 additions and 4 deletions

View file

@ -102,10 +102,10 @@ public:
[[nodiscard]] static String roman_number_from(size_t value); [[nodiscard]] static String roman_number_from(size_t value);
template<class SeparatorType, class CollectionType> template<class SeparatorType, class CollectionType>
[[nodiscard]] static String join(const SeparatorType& separator, const CollectionType& collection) [[nodiscard]] static String join(const SeparatorType& separator, const CollectionType& collection, StringView fmtstr = "{}"sv)
{ {
StringBuilder builder; StringBuilder builder;
builder.join(separator, collection); builder.join(separator, collection, fmtstr);
return builder.build(); return builder.build();
} }

View file

@ -70,7 +70,7 @@ public:
void trim(size_t count) { m_buffer.resize(m_buffer.size() - count); } void trim(size_t count) { m_buffer.resize(m_buffer.size() - count); }
template<class SeparatorType, class CollectionType> template<class SeparatorType, class CollectionType>
void join(SeparatorType const& separator, CollectionType const& collection) void join(SeparatorType const& separator, CollectionType const& collection, StringView fmtstr = "{}"sv)
{ {
bool first = true; bool first = true;
for (auto& item : collection) { for (auto& item : collection) {
@ -78,7 +78,7 @@ public:
first = false; first = false;
else else
append(separator); append(separator);
appendff("{}", item); appendff(fmtstr, item);
} }
} }