Utils: Add startWith to string view

We will add more function if they are needed.

Change-Id: Iac6b432327be32a0778a82c23ed2de5996c555a1
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2017-07-31 17:27:46 +02:00
parent 19e0159661
commit daa3aad651
2 changed files with 26 additions and 0 deletions

View File

@@ -116,6 +116,19 @@ public:
return std::string(data(), size());
}
bool startsWith(SmallStringView subStringToSearch) const noexcept
{
if (size() >= subStringToSearch.size())
return !std::memcmp(m_pointer, subStringToSearch.data(), subStringToSearch.size());
return false;
}
bool startsWith(char characterToSearch) const noexcept
{
return m_pointer[0] == characterToSearch;
}
private:
const char *m_pointer;
size_type m_size;

View File

@@ -866,6 +866,19 @@ TEST(SmallString, StartsWith)
{
SmallString text("$column");
ASSERT_FALSE(text.startsWith("$columnxxx"));
ASSERT_TRUE(text.startsWith("$column"));
ASSERT_TRUE(text.startsWith("$col"));
ASSERT_FALSE(text.startsWith("col"));
ASSERT_TRUE(text.startsWith('$'));
ASSERT_FALSE(text.startsWith('@'));
}
TEST(SmallString, StartsWithStringView)
{
SmallStringView text("$column");
ASSERT_FALSE(text.startsWith("$columnxxx"));
ASSERT_TRUE(text.startsWith("$column"));
ASSERT_TRUE(text.startsWith("$col"));
ASSERT_FALSE(text.startsWith("col"));