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

Copy Markdown View Source

Trace payload for {:trace, %__MODULE__{}} - emitted with compute_entry_set's result, before any state is entered (docs/observability.md constraint 2's "entry set" row). indexes are the states to be entered (constraint 3, integer indexes), in entry order.

configuration is the full configuration (ADR-0005, ancestors included) as it stands after every state in indexes has been added, including the parallel entry ordering enter_states/2 performs, so a consumer can render the configuration per microstep without folding deltas. It is deliberately the only field taken from the post-entry state; macrostep/microstep/round are stamped from the state as it stood at the phase boundary the payload names, which is what keeps this payload an "entry set" marker rather than an after-the-fact report.

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 (:indexes, :configuration).

Types

t()

@type t() :: %Statifier.Effect.Trace.EntrySet{
  configuration: MapSet.t(non_neg_integer()),
  indexes: [non_neg_integer()],
  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 (:indexes, :configuration).