Nix 2.28.3
Nix, the purely functional package manager: C API (experimental)
 
Loading...
Searching...
No Matches
nix_api_expr.h File Reference

Main entry for the libexpr C bindings. More...

#include "nix_api_store.h"
#include "nix_api_util.h"
#include <stddef.h>

Go to the source code of this file.

Macros

#define __has_c_attribute(x)
 
#define NIX_DEPRECATED(msg)
 
#define NIX_VALUE_CALL(context, state, value, fn, ...)
 Calls a Nix function with multiple arguments.
 

Typedefs

typedef struct nix_eval_state_builder nix_eval_state_builder
 Builder for EvalState.
 
typedef struct EvalState EvalState
 
typedef struct nix_value nix_value
 A Nix language value, or thunk that may evaluate to a value.
 

Functions

 NIX_DEPRECATED ("use nix_value instead") typedef nix_value Value
 
nix_err nix_libexpr_init (nix_c_context *context)
 Initialize the Nix language evaluator.
 
nix_err nix_expr_eval_from_string (nix_c_context *context, EvalState *state, const char *expr, const char *path, nix_value *value)
 Parses and evaluates a Nix expression from a string.
 
nix_err nix_value_call (nix_c_context *context, EvalState *state, nix_value *fn, nix_value *arg, nix_value *value)
 Calls a Nix function with an argument.
 
nix_err nix_value_call_multi (nix_c_context *context, EvalState *state, nix_value *fn, size_t nargs, nix_value **args, nix_value *value)
 Calls a Nix function with multiple arguments.
 
nix_err nix_value_force (nix_c_context *context, EvalState *state, nix_value *value)
 Forces the evaluation of a Nix value.
 
nix_err nix_value_force_deep (nix_c_context *context, EvalState *state, nix_value *value)
 Forces the deep evaluation of a Nix value.
 
nix_eval_state_buildernix_eval_state_builder_new (nix_c_context *context, Store *store)
 Create a new nix_eval_state_builder.
 
nix_err nix_eval_state_builder_load (nix_c_context *context, nix_eval_state_builder *builder)
 Read settings from the ambient environment.
 
nix_err nix_eval_state_builder_set_lookup_path (nix_c_context *context, nix_eval_state_builder *builder, const char **lookupPath)
 Set the lookup path for <...> expressions.
 
EvalStatenix_eval_state_build (nix_c_context *context, nix_eval_state_builder *builder)
 Create a new Nix language evaluator state.
 
void nix_eval_state_builder_free (nix_eval_state_builder *builder)
 Free a nix_eval_state_builder.
 
EvalStatenix_state_create (nix_c_context *context, const char **lookupPath, Store *store)
 Create a new Nix language evaluator state.
 
void nix_state_free (EvalState *state)
 Frees a Nix state.
 
nix_err nix_gc_incref (nix_c_context *context, const void *object)
 Increment the garbage collector reference counter for the given object.
 
nix_err nix_gc_decref (nix_c_context *context, const void *object)
 Decrement the garbage collector reference counter for the given object.
 
void nix_gc_now ()
 Trigger the garbage collector manually.
 
void nix_gc_register_finalizer (void *obj, void *cd, void(*finalizer)(void *obj, void *cd))
 Register a callback that gets called when the object is garbage collected.
 

Detailed Description

Main entry for the libexpr C bindings.