Packages

Type-safe finite state machine library for Gleam

Current section

Files

Jump to
scamper include scamper@config_Config.hrl
Raw

include/scamper@config_Config.hrl

-record(config, {
transitions :: list(scamper@config:transition_rule(any(), any(), any())),
final_states :: list(any()),
on_enter :: list({any(),
fun((any(), any()) -> {ok, any()} | {error, binary()})}),
on_exit :: list({any(),
fun((any(), any()) -> {ok, any()} | {error, binary()})}),
on_transition_state :: list({any(),
fun((any(), any(), any(), any()) -> {ok, any()} | {error, binary()})}),
global_on_enter :: list(fun((any(), any()) -> {ok, any()} |
{error, binary()})),
global_on_exit :: list(fun((any(), any()) -> {ok, any()} | {error, binary()})),
global_on_transition :: list(fun((any(), any(), any(), any()) -> {ok, any()} |
{error, binary()})),
invariants :: list(fun((any()) -> {ok, nil} | {error, binary()})),
event_policy :: scamper@config:event_policy(),
history_limit :: gleam@option:option(integer()),
history_snapshots :: boolean(),
timeouts :: list({any(), integer(), any()}),
timestamp_fn :: fun(() -> integer())
}).