diff options
Diffstat (limited to 'src/libexpr/primops.hh')
-rw-r--r-- | src/libexpr/primops.hh | 36 |
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); } |