AK: Unify FlyString/StringView::ends_with implementation on StringUtils::ends_with

This creates a unified implementation of ends_with with case sensitivity
across String/StringView/FlyString.
This commit is contained in:
Brian Gianforcaro 2020-05-26 03:21:34 -07:00 committed by Andreas Kling
parent 332f96e7ca
commit 129462cca7
4 changed files with 9 additions and 9 deletions

View file

@ -98,6 +98,11 @@ bool FlyString::equals_ignoring_case(const StringView& other) const
return StringUtils::equals_ignoring_case(view(), other);
}
bool FlyString::ends_with(const StringView& str, CaseSensitivity case_sensitivity) const
{
return StringUtils::ends_with(view(), str, case_sensitivity);
}
FlyString FlyString::to_lowercase() const
{
return String(*m_impl).to_lowercase();

View file

@ -85,6 +85,7 @@ public:
int to_int(bool& ok) const;
bool equals_ignoring_case(const StringView&) const;
bool ends_with(const StringView&, CaseSensitivity = CaseSensitivity::CaseSensitive) const;
static void did_destroy_impl(Badge<StringImpl>, StringImpl&);

View file

@ -141,15 +141,9 @@ bool StringView::ends_with(char ch) const
return ch == characters_without_null_termination()[length() - 1];
}
bool StringView::ends_with(const StringView& str) const
bool StringView::ends_with(const StringView& str, CaseSensitivity case_sensitivity) 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());
return StringUtils::ends_with(*this, str, case_sensitivity);
}
bool StringView::matches(const StringView& mask, CaseSensitivity case_sensitivity) const

View file

@ -73,7 +73,7 @@ public:
unsigned hash() const;
bool starts_with(const StringView&) const;
bool ends_with(const StringView&) const;
bool ends_with(const StringView&, CaseSensitivity = CaseSensitivity::CaseSensitive) const;
bool starts_with(char) const;
bool ends_with(char) const;
bool matches(const StringView& mask, CaseSensitivity = CaseSensitivity::CaseInsensitive) const;