summaryrefslogtreecommitdiffstats
path: root/source/core/slang-string-util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-string-util.cpp')
-rw-r--r--source/core/slang-string-util.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/source/core/slang-string-util.cpp b/source/core/slang-string-util.cpp
index 29e0dad5d..7de6846d5 100644
--- a/source/core/slang-string-util.cpp
+++ b/source/core/slang-string-util.cpp
@@ -35,10 +35,8 @@ namespace Slang {
return areAllEqual(slicesA, slicesB, equalFn);
}
-/* static */void StringUtil::split(const UnownedStringSlice& in, char splitChar, List<UnownedStringSlice>& outSlices)
+/* static */void StringUtil::appendSplit(const UnownedStringSlice& in, char splitChar, List<UnownedStringSlice>& outSlices)
{
- outSlices.clear();
-
const char* start = in.begin();
const char* end = in.end();
@@ -59,17 +57,15 @@ namespace Slang {
}
}
-/* static */void StringUtil::split(const UnownedStringSlice& in, const UnownedStringSlice& splitSlice, List<UnownedStringSlice>& outSlices)
+/* static */void StringUtil::appendSplit(const UnownedStringSlice& in, const UnownedStringSlice& splitSlice, List<UnownedStringSlice>& outSlices)
{
const Index splitLen = splitSlice.getLength();
if (splitLen == 1)
{
- return split(in, splitSlice[0], outSlices);
+ return appendSplit(in, splitSlice[0], outSlices);
}
- outSlices.clear();
-
SLANG_ASSERT(splitLen > 0);
if (splitLen <= 0)
{
@@ -96,7 +92,7 @@ namespace Slang {
cur++;
}
-
+
// Add to output
outSlices.add(UnownedStringSlice(start, cur));
@@ -105,6 +101,18 @@ namespace Slang {
}
}
+/* static */void StringUtil::split(const UnownedStringSlice& in, char splitChar, List<UnownedStringSlice>& outSlices)
+{
+ outSlices.clear();
+ appendSplit(in, splitChar, outSlices);
+}
+
+/* static */void StringUtil::split(const UnownedStringSlice& in, const UnownedStringSlice& splitSlice, List<UnownedStringSlice>& outSlices)
+{
+ outSlices.clear();
+ appendSplit(in, splitSlice, outSlices);
+}
+
/* static */Index StringUtil::split(const UnownedStringSlice& in, char splitChar, Index maxSlices, UnownedStringSlice* outSlices)
{
Index index = 0;