mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
AK: Add DeprecatedString::find_last(StringView)
This adds the the method DeprecatedString::find_last() as wrapper for StringUtils::find_last for the StringView type.
This commit is contained in:
parent
03107d4028
commit
9a2ee5a9dd
Notes:
sideshowbarker
2024-07-17 12:02:22 +09:00
Author: https://github.com/agustingianni Commit: https://github.com/SerenityOS/serenity/commit/9a2ee5a9dd Pull-request: https://github.com/SerenityOS/serenity/pull/16519 Reviewed-by: https://github.com/linusg
4 changed files with 14 additions and 2 deletions
|
@ -158,7 +158,7 @@ public:
|
||||||
[[nodiscard]] Optional<size_t> find(char needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
|
[[nodiscard]] Optional<size_t> find(char needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
|
||||||
[[nodiscard]] Optional<size_t> find(StringView needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
|
[[nodiscard]] Optional<size_t> find(StringView needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
|
||||||
[[nodiscard]] Optional<size_t> find_last(char needle) const { return StringUtils::find_last(*this, needle); }
|
[[nodiscard]] Optional<size_t> find_last(char needle) const { return StringUtils::find_last(*this, needle); }
|
||||||
// FIXME: Implement find_last(StringView) for API symmetry.
|
[[nodiscard]] Optional<size_t> find_last(StringView needle) const { return StringUtils::find_last(*this, needle); }
|
||||||
Vector<size_t> find_all(StringView needle) const;
|
Vector<size_t> find_all(StringView needle) const;
|
||||||
using SearchDirection = StringUtils::SearchDirection;
|
using SearchDirection = StringUtils::SearchDirection;
|
||||||
[[nodiscard]] Optional<size_t> find_any_of(StringView needles, SearchDirection direction) const { return StringUtils::find_any_of(*this, needles, direction); }
|
[[nodiscard]] Optional<size_t> find_any_of(StringView needles, SearchDirection direction) const { return StringUtils::find_any_of(*this, needles, direction); }
|
||||||
|
|
|
@ -405,6 +405,17 @@ Optional<size_t> find_last(StringView haystack, char needle)
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Optional<size_t> find_last(StringView haystack, StringView needle)
|
||||||
|
{
|
||||||
|
for (size_t i = haystack.length(); i > 0; --i) {
|
||||||
|
auto value = StringUtils::find(haystack, needle, i - 1);
|
||||||
|
if (value.has_value())
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
Optional<size_t> find_last_not(StringView haystack, char needle)
|
Optional<size_t> find_last_not(StringView haystack, char needle)
|
||||||
{
|
{
|
||||||
for (size_t i = haystack.length(); i > 0; --i) {
|
for (size_t i = haystack.length(); i > 0; --i) {
|
||||||
|
|
|
@ -90,6 +90,7 @@ StringView trim_whitespace(StringView string, TrimMode mode);
|
||||||
Optional<size_t> find(StringView haystack, char needle, size_t start = 0);
|
Optional<size_t> find(StringView haystack, char needle, size_t start = 0);
|
||||||
Optional<size_t> find(StringView haystack, StringView needle, size_t start = 0);
|
Optional<size_t> find(StringView haystack, StringView needle, size_t start = 0);
|
||||||
Optional<size_t> find_last(StringView haystack, char needle);
|
Optional<size_t> find_last(StringView haystack, char needle);
|
||||||
|
Optional<size_t> find_last(StringView haystack, StringView needle);
|
||||||
Optional<size_t> find_last_not(StringView haystack, char needle);
|
Optional<size_t> find_last_not(StringView haystack, char needle);
|
||||||
Vector<size_t> find_all(StringView haystack, StringView needle);
|
Vector<size_t> find_all(StringView haystack, StringView needle);
|
||||||
enum class SearchDirection {
|
enum class SearchDirection {
|
||||||
|
|
|
@ -116,8 +116,8 @@ public:
|
||||||
}
|
}
|
||||||
[[nodiscard]] Optional<size_t> find(StringView needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
|
[[nodiscard]] Optional<size_t> find(StringView needle, size_t start = 0) const { return StringUtils::find(*this, needle, start); }
|
||||||
[[nodiscard]] Optional<size_t> find_last(char needle) const { return StringUtils::find_last(*this, needle); }
|
[[nodiscard]] Optional<size_t> find_last(char needle) const { return StringUtils::find_last(*this, needle); }
|
||||||
|
[[nodiscard]] Optional<size_t> find_last(StringView needle) const { return StringUtils::find_last(*this, needle); }
|
||||||
[[nodiscard]] Optional<size_t> find_last_not(char needle) const { return StringUtils::find_last_not(*this, needle); }
|
[[nodiscard]] Optional<size_t> find_last_not(char needle) const { return StringUtils::find_last_not(*this, needle); }
|
||||||
// FIXME: Implement find_last(StringView) for API symmetry.
|
|
||||||
|
|
||||||
[[nodiscard]] Vector<size_t> find_all(StringView needle) const;
|
[[nodiscard]] Vector<size_t> find_all(StringView needle) const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue