3 #include "fly/types/json/concepts.hpp"
4 #include "fly/types/json/json_exception.hpp"
9 namespace fly::detail {
20 template <
typename JsonIterator>
23 using reverse_iterator = std::reverse_iterator<JsonIterator>;
30 using difference_type =
typename JsonIterator::difference_type;
31 using reference =
typename JsonIterator::reference;
32 using const_reference =
const reference;
33 using pointer =
typename JsonIterator::pointer;
61 reference operator*() const;
70 pointer operator->() const;
86 reference operator[](difference_type offset) const;
216 const typename json_object_type::key_type &
key() const;
225 reference
value() const;
233 const_reference json() const;
243 template <
typename JsonIterator>
250 template <
typename JsonIterator>
257 template <
typename JsonIterator>
262 return reverse_iterator::operator*();
271 template <
typename JsonIterator>
276 return reverse_iterator::operator->();
285 template <
typename JsonIterator>
292 template <
typename JsonIterator>
299 template <
typename JsonIterator>
306 template <
typename JsonIterator>
313 template <
typename JsonIterator>
320 template <
typename JsonIterator>
327 template <
typename JsonIterator>
334 template <
typename JsonIterator>
342 template <
typename JsonIterator>
350 template <
typename JsonIterator>
354 return reverse_iterator(*
this) - reverse_iterator(other);
358 template <
typename JsonIterator>
363 auto it = --(reverse_iterator::base());
373 template <
typename JsonIterator>
378 auto it = --(reverse_iterator::base());
388 template <
typename JsonIterator>
391 return *(reverse_iterator::base().m_json);
Definition: json_exception.hpp:88
Definition: json_exception.hpp:108
Definition: json_iterator.hpp:58
Definition: json_reverse_iterator.hpp:22
JsonReverseIterator operator-(difference_type offset) const
Definition: json_reverse_iterator.hpp:343
JsonReverseIterator & operator++()
Definition: json_reverse_iterator.hpp:300
const json_object_type::key_type & key() const
Definition: json_reverse_iterator.hpp:359
JsonReverseIterator & operator+=(difference_type offset)
Definition: json_reverse_iterator.hpp:321
JsonReverseIterator operator+(difference_type offset) const
Definition: json_reverse_iterator.hpp:335
reference operator*() const
Definition: json_reverse_iterator.hpp:258
reference operator[](difference_type offset) const
Definition: json_reverse_iterator.hpp:286
JsonReverseIterator & operator-=(difference_type offset)
Definition: json_reverse_iterator.hpp:328
reference value() const
Definition: json_reverse_iterator.hpp:374
JsonReverseIterator() noexcept
Definition: json_reverse_iterator.hpp:238
JsonReverseIterator & operator--()
Definition: json_reverse_iterator.hpp:314
typename JsonIterator::value_type value_type
Definition: json_reverse_iterator.hpp:29
pointer operator->() const
Definition: json_reverse_iterator.hpp:272