lib/finitomata/listener.ex

defmodule Finitomata.Listener do
  @moduledoc """
  The behaviour to be implemented and passed to `use Finitomata` to receive
    all the state transitions notifications.
  """

  alias Finitomata.{State, Transition}

  @doc "To be called after a successful transition"
  @callback after_transition(
              id :: Finitomata.fsm_name(),
              state :: Transition.state(),
              payload :: State.payload()
            ) :: :ok
end