Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
JsonWriter.h
Go to the documentation of this file.
1#ifndef JSON_WRITER_H
2#define JSON_WRITER_H
3
4#include "DBNode.h"
5#include "IDataSetWriter.h"
6
8
9std::shared_ptr<DBNode> make_object_node();
10
11std::shared_ptr<DBNode> make_scalar_node(const Value& v);
12
13DBNode::Value make_array_value(const std::vector<std::shared_ptr<DBNode>>& elems);
14
15std::shared_ptr<DBNode> dataset_to_dbnode(const DataSet& ds, const OutputSpec& spec);
16
17class JsonWriter : public IDataSetWriter {
18public:
19 explicit JsonWriter(std::string path) : path_(std::move(path)) {}
20
21 void write(const DataSet& ds, const OutputSpec& spec) override;
22
23private:
24 std::string path_;
25};
26
27
28#endif
Hierarchical key–value tree with JSON/YAML serialization.
DBNode::Value to_dbnode_value(const Value &v)
Definition JsonWriter.cpp:3
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.
Definition DBNode.h:45
JsonWriter(std::string path)
Definition JsonWriter.h:19
void write(const DataSet &ds, const OutputSpec &spec) override
Hash specialization for SymbolId<Tag>.
Definition BlockName.h:353