aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/value-to-json.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/value-to-json.hh')
-rw-r--r--src/libexpr/value-to-json.hh71
1 files changed, 5 insertions, 66 deletions
diff --git a/src/libexpr/value-to-json.hh b/src/libexpr/value-to-json.hh
index c59caf564..67fed6487 100644
--- a/src/libexpr/value-to-json.hh
+++ b/src/libexpr/value-to-json.hh
@@ -8,73 +8,12 @@
namespace nix {
-void printValueAsJSON(EvalState & state, bool strict,
- Value & v, std::ostream & out, PathSet & context);
-
-void escapeJSON(std::ostream & str, const string & s);
+class JSONPlaceholder;
-struct JSONObject
-{
- std::ostream & str;
- bool first;
- JSONObject(std::ostream & str) : str(str), first(true)
- {
- str << "{";
- }
- ~JSONObject()
- {
- str << "}";
- }
- void attr(const string & s)
- {
- if (!first) str << ","; else first = false;
- escapeJSON(str, s);
- str << ":";
- }
- void attr(const string & s, const string & t)
- {
- attr(s);
- escapeJSON(str, t);
- }
- void attr(const string & s, const char * t)
- {
- attr(s);
- escapeJSON(str, t);
- }
- void attr(const string & s, bool b)
- {
- attr(s);
- str << (b ? "true" : "false");
- }
- template<typename T>
- void attr(const string & s, const T & n)
- {
- attr(s);
- str << n;
- }
-};
+void printValueAsJSON(EvalState & state, bool strict,
+ Value & v, JSONPlaceholder & out, PathSet & context);
-struct JSONList
-{
- std::ostream & str;
- bool first;
- JSONList(std::ostream & str) : str(str), first(true)
- {
- str << "[";
- }
- ~JSONList()
- {
- str << "]";
- }
- void elem()
- {
- if (!first) str << ","; else first = false;
- }
- void elem(const string & s)
- {
- elem();
- escapeJSON(str, s);
- }
-};
+void printValueAsJSON(EvalState & state, bool strict,
+ Value & v, std::ostream & str, PathSet & context);
}