diff options
Diffstat (limited to 'source/blender/blenlib/BLI_string_ref.hh')
-rw-r--r-- | source/blender/blenlib/BLI_string_ref.hh | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/source/blender/blenlib/BLI_string_ref.hh b/source/blender/blenlib/BLI_string_ref.hh index 3769e711a50..32a03213dc1 100644 --- a/source/blender/blenlib/BLI_string_ref.hh +++ b/source/blender/blenlib/BLI_string_ref.hh @@ -337,6 +337,18 @@ constexpr int64_t StringRefBase::find(StringRef str, int64_t pos) const return index_or_npos_to_int64(std::string_view(*this).find(str, static_cast<size_t>(pos))); } +constexpr int64_t StringRefBase::rfind(char c, int64_t pos) const +{ + BLI_assert(pos >= 0); + return index_or_npos_to_int64(std::string_view(*this).rfind(c, static_cast<size_t>(pos))); +} + +constexpr int64_t StringRefBase::rfind(StringRef str, int64_t pos) const +{ + BLI_assert(pos >= 0); + return index_or_npos_to_int64(std::string_view(*this).rfind(str, static_cast<size_t>(pos))); +} + constexpr int64_t StringRefBase::find_first_of(StringRef chars, int64_t pos) const { BLI_assert(pos >= 0); @@ -346,7 +358,9 @@ constexpr int64_t StringRefBase::find_first_of(StringRef chars, int64_t pos) con constexpr int64_t StringRefBase::find_first_of(char c, int64_t pos) const { - return this->find_first_of(StringRef(&c, 1), pos); + BLI_assert(pos >= 0); + return index_or_npos_to_int64( + std::string_view(*this).find_first_of(c, static_cast<size_t>(pos))); } constexpr int64_t StringRefBase::find_last_of(StringRef chars, int64_t pos) const @@ -358,7 +372,8 @@ constexpr int64_t StringRefBase::find_last_of(StringRef chars, int64_t pos) cons constexpr int64_t StringRefBase::find_last_of(char c, int64_t pos) const { - return this->find_last_of(StringRef(&c, 1), pos); + BLI_assert(pos >= 0); + return index_or_npos_to_int64(std::string_view(*this).find_last_of(c, static_cast<size_t>(pos))); } constexpr int64_t StringRefBase::find_first_not_of(StringRef chars, int64_t pos) const @@ -370,7 +385,9 @@ constexpr int64_t StringRefBase::find_first_not_of(StringRef chars, int64_t pos) constexpr int64_t StringRefBase::find_first_not_of(char c, int64_t pos) const { - return this->find_first_not_of(StringRef(&c, 1), pos); + BLI_assert(pos >= 0); + return index_or_npos_to_int64( + std::string_view(*this).find_first_not_of(c, static_cast<size_t>(pos))); } constexpr int64_t StringRefBase::find_last_not_of(StringRef chars, int64_t pos) const @@ -382,7 +399,9 @@ constexpr int64_t StringRefBase::find_last_not_of(StringRef chars, int64_t pos) constexpr int64_t StringRefBase::find_last_not_of(char c, int64_t pos) const { - return this->find_last_not_of(StringRef(&c, 1), pos); + BLI_assert(pos >= 0); + return index_or_npos_to_int64( + std::string_view(*this).find_last_not_of(c, static_cast<size_t>(pos))); } constexpr StringRef StringRefBase::trim() const |