Oi.Compile.Bundle (oi v0.6.2)

Copy Markdown

Container for a compiled Orchid recipe and its associated metadata.

A Bundle is the static output of Oi.Compile.compile_graph/2 — it pairs an Orchid.Recipe with the boundary information (requires/exports) and the interventions bound to the nodes within this cluster.

Summary

Functions

Compile graph + cluster into static Bundles (no interventions).

Types

id()

@type id() :: String.t() | atom()

t()

@type t() :: %Oi.Compile.Bundle{
  exports: [Orchid.Step.io_key()],
  inputs: [Orchid.Step.io_key()],
  node_ids: [Oi.Topology.Graph.Node.id()],
  recipe: Orchid.Recipe.t(),
  requires: [Orchid.Step.io_key()]
}

Functions

compile_graph(graph, cluster_decl \\ %Cluster{})

@spec compile_graph(
  Oi.Topology.Graph.t(Orchid.Step.implementation()),
  Oi.Topology.Cluster.t()
) ::
  {:error, :cycle_detected} | {:ok, [t()]}

Compile graph + cluster into static Bundles (no interventions).

Reusable across different intervention sets.