View Source Corsa.StateM.Next (corsa v0.1.2)
The next
annotation is utilized to delineate the transition function of the state machine.
Summary
Functions
Errors
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError1 do
...> use Corsa.StateM.Next
...> next f(x, y) do x + y end
...> next f(x, y) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) @next for function 'f/2' already defined
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError2 do
...> use Corsa.StateM.Next
...> next f(x, x) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) arguments in @next should contain different names
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError3 do
...> use Corsa.StateM.Next
...> next f(x, _) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) arguments in @next cannot be ignored with _
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError4 do
...> use Corsa.StateM, state: true
...> next f(x, result) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) result cannot be an argument in @next
Functions
Errors
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError1 do
...> use Corsa.StateM.Next
...> next f(x, y) do x + y end
...> next f(x, y) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) @next for function 'f/2' already defined
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError2 do
...> use Corsa.StateM.Next
...> next f(x, x) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) arguments in @next should contain different names
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError3 do
...> use Corsa.StateM.Next
...> next f(x, _) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) arguments in @next cannot be ignored with _
iex> defmodule Elixir.Corsa.StateM.Next.ExampleNextError4 do
...> use Corsa.StateM, state: true
...> next f(x, result) do x + y end
...> def f(x, y) do x + y end
...> end
** (Corsa.StateM.NextError) result cannot be an argument in @next