77 bool operator<=(
const iterator& other)
const {
return _iter <= other._iter; }
79 bool operator> (
const iterator& other)
const {
return _iter > other._iter; }
81 bool operator>=(
const iterator& other)
const {
return _iter >= other._iter; }
84 explicit iterator(
const std::uintptr_t prefix,
const std::uint64_t* iter) :
89 friend class parse_index;
92 std::uintptr_t _prefix;
93 const std::uint64_t* _iter;
96 using const_iterator = iterator;
118 ~parse_index() noexcept;
168 iterator cbegin()
const {
return begin(); }
171 iterator end()
const;
174 iterator cend()
const {
return end(); }
183 value extract_tree()
const;
221 impl* _impl =
nullptr;
Utilities for directly dealing with a JSON AST.
Represents an entry in a JSON AST.
An adapter for enumeration types.
iterator & skip_subtree()
Move to the node after the structure this iterator is on, however much is inside it.
Represents the index of a parsed AST.
parse_index() noexcept=default
Creates an empty not-an-AST instance.
friend std::ostream & operator<<(std::ostream &, const parse_index &)
value extract_tree(const extract_options &options) const
Configuration for various parsing options.
Represents a single JSON value, which can be any one of a potential kind, each behaving slightly diff...
Copyright (c) 2014-2020 by Travis Gockel.
#define JSONV_NODISCARD
Warn if the caller discards the result of this function.
#define JSONV_PUBLIC
This function or class is part of the public API for JSON Voorhees.
JSONV_PUBLIC void swap(value &a, value &b) noexcept
Swap the values a and b.