cleanup in string.hh
This commit is contained in:
parent
1a17d9c73f
commit
9f4af93780
|
@ -77,9 +77,6 @@ public:
|
|||
release_ifn();
|
||||
}
|
||||
|
||||
using StringView::operator==;
|
||||
using StringView::operator!=;
|
||||
|
||||
InternedString acquire_substr(ByteCount from, ByteCount length = INT_MAX) const
|
||||
{
|
||||
if (m_slot == -1)
|
||||
|
|
|
@ -102,17 +102,6 @@ String to_string(int val)
|
|||
return buf;
|
||||
}
|
||||
|
||||
bool prefix_match(StringView str, StringView prefix)
|
||||
{
|
||||
auto it = str.begin();
|
||||
for (auto& c : prefix)
|
||||
{
|
||||
if (it ==str.end() or *it++ != c)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool subsequence_match(StringView str, StringView subseq)
|
||||
{
|
||||
auto it = str.begin();
|
||||
|
|
|
@ -68,8 +68,7 @@ public:
|
|||
StringView(const std::string& str) : m_data{str.data()}, m_length{(int)str.length()} {}
|
||||
StringView(const char& c) : m_data(&c), m_length(1) {}
|
||||
|
||||
bool operator==(StringView other) const;
|
||||
bool operator!=(StringView other) const;
|
||||
friend bool operator==(StringView lhs, StringView rhs);
|
||||
|
||||
[[gnu::always_inline]]
|
||||
const char* data() const { return m_data; }
|
||||
|
@ -130,42 +129,23 @@ private:
|
|||
ByteCount m_length;
|
||||
};
|
||||
|
||||
inline bool StringView::operator==(StringView other) const
|
||||
inline bool operator==(StringView lhs, StringView rhs)
|
||||
{
|
||||
return m_length == other.m_length and memcmp(m_data, other.m_data, (int)m_length) == 0;
|
||||
return lhs.m_length == rhs.m_length and memcmp(lhs.m_data, rhs.m_data, (int)lhs.m_length) == 0;
|
||||
}
|
||||
|
||||
inline bool StringView::operator!=(StringView other) const
|
||||
inline bool operator!=(StringView lhs, StringView rhs)
|
||||
{
|
||||
return !this->operator==(other);
|
||||
return not (lhs == rhs);
|
||||
}
|
||||
|
||||
bool operator<(StringView lhs, StringView rhs);
|
||||
|
||||
inline bool operator==(const char* lhs, StringView rhs)
|
||||
{
|
||||
return StringView{lhs} == rhs;
|
||||
}
|
||||
|
||||
inline bool operator!=(const char* lhs, StringView rhs)
|
||||
{
|
||||
return StringView{lhs} != rhs;
|
||||
}
|
||||
|
||||
inline bool operator==(const std::string& lhs, StringView rhs)
|
||||
{
|
||||
return StringView{lhs} == rhs;
|
||||
}
|
||||
|
||||
inline bool operator!=(const std::string& lhs, StringView rhs)
|
||||
{
|
||||
return StringView{lhs} != rhs;
|
||||
}
|
||||
|
||||
inline ByteCount StringView::byte_count_to(CharCount count) const
|
||||
{
|
||||
return utf8::advance(begin(), end(), (int)count) - begin();
|
||||
}
|
||||
|
||||
inline CharCount StringView::char_count_to(ByteCount count) const
|
||||
{
|
||||
return utf8::distance(begin(), begin() + (int)count);
|
||||
|
@ -290,7 +270,11 @@ String to_string(const StronglyTypedNumber<RealType, ValueType>& val)
|
|||
return to_string((ValueType)val);
|
||||
}
|
||||
|
||||
bool prefix_match(StringView str, StringView prefix);
|
||||
inline bool prefix_match(StringView str, StringView prefix)
|
||||
{
|
||||
return str.substr(0_byte, prefix.length()) == prefix;
|
||||
}
|
||||
|
||||
bool subsequence_match(StringView str, StringView subseq);
|
||||
|
||||
String expand_tabs(StringView line, CharCount tabstop, CharCount col = 0);
|
||||
|
|
Loading…
Reference in New Issue
Block a user