[ox/std] Add BasicString::substr(begin, end)

This commit is contained in:
Gary Talent 2021-07-18 13:06:52 -05:00
parent dce98590fc
commit 3a2acae093

View File

@ -103,6 +103,9 @@ class BasicString {
[[nodiscard]]
BasicString substr(std::size_t pos) const noexcept;
[[nodiscard]]
BasicString substr(std::size_t begin, std::size_t end) const noexcept;
[[nodiscard]]
bool endsWith(const char *ending) const noexcept;
@ -362,6 +365,17 @@ BasicString<SmallStringSize> BasicString<SmallStringSize>::substr(std::size_t po
return m_buff.data() + pos;
}
template<std::size_t SmallStringSize>
BasicString<SmallStringSize> BasicString<SmallStringSize>::substr(std::size_t begin, std::size_t end) const noexcept {
const auto src = m_buff.data() + begin;
const auto size = end - begin;
BasicString<SmallStringSize> out(size);
const auto buff = out.data();
memcpy(buff, src, size);
buff[size] = 0;
return move(out);
}
template<std::size_t SmallStringSize>
bool BasicString<SmallStringSize>::endsWith(const char *ending) const noexcept {
const auto endingLen = ox_strlen(ending);