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
@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
@spec new(machine_state :: Statifier.MachineState.t(), fields :: keyword()) :: t()
Stamps macrostep/microstep/round from machine_state and sets
fields (:configuration, optional :donedata).