Skip to content

Commit

Permalink
AK: Add StringView::ends_with function
Browse files Browse the repository at this point in the history
  • Loading branch information
shannonbooth authored and awesomekling committed Dec 29, 2019
1 parent 27df4eb commit 24bc674
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 0 deletions.
11 changes: 11 additions & 0 deletions AK/StringView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,17 @@ bool StringView::starts_with(const StringView& str) const
return !memcmp(characters_without_null_termination(), str.characters_without_null_termination(), str.length());
}

bool StringView::ends_with(const StringView& str) const
{
if (str.is_empty())
return true;
if (is_empty())
return false;
if (str.length() > length())
return false;
return !memcmp(characters_without_null_termination() + length() - str.length(), str.characters_without_null_termination(), str.length());
}

StringView StringView::substring_view(size_t start, size_t length) const
{
if (!length)
Expand Down
1 change: 1 addition & 0 deletions AK/StringView.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class StringView {
unsigned hash() const;

bool starts_with(const StringView&) const;
bool ends_with(const StringView&) const;

StringView substring_view(size_t start, size_t length) const;
Vector<StringView> split_view(char, bool keep_empty = false) const;
Expand Down
10 changes: 10 additions & 0 deletions AK/Tests/TestStringView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ TEST_CASE(starts_with)
EXPECT(!test_string_view.starts_with("DEF"));
}

TEST_CASE(ends_with)
{
String test_string = "ABCDEF";
StringView test_string_view = test_string.view();
EXPECT(test_string_view.ends_with("DEF"));
EXPECT(test_string_view.ends_with("ABCDEF"));
EXPECT(!test_string_view.ends_with("ABCDE"));
EXPECT(!test_string_view.ends_with("ABCDEFG"));
}

TEST_CASE(lines)
{
String test_string = "a\nb\r\nc\rd";
Expand Down

0 comments on commit 24bc674

Please sign in to comment.