aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/globals.hh1
-rw-r--r--src/libutil/abstractsettingtojson.hh15
-rw-r--r--src/libutil/config.cc1
-rw-r--r--src/libutil/config.hh10
4 files changed, 19 insertions, 8 deletions
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index 8a2d3ff75..02721285a 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -2,6 +2,7 @@
#include "types.hh"
#include "config.hh"
+#include "abstractsettingtojson.hh"
#include "util.hh"
#include <map>
diff --git a/src/libutil/abstractsettingtojson.hh b/src/libutil/abstractsettingtojson.hh
new file mode 100644
index 000000000..b3fbc84f7
--- /dev/null
+++ b/src/libutil/abstractsettingtojson.hh
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <nlohmann/json.hpp>
+#include "config.hh"
+
+namespace nix {
+template<typename T>
+std::map<std::string, nlohmann::json> BaseSetting<T>::toJSONObject()
+{
+ auto obj = AbstractSetting::toJSONObject();
+ obj.emplace("value", value);
+ obj.emplace("defaultValue", defaultValue);
+ return obj;
+}
+}
diff --git a/src/libutil/config.cc b/src/libutil/config.cc
index faa5cdbeb..309d23b40 100644
--- a/src/libutil/config.cc
+++ b/src/libutil/config.cc
@@ -1,5 +1,6 @@
#include "config.hh"
#include "args.hh"
+#include "abstractsettingtojson.hh"
#include <nlohmann/json.hpp>
diff --git a/src/libutil/config.hh b/src/libutil/config.hh
index 18fa9dea8..1f5f4e7b9 100644
--- a/src/libutil/config.hh
+++ b/src/libutil/config.hh
@@ -4,7 +4,7 @@
#include "types.hh"
-#include <nlohmann/json.hpp>
+#include <nlohmann/json_fwd.hpp>
#pragma once
@@ -255,13 +255,7 @@ public:
void convertToArg(Args & args, const std::string & category) override;
- std::map<std::string, nlohmann::json> toJSONObject() override
- {
- auto obj = AbstractSetting::toJSONObject();
- obj.emplace("value", value);
- obj.emplace("defaultValue", defaultValue);
- return obj;
- }
+ std::map<std::string, nlohmann::json> toJSONObject() override;
};
template<typename T>