Spectre.Operation.Execution (Spectre v0.3.0)

Copy Markdown View Source

Portable output envelope produced by an operational executor.

Ordinary functions may still return a plain value. Executors that need audit data can return this struct to attach a receipt, usage, artifacts and redacted metadata to the fenced Result without gaining access to canonical state.

Summary

Types

t()

@type t() :: %Spectre.Operation.Execution{
  artifacts: [term()],
  metadata: map(),
  receipt: term(),
  usage: map(),
  value: term()
}

Functions

new(value, opts \\ [])

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

normalize(execution)

@spec normalize(t() | term()) :: t()

validate(execution)

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

validate!(execution)

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