Cogs.Core
StringUtilities.cpp
1
2#include "StringUtilities.h"
3
4namespace Cogs
5{
6 std::string stringConcatenate(std::initializer_list<std::string_view> strList)
7 {
8 size_t length = 0;
9 for (const std::string_view& s : strList) {
10 length += s.size();
11 }
12
13 std::string ret;
14 ret.reserve(length + 1);
15 for (const std::string_view& s : strList) {
16 ret.append(s);
17 }
18
19 return ret;
20 }
21
22 std::string stringJoin(std::string_view separator, std::initializer_list<std::string_view> strList)
23 {
24 size_t length = strList.size() > 0 ? (strList.size() - 1u) * separator.size() : 0u;
25 for (const std::string_view& s : strList) {
26 length += s.size();
27 }
28
29 std::string ret;
30 ret.reserve(length + 1);
31 bool first = true;
32 for (const std::string_view& s : strList) {
33 if (!first) {
34 ret.append(separator);
35 }
36
37 first = false;
38 ret.append(s);
39 }
40 return ret;
41 }
42}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23