From 726bd8bfaa8176847203928006082f8db9484041 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 22 Jan 2017 19:20:33 -0500 Subject: [PATCH] add EncodedString::iterator::offset() and size() --- src/core/EncodedString.cc | 10 ++++++++++ src/core/EncodedString.h | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/src/core/EncodedString.cc b/src/core/EncodedString.cc index 74f26e1..d028e87 100644 --- a/src/core/EncodedString.cc +++ b/src/core/EncodedString.cc @@ -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) diff --git a/src/core/EncodedString.h b/src/core/EncodedString.h index a71ce51..1a2da10 100644 --- a/src/core/EncodedString.h +++ b/src/core/EncodedString.h @@ -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;