Lifecycle or terminal outcome for an admitted slow effect.
queued and running are lifecycle feedback. canceled, failed, stale,
and completed are terminal. Domain handlers may reclassify a completed
worker result as stale while atomically applying it to current editor state.
Summary
Functions
Builds a canceled terminal candidate.
Builds a completed terminal candidate.
Builds a failed terminal candidate.
Builds a queued lifecycle outcome with scheduler-authored queue metadata.
Builds a running lifecycle outcome.
Reclassifies an outcome as stale after domain-owned application.
Returns whether the outcome is terminal.
Types
@type lifecycle_status() :: :queued | :running
@type status() :: lifecycle_status() | terminal_status()
@type t() :: %MingaEditor.Effect.Outcome{ queue_position: pos_integer() | nil, queue_total: pos_integer() | nil, reason: term() | nil, request: MingaEditor.Effect.Request.t(), result: term() | nil, status: status() }
@type terminal_status() :: :canceled | :failed | :stale | :completed
Functions
@spec canceled(MingaEditor.Effect.Request.t(), term()) :: t()
Builds a canceled terminal candidate.
@spec completed(MingaEditor.Effect.Request.t(), term()) :: t()
Builds a completed terminal candidate.
@spec failed(MingaEditor.Effect.Request.t(), term()) :: t()
Builds a failed terminal candidate.
@spec queued(MingaEditor.Effect.Request.t(), pos_integer(), pos_integer()) :: t()
Builds a queued lifecycle outcome with scheduler-authored queue metadata.
@spec running(MingaEditor.Effect.Request.t()) :: t()
Builds a running lifecycle outcome.
Reclassifies an outcome as stale after domain-owned application.
Returns whether the outcome is terminal.