API Reference zigler v0.9.1

Modules

Zig

Inline NIF support for Zig

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.