27class ORCUS_DLLPUBLIC structure_tree
30 std::unique_ptr<impl> mp_impl;
34 enum class node_type :
short { unknown = 0, array = 1,
object = 2, object_key = 3, value = 4 };
42 class ORCUS_DLLPUBLIC walker
44 friend class structure_tree;
47 std::unique_ptr<impl> mp_impl;
49 walker(
const structure_tree::impl* parent_impl);
52 walker(
const walker& other);
108 structure_tree(
const structure_tree&) =
delete;
109 structure_tree& operator= (
const structure_tree&) =
delete;
114 void parse(std::string_view stream);
122 void dump_compact(std::ostream& os)
const;
124 walker get_walker()
const;
126 using range_handler_type = std::function<void(
table_range_t&&)>;
128 void process_ranges(range_handler_type rh)
const;