Maxine v0.1.0 Maxine

Functions for dealing with machines.

Link to this section Summary

Functions

Where the magic happens. Put in examples later

Exception-raising wrapper (unwrapper?) for the above

Create a new state machine, optionally specifying a starting state other than the one given in the machine

Link to this section Functions

Link to this function advance(current, event, options \\ [])
advance(
  current :: %Maxine.State{
    data: term(),
    machine: term(),
    name: term(),
    previous: term()
  },
  event :: Maxine.Machine.event_name(),
  options :: Maxine.Machine.event_options()
) ::
  {:ok,
   %Maxine.State{data: term(), machine: term(), name: term(), previous: term()}}
  | {:error, Maxine.Errors.error()}

Where the magic happens. Put in examples later

Link to this function advance!(current, event, options \\ [])
advance!(
  current :: %Maxine.State{
    data: term(),
    machine: term(),
    name: term(),
    previous: term()
  },
  event :: Maxine.Machine.event_name(),
  options :: Maxine.Machine.event_options()
) ::
  %Maxine.State{data: term(), machine: term(), name: term(), previous: term()}
  | no_return()

Exception-raising wrapper (unwrapper?) for the above.

Link to this function generate(machine, initial \\ nil)
generate(
  machine :: %Maxine.Machine{
    aliases: term(),
    callbacks: term(),
    initial: term(),
    transitions: term()
  },
  initial :: Maxine.Machine.state_name()
) :: %Maxine.State{
  data: term(),
  machine: term(),
  name: term(),
  previous: term()
}

Create a new state machine, optionally specifying a starting state other than the one given in the machine.