Maxine v0.1.0 Maxine.Machine

The actual machine structure

Link to this section Summary

Link to this section Types

Link to this type alias_map()
alias_map() :: %{required(name()) => [name()]}
Link to this type callback()
callback() ::
  (from :: state_name(), to :: state_name(), event_name(), event_options() ->
     %Maxine.Data{app: term(), options: term(), tmp: term()})
Link to this type callback_map()
callback_map() :: %{
  entering: cb_listing(),
  leaving: cb_listing(),
  events: cb_listing(),
  index: cb_index()
}
Link to this type cb_index()
cb_index() :: %{required(cb_name()) => callback()}
Link to this type cb_listing()
cb_listing() :: %{required(name()) => cb_name() | [cb_name()]}
Link to this type cb_name()
cb_name() :: atom()
Link to this type event_name()
event_name() :: atom()
Link to this type event_options()
event_options() :: []
Link to this type state_name()
state_name() :: atom()
Link to this type t()
t() :: %Maxine.Machine{
  aliases: alias_map(),
  callbacks: callback_map(),
  initial: state_name(),
  transitions: transition_map()
}
Link to this type transition_map()
transition_map() :: %{
  required(event_name()) => %{required(state_name()) => state_name()}
}