Hierarchical key–value tree with JSON/YAML serialization.
DBNode::Value to_dbnode_value(const Value &v)
std::shared_ptr< DBNode > make_scalar_node(const Value &v)
std::shared_ptr< DBNode > dataset_to_dbnode(const DataSet &ds, const OutputSpec &spec)
std::shared_ptr< DBNode > make_object_node()
DBNode::Value make_array_value(const std::vector< std::shared_ptr< DBNode > > &elems)
std::variant< std::monostate, double, int64_t, bool, std::string > Value
std::variant< BlockName, int, double, bool, std::shared_ptr< DBNode >, std::vector< std::shared_ptr< DBNode > > > Value
Variant type used to store values in the tree.
JsonWriter(std::string path)
void write(const DataSet &ds, const OutputSpec &spec) override
Hash specialization for SymbolId<Tag>.