! @brief set the iterator to the first value @pre The iterator is initialized; i.e. `m_object != nullptr`. */
| 10936 | @pre The iterator is initialized; i.e. `m_object != nullptr`. |
| 10937 | */ |
| 10938 | void set_begin() noexcept |
| 10939 | { |
| 10940 | JSON_ASSERT(m_object != nullptr); |
| 10941 | |
| 10942 | switch (m_object->m_type) |
| 10943 | { |
| 10944 | case value_t::object: |
| 10945 | { |
| 10946 | m_it.object_iterator = m_object->m_value.object->begin(); |
| 10947 | break; |
| 10948 | } |
| 10949 | |
| 10950 | case value_t::array: |
| 10951 | { |
| 10952 | m_it.array_iterator = m_object->m_value.array->begin(); |
| 10953 | break; |
| 10954 | } |
| 10955 | |
| 10956 | case value_t::null: |
| 10957 | { |
| 10958 | // set to end so begin()==end() is true: null is empty |
| 10959 | m_it.primitive_iterator.set_end(); |
| 10960 | break; |
| 10961 | } |
| 10962 | |
| 10963 | default: |
| 10964 | { |
| 10965 | m_it.primitive_iterator.set_begin(); |
| 10966 | break; |
| 10967 | } |
| 10968 | } |
| 10969 | } |
| 10970 | |
| 10971 | /*! |
| 10972 | @brief set the iterator past the last value |