add EncodedString::iterator::offset() and size()

This commit is contained in:
Josh Holtrop 2017-01-22 19:20:33 -05:00
parent d7315b0268
commit 726bd8bfaa
2 changed files with 15 additions and 0 deletions

View File

@ -19,6 +19,16 @@ EncodedString::iterator & EncodedString::iterator::operator++()
return *this;
}
size_t EncodedString::iterator::size() const
{
if (m_offset < m_encoded_string.size())
{
return Encoding::num_bytes_in_code_point(m_encoded_string.encoding(), &m_encoded_string[m_offset]);
}
return 0u;
}
EncodedString::EncodedString(const uint8_t * data, size_t size, Encoding::Type encoding)
: m_encoding(encoding),
m_size(size)

View File

@ -26,6 +26,11 @@ public:
}
uint32_t operator*();
iterator & operator++();
size_t offset() const
{
return m_offset;
}
size_t size() const;
bool operator==(const iterator & other) const
{
return m_offset == other.m_offset;