mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 23:20:20 +00:00
AK: Add StringView::find_last_not
This commit is contained in:
parent
48aea321c5
commit
9718667bcf
Notes:
sideshowbarker
2024-07-17 08:37:36 +09:00
Author: https://github.com/cqundefine Commit: https://github.com/SerenityOS/serenity/commit/9718667bcf Pull-request: https://github.com/SerenityOS/serenity/pull/15278 Reviewed-by: https://github.com/ADKaster Reviewed-by: https://github.com/Quaker762 Reviewed-by: https://github.com/bgianfo Reviewed-by: https://github.com/timschumi
3 changed files with 11 additions and 0 deletions
|
@ -388,6 +388,15 @@ Optional<size_t> find_last(StringView haystack, char needle)
|
|||
return {};
|
||||
}
|
||||
|
||||
Optional<size_t> find_last_not(StringView haystack, char needle)
|
||||
{
|
||||
for (size_t i = haystack.length(); i > 0; --i) {
|
||||
if (haystack[i - 1] != needle)
|
||||
return i - 1;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
Vector<size_t> find_all(StringView haystack, StringView needle)
|
||||
{
|
||||
Vector<size_t> positions;
|
||||
|
|
|
@ -74,6 +74,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, StringView needle, size_t start = 0);
|
||||
Optional<size_t> find_last(StringView haystack, char needle);
|
||||
Optional<size_t> find_last_not(StringView haystack, char needle);
|
||||
Vector<size_t> find_all(StringView haystack, StringView needle);
|
||||
enum class SearchDirection {
|
||||
Forward,
|
||||
|
|
|
@ -107,6 +107,7 @@ public:
|
|||
}
|
||||
[[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_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;
|
||||
|
|
Loading…
Reference in a new issue