Bloccs.Compiler (bloccs v0.1.0)

Copy Markdown View Source

Compiles a parsed network manifest into Broadway-based source files written to _build/<MIX_ENV>/bloccs_generated/<network>/.

Two stages:

Then the caller Code.require_file/1s the emitted files (or Mix.Task does it as part of bloccs.compile) and starts the supervisor.

Summary

Functions

Compile a network. Writes source files to dest_dir (defaults to _build/<MIX_ENV>/bloccs_generated/<network_id>).

Convenience: compile the network and immediately Code.require_file/1 every emitted source so the modules become callable.

Functions

compile(network, opts \\ [])

@spec compile(
  Bloccs.Manifest.Network.t(),
  keyword()
) :: {:ok, %{supervisor: module(), files: [Path.t()]}}

Compile a network. Writes source files to dest_dir (defaults to _build/<MIX_ENV>/bloccs_generated/<network_id>).

Returns {:ok, %{supervisor: module, files: [path]}}.

compile_and_load(network, opts \\ [])

@spec compile_and_load(
  Bloccs.Manifest.Network.t(),
  keyword()
) :: {:ok, module()}

Convenience: compile the network and immediately Code.require_file/1 every emitted source so the modules become callable.