diff options
Diffstat (limited to 'third_party/nix/src/libexpr/value.hh')
-rw-r--r-- | third_party/nix/src/libexpr/value.hh | 53 |
1 files changed, 1 insertions, 52 deletions
diff --git a/third_party/nix/src/libexpr/value.hh b/third_party/nix/src/libexpr/value.hh index 35c5e4d0a0b5..5d5785ebeb0f 100644 --- a/third_party/nix/src/libexpr/value.hh +++ b/third_party/nix/src/libexpr/value.hh @@ -25,7 +25,7 @@ typedef enum { tBlackhole, tPrimOp, tPrimOpApp, - tExternal, + _reserved1, // formerly tExternal tFloat } ValueType; @@ -36,60 +36,10 @@ struct ExprLambda; struct PrimOp; struct PrimOp; class Symbol; -struct Pos; -class EvalState; -class XMLWriter; -class JSONPlaceholder; typedef int64_t NixInt; typedef double NixFloat; -/* External values must descend from ExternalValueBase, so that - * type-agnostic nix functions (e.g. showType) can be implemented - */ -class ExternalValueBase { - friend std::ostream& operator<<(std::ostream& str, - const ExternalValueBase& v); - - protected: - /* Print out the value */ - virtual std::ostream& print(std::ostream& str) const = 0; - - public: - /* Return a simple string describing the type */ - virtual std::string showType() const = 0; - - /* Return a string to be used in builtins.typeOf */ - virtual std::string typeOf() const = 0; - - /* How much space does this value take up */ - virtual size_t valueSize(std::set<const void*>& seen) const = 0; - - /* Coerce the value to a string. Defaults to uncoercable, i.e. throws an - * error - */ - virtual std::string coerceToString(const Pos& pos, PathSet& context, - bool copyMore, bool copyToStore) const; - - /* Compare to another value of the same type. Defaults to uncomparable, - * i.e. always false. - */ - virtual bool operator==(const ExternalValueBase& b) const; - - /* Print the value as JSON. Defaults to unconvertable, i.e. throws an error */ - virtual void printValueAsJSON(EvalState& state, bool strict, - JSONPlaceholder& out, PathSet& context) const; - - /* Print the value as XML. Defaults to unevaluated */ - virtual void printValueAsXML(EvalState& state, bool strict, bool location, - XMLWriter& doc, PathSet& context, - PathSet& drvsSeen) const; - - virtual ~ExternalValueBase(){}; -}; - -std::ostream& operator<<(std::ostream& str, const ExternalValueBase& v); - // Forward declaration of Value is required because the following // types are mutually recursive. // @@ -155,7 +105,6 @@ struct Value : public gc { NixLambda lambda; PrimOp* primOp; NixPrimOpApp primOpApp; - ExternalValueBase* external; NixFloat fpoint; }; |