summaryrefslogtreecommitdiffstats
path: root/source/core
diff options
context:
space:
mode:
Diffstat (limited to 'source/core')
-rw-r--r--source/core/slang-string.cpp17
-rw-r--r--source/core/slang-string.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/source/core/slang-string.cpp b/source/core/slang-string.cpp
index 648249b2c..28acde6ac 100644
--- a/source/core/slang-string.cpp
+++ b/source/core/slang-string.cpp
@@ -45,6 +45,23 @@ namespace Slang
// UnownedStringSlice
+ bool UnownedStringSlice::startsWith(UnownedStringSlice const& other) const
+ {
+ UInt thisSize = size();
+ UInt otherSize = other.size();
+
+ if (otherSize > thisSize)
+ return false;
+
+ return UnownedStringSlice(begin(), begin() + otherSize) == other;
+ }
+
+ bool UnownedStringSlice::startsWith(char const* str) const
+ {
+ return startsWith(UnownedTerminatedStringSlice(str));
+ }
+
+
bool UnownedStringSlice::endsWith(UnownedStringSlice const& other) const
{
UInt thisSize = size();
diff --git a/source/core/slang-string.h b/source/core/slang-string.h
index 435e2b29b..5a20d8b75 100644
--- a/source/core/slang-string.h
+++ b/source/core/slang-string.h
@@ -133,6 +133,8 @@ namespace Slang
return !(*this == other);
}
+ bool startsWith(UnownedStringSlice const& other) const;
+ bool startsWith(char const* str) const;
bool endsWith(UnownedStringSlice const& other) const;
bool endsWith(char const* str) const;