aboutsummaryrefslogtreecommitdiff
path: root/include/StringView.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/StringView.hpp')
-rw-r--r--include/StringView.hpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/StringView.hpp b/include/StringView.hpp
index 45d0f5b..c4e7ce3 100644
--- a/include/StringView.hpp
+++ b/include/StringView.hpp
@@ -68,6 +68,24 @@ namespace dchat
return data[index];
}
+ // Returns -1 if substr not found.
+ // TODO: Make this more efficient
+ usize find(const BasicStringView<CharType> &substr, usize offset = 0) const
+ {
+ if(substr.size == 0)
+ return -1;
+
+ if(offset + substr.size > size)
+ return -1;
+
+ for(usize i = offset; i < size - (substr.size - 1); ++i)
+ {
+ if(memcmp(data + i, substr.data, substr.size) == 0)
+ return i;
+ }
+ return -1;
+ }
+
const CharType *data;
usize size;
};