void(* nix_get_string_callback)(const char *start, unsigned int n, void *user_data)
Called to get the value of a string owned by Nix.
Definition nix_api_util.h:171
nix_err
Type for error codes in the Nix system.
Definition nix_api_util.h:59
nix_err nix_register_primop(nix_c_context *context, PrimOp *primOp)
add a primop to the builtins attribute set
PrimOp * nix_alloc_primop(nix_c_context *context, PrimOpFun fun, int arity, const char *name, const char **args, const char *doc, void *user_data)
Allocate a PrimOp.
void(* PrimOpFun)(void *user_data, nix_c_context *context, EvalState *state, nix_value **args, nix_value *ret)
Function pointer for primops.
Definition nix_api_value.h:187
nix_err nix_init_string(nix_c_context *context, nix_value *value, const char *str)
Set a string.
void nix_list_builder_free(ListBuilder *list_builder)
Free a list builder.
nix_err nix_list_builder_insert(nix_c_context *context, ListBuilder *list_builder, unsigned int index, nix_value *value)
Insert bindings into a builder.
nix_err nix_init_int(nix_c_context *context, nix_value *value, int64_t i)
Set an int.
nix_err nix_init_external(nix_c_context *context, nix_value *value, ExternalValue *val)
Set an external value.
nix_err nix_init_null(nix_c_context *context, nix_value *value)
Set null.
nix_value * nix_alloc_value(nix_c_context *context, EvalState *state)
Allocate a Nix value.
nix_err nix_make_attrs(nix_c_context *context, nix_value *value, BindingsBuilder *b)
Create an attribute set from a bindings builder.
nix_err nix_copy_value(nix_c_context *context, nix_value *value, const nix_value *source)
Copy from another value.
nix_err nix_make_list(nix_c_context *context, ListBuilder *list_builder, nix_value *value)
Create a list from a list builder.
nix_err nix_init_path_string(nix_c_context *context, EvalState *s, nix_value *value, const char *str)
Set a path.
nix_err nix_init_float(nix_c_context *context, nix_value *value, double d)
Set a float.
nix_err nix_init_primop(nix_c_context *context, nix_value *value, PrimOp *op)
Set primop.
nix_err nix_init_bool(nix_c_context *context, nix_value *value, bool b)
Set boolean value.
ListBuilder * nix_make_list_builder(nix_c_context *context, EvalState *state, size_t capacity)
Create a list builder.
nix_err nix_init_apply(nix_c_context *context, nix_value *value, nix_value *fn, nix_value *arg)
Set the value to a thunk that will perform a function application when needed.
nix_err nix_value_incref(nix_c_context *context, nix_value *value)
Increment the garbage collector reference counter for the given nix_value.
nix_err nix_value_decref(nix_c_context *context, nix_value *value)
Decrement the garbage collector reference counter for the given object.
ValueType
Represents the state of a Nix value.
Definition nix_api_value.h:53
Main entry for the libstore C bindings.
Main entry for the libutil C bindings.
nix_realised_string * nix_string_realise(nix_c_context *context, EvalState *state, nix_value *value, bool isIFD)
Realise a string context.
void nix_realised_string_free(nix_realised_string *realised_string)
Free a realised string.
size_t nix_realised_string_get_store_path_count(nix_realised_string *realised_string)
Number of realised store paths.
BindingsBuilder * nix_make_bindings_builder(nix_c_context *context, EvalState *state, size_t capacity)
Create a bindings builder.
const StorePath * nix_realised_string_get_store_path(nix_realised_string *realised_string, size_t index)
Get a store path. The store paths are stored in an arbitrary order.
const char * nix_realised_string_get_buffer_start(nix_realised_string *realised_string)
Start of the string.
nix_value Value
Definition nix_api_value.h:112
nix_err nix_bindings_builder_insert(nix_c_context *context, BindingsBuilder *builder, const char *name, nix_value *value)
Insert bindings into a builder.
size_t nix_realised_string_get_buffer_size(nix_realised_string *realised_string)
Length of the string.
void nix_bindings_builder_free(BindingsBuilder *builder)
Free a bindings builder.
@ NIX_TYPE_ATTRS
Attribute set (key-value mapping).
Definition nix_api_value.h:91
@ NIX_TYPE_FUNCTION
Function (lambda or builtin).
Definition nix_api_value.h:99
@ NIX_TYPE_EXTERNAL
External value from C++ plugins or C API.
Definition nix_api_value.h:103
@ NIX_TYPE_THUNK
Definition nix_api_value.h:61
@ NIX_TYPE_NULL
Null value.
Definition nix_api_value.h:87
@ NIX_TYPE_BOOL
Boolean true or false value.
Definition nix_api_value.h:73
@ NIX_TYPE_LIST
Ordered list of values.
Definition nix_api_value.h:95
@ NIX_TYPE_STRING
String value with context.
Definition nix_api_value.h:79
@ NIX_TYPE_FLOAT
IEEE 754 double precision floating point number.
Definition nix_api_value.h:69
@ NIX_TYPE_PATH
Filesystem path.
Definition nix_api_value.h:83
@ NIX_TYPE_INT
Definition nix_api_value.h:65
Stores an under-construction set of bindings.
Represents a state of the Nix language evaluator.
Stores an under-construction list.
This object stores error state.
String without placeholders, and realised store paths.
A Nix language value, or thunk that may evaluate to a value.