Horizon
pnp_export_settings.hpp
1 #pragma once
2 #include "common/lut.hpp"
3 #include "util/uuid.hpp"
4 #include "nlohmann/json_fwd.hpp"
5 #include "pnp.hpp"
6 #include <vector>
7 
8 namespace horizon {
9 using json = nlohmann::json;
10 
12 public:
13  PnPExportSettings(const json &j);
15  json serialize() const;
16 
17  enum class Format { CSV, TEXT };
18  Format format = Format::CSV;
19 
20  std::vector<PnPColumn> columns;
21 
22  enum class Mode { INDIVIDUAL, MERGED };
23  Mode mode = Mode::MERGED;
24 
25  static const LutEnumStr<Mode> mode_lut;
26 
27  bool include_nopopulate = true;
28 
29  bool customize = false;
30  std::string position_format;
31  std::string top_side;
32  std::string bottom_side;
33  std::map<PnPColumn, std::string> column_names;
34  const std::string &get_column_name(PnPColumn col) const;
35 
36  std::string output_directory;
37 
38  std::string filename_top;
39  std::string filename_bottom;
40  std::string filename_merged;
41 };
42 } // namespace horizon
Definition: pnp_export_settings.hpp:11
a class to store JSON values
Definition: json.hpp:177
basic_json<> json
default JSON class
Definition: json_fwd.hpp:62