API Reference zigler v0.9.1
Modules
Fist phase of the Zig compilation process.
Code for interfacing with std.build.Builder
, the interface for programmatically invoking
build code with the zig build
command.
all code responsible for generating zig code lives in this module.
contains all parts of the Zig library involved in calling the
zig compiler toolchain, especially with regards to the zig
command, except
for assembling the build.zig file, which is performed by the
Zig.Builder
module.
handles instrumenting elixir code with hooks for zig NIFs.
Translates the docstrings from your Zig code into Elixir documentation.
handles parsing zig code for the purposes of documentation
decides what features should be documented on zig doc
.
this struct represents all information a zigler module bound to a nif should have. WIP.
Adapter code for synchronous nifs
Adapter code for test nifs.
Generates code for threaded nifs.
Generates code for yielding nifs.
main parsing module: Handles general parsing of nif, resource directives and code elements succeeding those.
parses errors emitted by the zig compiler
For parsing, looking for imports, cimports, and usingnamespace directives.
This datastructure represents structured information about a single nif
inside of a Zig.sigil_Z/2
block. This is used to generate the
exported_nifs
variable which is an array of ErlNifFunc
structs. The
following keys are implemented
resource parser object
resource cleanup struct
parses zig code and converts test blocks to test functions
handles creating typespecs for zig Nif functions
Hooks your zig code into ExUnit, by converting zig tests into ExUnit tests.
This struct contains adapters designed to facilitate interfacing the BEAM's c-style helpers for NIFs with a more idiomatic Zig-style of programming, for example, the use of slices instead of null-terminated arrays as strings.
general-purpose BEAM mutex wrapped into the zig mutex interface
Provides erlang's NIF convenience functions to your Zig code.
Mix Tasks
Used to generate documentation from your zig code and incorporate it into your Elixir documentation.