8#ifndef INCLUDED_ORCUS_JSON_DOCUMENT_TREE_HPP
9#define INCLUDED_ORCUS_JSON_DOCUMENT_TREE_HPP
12#include "exception.hpp"
26struct document_resource;
51enum class node_t : uint8_t
82namespace detail {
namespace init {
class node; }}
92 std::unique_ptr<impl> mp_impl;
126 json_value* get_json_value();
130 std::unique_ptr<impl> mp_impl;
161 std::vector<std::string_view>
keys()
const;
177 std::string_view
key(
size_t index)
const;
300 std::string
dump(std::size_t indent)
const;
323 node operator[](std::string_view key);
391 std::vector<detail::init::node> m_vs;
396 array(std::initializer_list<detail::init::node> vs);
408 object(
const object&) =
delete;
413namespace detail {
namespace init {
422 friend class ::orcus::json::document_tree;
423 friend class ::orcus::json::node;
426 std::unique_ptr<impl> mp_impl;
432 node(std::nullptr_t);
434 node(
const std::string& s);
435 node(std::initializer_list<detail::init::node> vs);
443 node& operator= (
node other) =
delete;
447 json_value* to_json_value(document_resource& res)
const;
448 void store_to_node(document_resource& res, json_value* parent)
const;
464 std::unique_ptr<impl> mp_impl;
466 const document_resource& get_resource()
const;
478 document_tree& operator= (std::initializer_list<detail::init::node> vs);
514 std::string
dump(std::size_t indent)
const;
551 std::unique_ptr<impl> mp_impl;
579 std::string
dump(std::size_t indent)
const;
Definition exception.hpp:19
Definition json_document_tree.hpp:387
Definition json_document_tree.hpp:88
Definition json_document_tree.hpp:121
bool has_key(std::string_view key) const
std::vector< std::string_view > keys() const
const_node_iterator begin() const
std::string_view key(size_t index) const
const_node child(size_t index) const
std::string_view string_value() const
const_node_iterator end() const
double numeric_value() const
std::string dump(std::size_t indent) const
size_t child_count() const
uintptr_t identity() const
const_node parent() const
const_node child(std::string_view key) const
Definition json_document_tree.hpp:421
Definition json_document_tree.hpp:33
Definition json_document_tree.hpp:459
json::node get_document_root()
std::string dump(std::size_t indent) const
std::string dump_yaml() const
void swap(document_tree &other)
json::const_node get_document_root() const
void load(std::string_view stream, const json_config &config)
std::string dump_xml() const
Definition json_document_tree.hpp:45
Definition json_document_tree.hpp:308
void push_back(const detail::init::node &v)
node child(std::string_view key)
Definition json_document_tree.hpp:405
Definition json_document_tree.hpp:549
std::string dump(std::size_t indent) const
subtree(const document_tree &src, std::string_view path)