Odyssey.Phase behaviour (odyssey v0.2.1)

View Source

A phase is a single step in a workflow.

Summary

Types

id()

@type id() :: term()

index()

@type index() :: non_neg_integer()

result()

@type result() ::
  {:ok, Odyssey.State.t()}
  | {:suspend, Odyssey.State.t()}
  | {{:suspend, non_neg_integer()}, Odyssey.State.t()}
  | {:stop, Odyssey.State.t()}
  | {{:error, term()}, Odyssey.State.t()}
  | {{:jump, id()}, Odyssey.State.t()}

t()

@type t() :: %Odyssey.Phase{
  args: term(),
  id: id() | nil,
  module: module(),
  name: String.t()
}

Callbacks

run(term, t)

@callback run(term(), Odyssey.State.t()) :: result()

Functions

run(phase, state)