mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-13 09:46:16 +02:00
6526d1676b
Pos objects are somewhat wasteful as they duplicate the origin file name and input type for each object. on files that produce more than one Pos when parsed this a sizeable waste of memory (one pointer per Pos). the same goes for ptr<Pos> on 64 bit machines: parsing enough source to require 8 bytes to locate a position would need at least 8GB of input and 64GB of expression memory. it's not likely that we'll hit that any time soon, so we can use a uint32_t index to locate positions instead.
19 lines
392 B
C++
19 lines
392 B
C++
#pragma once
|
|
|
|
#include "nixexpr.hh"
|
|
#include "eval.hh"
|
|
|
|
#include <string>
|
|
#include <map>
|
|
|
|
namespace nix {
|
|
|
|
class JSONPlaceholder;
|
|
|
|
void printValueAsJSON(EvalState & state, bool strict,
|
|
Value & v, const PosIdx pos, JSONPlaceholder & out, PathSet & context);
|
|
|
|
void printValueAsJSON(EvalState & state, bool strict,
|
|
Value & v, const PosIdx pos, std::ostream & str, PathSet & context);
|
|
|
|
}
|