MCPcopy Create free account
hub / github.com/bytedance/Fastbot_Android / primitive_iterator_t

Class primitive_iterator_t

native/thirdpart/json/json.hpp:9173–9272  ·  view source on GitHub ↗

@brief an iterator for primitive JSON types This class models an iterator for primitive JSON types (boolean, number, string). It's only purpose is to allow the iterator/const_iterator classes to "iterate" over primitive values. Internally, the iterator is modeled by a `difference_type` variable. Value begin_value (`0`) models the begin, end_value (`1`) models past the end. */

Source from the content-addressed store, hash-verified

9171end_value (`1`) models past the end.
9172*/
9173class primitive_iterator_t
9174{
9175 private:
9176 using difference_type = std::ptrdiff_t;
9177 static constexpr difference_type begin_value = 0;
9178 static constexpr difference_type end_value = begin_value + 1;
9179
9180 /// iterator as signed integer type
9181 difference_type m_it = (std::numeric_limits<std::ptrdiff_t>::min)();
9182
9183 public:
9184 constexpr difference_type get_value() const noexcept
9185 {
9186 return m_it;
9187 }
9188
9189 /// set iterator to a defined beginning
9190 void set_begin() noexcept
9191 {
9192 m_it = begin_value;
9193 }
9194
9195 /// set iterator to a defined past the end
9196 void set_end() noexcept
9197 {
9198 m_it = end_value;
9199 }
9200
9201 /// return whether the iterator can be dereferenced
9202 constexpr bool is_begin() const noexcept
9203 {
9204 return m_it == begin_value;
9205 }
9206
9207 /// return whether the iterator is at end
9208 constexpr bool is_end() const noexcept
9209 {
9210 return m_it == end_value;
9211 }
9212
9213 friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
9214 {
9215 return lhs.m_it == rhs.m_it;
9216 }
9217
9218 friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
9219 {
9220 return lhs.m_it < rhs.m_it;
9221 }
9222
9223 primitive_iterator_t operator+(difference_type n) noexcept
9224 {
9225 auto result = *this;
9226 result += n;
9227 return result;
9228 }
9229
9230 friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept

Callers 1

iter_implMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected