MCPcopy Create free account
hub / github.com/Predelnik/DSpellCheck / primitive_iterator_t

Class primitive_iterator_t

deps/json/json.hpp:12654–12754  ·  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

12652end_value (`1`) models past the end.
12653*/
12654class primitive_iterator_t
12655{
12656 private:
12657 using difference_type = std::ptrdiff_t;
12658 static constexpr difference_type begin_value = 0;
12659 static constexpr difference_type end_value = begin_value + 1;
12660
12661 JSON_PRIVATE_UNLESS_TESTED:
12662 /// iterator as signed integer type
12663 difference_type m_it = (std::numeric_limits<std::ptrdiff_t>::min)();
12664
12665 public:
12666 constexpr difference_type get_value() const noexcept
12667 {
12668 return m_it;
12669 }
12670
12671 /// set iterator to a defined beginning
12672 void set_begin() noexcept
12673 {
12674 m_it = begin_value;
12675 }
12676
12677 /// set iterator to a defined past the end
12678 void set_end() noexcept
12679 {
12680 m_it = end_value;
12681 }
12682
12683 /// return whether the iterator can be dereferenced
12684 constexpr bool is_begin() const noexcept
12685 {
12686 return m_it == begin_value;
12687 }
12688
12689 /// return whether the iterator is at end
12690 constexpr bool is_end() const noexcept
12691 {
12692 return m_it == end_value;
12693 }
12694
12695 friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
12696 {
12697 return lhs.m_it == rhs.m_it;
12698 }
12699
12700 friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
12701 {
12702 return lhs.m_it < rhs.m_it;
12703 }
12704
12705 primitive_iterator_t operator+(difference_type n) noexcept
12706 {
12707 auto result = *this;
12708 result += n;
12709 return result;
12710 }
12711

Callers 1

iter_implMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected