Spectre.Operation.Outcome (Spectre v0.3.0)

Copy Markdown View Source

Typed terminal outcome of an operational loop.

Summary

Types

category()

@type category() ::
  :completed
  | :failed
  | :cancelled
  | :expired
  | :budget_exhausted
  | :unknown_side_effect

t()

@type t() :: %Spectre.Operation.Outcome{
  artifacts: [term()],
  at: non_neg_integer(),
  category: category(),
  consumed: term(),
  last_revision: non_neg_integer() | nil,
  limit: term(),
  metadata: map(),
  partial: map(),
  reason: term(),
  result: term()
}

Functions

new(category, opts \\ [])

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

validate(outcome)

@spec validate(t()) :: :ok | {:error, term()}

validate!(outcome)

@spec validate!(t()) :: t()