Statifier.Effect.Trace.Done (Statifier v2.0.0)

Copy Markdown View Source

Trace payload for {:trace, %__MODULE__{}} - emitted alongside Statifier.Effect.Done at top-level final entry / exit_interpreter (docs/observability.md constraint 2's "done" row). donedata and configuration mirror the core :done effect's payload - both effects are built from the same configuration_at_exit binding in Statifier.Interpreter.exit_interpreter/1, so they can never disagree. This effect exists for the observability row (ADR-0012, docs/observability.md:68), not because it is the only carrier of the configuration.

Built with new/2, never a struct literal, so macrostep/microstep/ round are always stamped from the Statifier.MachineState at hand.

Summary

Functions

Stamps macrostep/microstep/round from machine_state and sets fields (:configuration, optional :donedata).

Types

t()

@type t() :: %Statifier.Effect.Trace.Done{
  configuration: MapSet.t(non_neg_integer()),
  donedata: term() | nil,
  macrostep: non_neg_integer(),
  microstep: non_neg_integer(),
  round: non_neg_integer()
}

Functions

new(machine_state, fields)

@spec new(machine_state :: Statifier.MachineState.t(), fields :: keyword()) :: t()

Stamps macrostep/microstep/round from machine_state and sets fields (:configuration, optional :donedata).