aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/primops.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/primops.hh')
-rw-r--r--src/libexpr/primops.hh36
1 files changed, 14 insertions, 22 deletions
diff --git a/src/libexpr/primops.hh b/src/libexpr/primops.hh
index 1cfb4356b..930e7f32a 100644
--- a/src/libexpr/primops.hh
+++ b/src/libexpr/primops.hh
@@ -1,4 +1,5 @@
#pragma once
+///@file
#include "eval.hh"
@@ -9,38 +10,29 @@ namespace nix {
struct RegisterPrimOp
{
- struct Info
- {
- std::string name;
- std::vector<std::string> args;
- size_t arity = 0;
- const char * doc;
- PrimOpFun fun;
- std::optional<ExperimentalFeature> experimentalFeature;
- };
-
- typedef std::vector<Info> PrimOps;
+ typedef std::vector<PrimOp> PrimOps;
static PrimOps * primOps;
- /* You can register a constant by passing an arity of 0. fun
- will get called during EvalState initialization, so there
- may be primops not yet added and builtins is not yet sorted. */
- RegisterPrimOp(
- std::string name,
- size_t arity,
- PrimOpFun fun);
-
- RegisterPrimOp(Info && info);
+ /**
+ * You can register a constant by passing an arity of 0. fun
+ * will get called during EvalState initialization, so there
+ * may be primops not yet added and builtins is not yet sorted.
+ */
+ RegisterPrimOp(PrimOp && primOp);
};
/* These primops are disabled without enableNativeCode, but plugins
may wish to use them in limited contexts without globally enabling
them. */
-/* Load a ValueInitializer from a DSO and return whatever it initializes */
+/**
+ * Load a ValueInitializer from a DSO and return whatever it initializes
+ */
void prim_importNative(EvalState & state, const PosIdx pos, Value * * args, Value & v);
-/* Execute a program and parse its output */
+/**
+ * Execute a program and parse its output
+ */
void prim_exec(EvalState & state, const PosIdx pos, Value * * args, Value & v);
}