#include <eval.hh>
Public Member Functions | |
void | check () |
Public Attributes | |
std::string | name |
std::vector< std::string > | args |
size_t | arity = 0 |
const char * | doc = nullptr |
bool | addTrace = true |
std::function< PrimOpFun > | fun |
std::optional< ExperimentalFeature > | experimentalFeature |
bool | internal = false |
Info about a primitive operation, and its implementation
void nix::PrimOp::check | ( | ) |
Validity check to be performed by functions that introduce primops, such as RegisterPrimOp() and Value::mkPrimOp().
bool nix::PrimOp::addTrace = true |
Add a trace item, while calling the <name>
builtin.
This is used to remove the redundant item for builtins.addErrorContext
.
std::vector<std::string> nix::PrimOp::args |
Names of the parameters of a primop, for primops that take a fixed number of arguments to be substituted for these parameters.
size_t nix::PrimOp::arity = 0 |
Aritiy of the primop.
If args
is not empty, this field will be computed from that field instead, so it doesn't need to be manually set.
const char* nix::PrimOp::doc = nullptr |
Optional free-form documentation about the primop.
std::optional<ExperimentalFeature> nix::PrimOp::experimentalFeature |
Optional experimental for this to be gated on.
std::function<PrimOpFun> nix::PrimOp::fun |
Implementation of the primop.
bool nix::PrimOp::internal = false |
If true, this primop is not exposed to the user.
std::string nix::PrimOp::name |
Name of the primop. __
prefix is treated specially.