Runic.Workflow.InputBinding (Runic v0.1.0-alpha.9)

Copy Markdown View Source

Internal, serializable lowering node for named component-port connections.

An input binding projects safe paths from ordinary domain values and assembles the target's declared input shape. It is an invokable compiler artifact, not a registered user-authored component.

Summary

Types

binding()

@type binding() :: %{
  id: Runic.Workflow.Connection.connection_id(),
  source_hash: term(),
  source_port: atom(),
  source_port_index: non_neg_integer(),
  source_port_count: pos_integer(),
  target_port: atom(),
  selector: list(),
  target_path: list()
}

t()

@type t() :: %Runic.Workflow.InputBinding{
  bindings: [binding()],
  hash: non_neg_integer(),
  input_ports: keyword(),
  source_order: [term()],
  target_component_hash: term()
}

Functions

bind(binding, input)

@spec bind(t(), term()) :: term()

new(opts)

@spec new(keyword()) :: t()