Nix  2.93.0-dev
Lix: A modern, delicious implementation of the Nix package manager; unstable internal interfaces
Loading...
Searching...
No Matches
nix::PrimOp Struct Reference

#include <eval.hh>

Collaboration diagram for nix::PrimOp:
[legend]

Public Attributes

std::string name
 
std::vector< std::string > args
 
size_t arity = 0
 
const char * doc = nullptr
 
bool isCompactTrace = false
 
std::function< PrimOpImplfun
 
std::optional< ExperimentalFeatureexperimentalFeature
 

Detailed Description

Info about a primitive operation, and its implementation

Member Data Documentation

◆ args

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.

◆ arity

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.

◆ doc

const char* nix::PrimOp::doc = nullptr

Optional free-form documentation about the primop.

◆ experimentalFeature

std::optional<ExperimentalFeature> nix::PrimOp::experimentalFeature

Optional experimental for this to be gated on.

◆ fun

std::function<PrimOpImpl> nix::PrimOp::fun

Implementation of the primop.

◆ isCompactTrace

bool nix::PrimOp::isCompactTrace = false

Specifies that the function's trace is compact enough

Mostly used to always show builtins.addErrorContext traces

◆ name

std::string nix::PrimOp::name

Name of the primop. __ prefix is treated specially.


The documentation for this struct was generated from the following file: