summaryrefslogtreecommitdiff
path: root/src/string.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/string.hh')
-rw-r--r--src/string.hh13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/string.hh b/src/string.hh
index 91df1b98..8cbd7a68 100644
--- a/src/string.hh
+++ b/src/string.hh
@@ -235,6 +235,19 @@ std::vector<StringView> split(StringView str, char separator);
String escape(StringView str, StringView characters, char escape);
String unescape(StringView str, StringView characters, char escape);
+template<typename Container>
+String join(const Container& container, char joiner)
+{
+ String res;
+ for (const auto& str : container)
+ {
+ if (not res.empty())
+ res += joiner;
+ res += escape(str, joiner, '\\');
+ }
+ return res;
+}
+
inline String operator"" _str(const char* str, size_t)
{
return String(str);