diff options
Diffstat (limited to 'third_party/nix/tests/plugins/plugintest.cc')
-rw-r--r-- | third_party/nix/tests/plugins/plugintest.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/third_party/nix/tests/plugins/plugintest.cc b/third_party/nix/tests/plugins/plugintest.cc new file mode 100644 index 000000000000..5edd28bd099c --- /dev/null +++ b/third_party/nix/tests/plugins/plugintest.cc @@ -0,0 +1,23 @@ +#include "config.hh" +#include "primops.hh" + +using namespace nix; + +struct MySettings : Config { + Setting<bool> settingSet{this, false, "setting-set", + "Whether the plugin-defined setting was set"}; +}; + +MySettings mySettings; + +static GlobalConfig::Register rs(&mySettings); + +static void prim_anotherNull(EvalState& state, const Pos& pos, Value** args, + Value& v) { + if (mySettings.settingSet) + mkNull(v); + else + mkBool(v, false); +} + +static RegisterPrimOp rp("anotherNull", 0, prim_anotherNull); |