MCPcopy Create free account
hub / github.com/Open-GD/OpenGD / primitive_iterator_t

Class primitive_iterator_t

Source/external/json.hpp:12650–12750  ·  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

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

Callers 1

iter_implMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected