|
Nix 2.93.3
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
|
#include <cassert>#include <climits>#include <functional>#include <ranges>#include <span>#include "lix/libexpr/gc-alloc.hh"#include "lix/libexpr/symbol-table.hh"#include "lix/libexpr/value/context.hh"#include "lix/libutil/source-path.hh"#include "lix/libexpr/print-options.hh"#include "lix/libutil/checked-arithmetic.hh"#include "lix/libutil/concepts.hh"#include "lix/libutil/json-fwd.hh"Go to the source code of this file.
Classes | |
| class | nix::ExternalValueBase |
| struct | nix::NewValueAs |
| struct | nix::NewValueAs::integer_t |
| struct | nix::NewValueAs::floating_t |
| struct | nix::NewValueAs::boolean_t |
| struct | nix::NewValueAs::string_t |
| struct | nix::NewValueAs::path_t |
| struct | nix::NewValueAs::list_t |
| struct | nix::NewValueAs::attrs_t |
| struct | nix::NewValueAs::thunk_t |
| struct | nix::NewValueAs::null_t |
| struct | nix::NewValueAs::app_t |
| struct | nix::NewValueAs::primop_t |
| struct | nix::NewValueAs::primOpApp_t |
| struct | nix::NewValueAs::lambda_t |
| struct | nix::NewValueAs::external_t |
| struct | nix::NewValueAs::blackhole_t |
| struct | nix::Value |
Macros | |
| #define | USING_VALUETYPE(name) |
Typedefs | |
| using | nix::NixInt = checked::Checked<int64_t> |
| using | nix::NixFloat = double |
| using | nix::ValueVector = GcVector<Value *> |
| using | nix::ValueMap = GcMap<Symbol, Value *> |
| using | nix::ValueVectorMap = std::map<Symbol, ValueVector> |
| typedef std::shared_ptr< Value * > | nix::RootValue |
Enumerations | |
| enum | InternalType { tInt = 1 , tBool , tString , tPath , tNull , tAttrs , tList1 , tList2 , tListN , tThunk , tApp , tLambda , tPrimOp , tPrimOpApp , tExternal , tFloat } |
| enum | nix::ValueType { nThunk , nInt , nFloat , nBool , nString , nPath , nNull , nAttrs , nList , nFunction , nExternal } |
Functions | |
| std::ostream & | nix::operator<< (std::ostream &str, const ExternalValueBase &v) |
| RootValue | nix::allocRootValue (Value *v) |
| #define USING_VALUETYPE | ( | name | ) |
| typedef std::shared_ptr<Value *> nix::RootValue |
A value allocated in traceable memory.
| enum nix::ValueType |
This type abstracts over all actual value types in the language, grouping together implementation details like tList*, different function types, and types in non-normal form (so thunks and co.)