diff options
author | Vincent Ambo <mail@tazj.in> | 2022-05-18T15·39+0200 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2022-05-19T14·08+0000 |
commit | d127f9bd0e7b9b2e0df2de8a2227f77c0907468d (patch) | |
tree | 68455040d88b8e0c2817601db88ede450873ff8e /third_party/nix/src/libexpr/value-to-json.cc | |
parent | c85291c602ac666421627d6934ebc6d5be1b93e1 (diff) |
chore(3p/nix): unvendor tvix 0.1 r/4098
Nothing is using this now, and we'll likely never pick this up again, but we learned a lot in the process. Every now and then this breaks in some bizarre way on channel bumps and it's just a waste of time to maintain that. Change-Id: Idcf2f5acd4ca7070ce18d7149cbfc0d967dc0a44 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5632 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Autosubmit: tazjin <tazjin@tvl.su>
Diffstat (limited to 'third_party/nix/src/libexpr/value-to-json.cc')
-rw-r--r-- | third_party/nix/src/libexpr/value-to-json.cc | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/third_party/nix/src/libexpr/value-to-json.cc b/third_party/nix/src/libexpr/value-to-json.cc deleted file mode 100644 index a338d4eed79a..000000000000 --- a/third_party/nix/src/libexpr/value-to-json.cc +++ /dev/null @@ -1,91 +0,0 @@ -#include "libexpr/value-to-json.hh" - -#include <cstdlib> -#include <iomanip> - -#include "libexpr/eval-inline.hh" -#include "libutil/json.hh" -#include "libutil/util.hh" - -namespace nix { - -void printValueAsJSON(EvalState& state, bool strict, Value& v, - JSONPlaceholder& out, PathSet& context) { - checkInterrupt(); - - if (strict) { - state.forceValue(v); - } - - switch (v.type) { - case tInt: - out.write(v.integer); - break; - - case tBool: - out.write(v.boolean); - break; - - case tString: - copyContext(v, context); - out.write(v.string.s); - break; - - case tPath: - out.write(state.copyPathToStore(context, v.path)); - break; - - case tNull: - out.write(nullptr); - break; - - case tAttrs: { - auto maybeString = - state.tryAttrsToString(noPos, v, context, false, false); - if (maybeString) { - out.write(*maybeString); - break; - } - auto i = v.attrs->find(state.sOutPath); - if (i == v.attrs->end()) { - auto obj(out.object()); - StringSet names; - for (auto& j : *v.attrs) { - names.insert(j.second.name); - } - for (auto& j : names) { - auto [_, a] = *v.attrs->find(state.symbols.Create(j)); - auto placeholder(obj.placeholder(j)); - printValueAsJSON(state, strict, *a.value, placeholder, context); - } - } else { - printValueAsJSON(state, strict, *i->second.value, out, context); - } - break; - } - - case tList: { - auto list(out.list()); - for (unsigned int n = 0; n < v.listSize(); ++n) { - auto placeholder(list.placeholder()); - printValueAsJSON(state, strict, *(*v.list)[n], placeholder, context); - } - break; - } - - case tFloat: - out.write(v.fpoint); - break; - - default: - throw TypeError(format("cannot convert %1% to JSON") % showType(v)); - } -} - -void printValueAsJSON(EvalState& state, bool strict, Value& v, - std::ostream& str, PathSet& context) { - JSONPlaceholder out(str); - printValueAsJSON(state, strict, v, out, context); -} - -} // namespace nix |