16#include <nlohmann/json.hpp>
18using json = nlohmann::json;
27template <
class DataType,
class ParameterType>
struct State {
28 friend void to_json(json &j,
const State &state) {
29 j = json{{
"best-parameters", state.bestParameters},
30 {
"best-value", state.bestValue},
31 {
"current-parameters", state.currentParameters},
32 {
"current-value", state.currentValue},
33 {
"former-parameters", state.formerParameters},
34 {
"former-value", state.formerValue},
35 {
"iteration", state.iteration}};
38 friend void from_json(
const json &j,
State &state) {
39 j.at(
"best-parameters").get_to(state.bestParameters);
40 j.at(
"best-value").get_to(state.bestValue);
41 j.at(
"current-parameters").get_to(state.currentParameters);
42 j.at(
"current-value").get_to(state.currentValue);
43 j.at(
"former-parameters").get_to(state.formerParameters);
44 j.at(
"former-value").get_to(state.formerValue);
45 j.at(
"iteration").get_to(state.iteration);
48 ParameterType bestParameters;
51 ParameterType currentParameters;
52 DataType currentValue;
54 ParameterType formerParameters;