API Reference flexflow v0.1.4

Modules

Usage

defmodule Verify do
  @moduledoc false

  defmodule Uncertified do
    use Flexflow.Node
  end

  defmodule Certified do
    use Flexflow.Node
  end

  defmodule Rejected do
    use Flexflow.Node
  end

  defmodule Canceled do
    use Flexflow.Node
  end

  defmodule Cert do
    use Flexflow.Transition
    @impl true
    def handle_enter(_, _, _), do: :pass
  end

  defmodule Modify do
    use Flexflow.Transition
    @impl true
    def handle_enter(_, _, _), do: :pass
  end

  defmodule Reject do
    use Flexflow.Transition
    @impl true
    def handle_enter(_, _, _), do: :pass
  end

  defmodule Cancel do
    use Flexflow.Transition
    @impl true
    def handle_enter(_, _, _), do: :pass
  end

  use Flexflow.Process, version: 1

  defnode Uncertified
  defnode Certified
  defnode Rejected
  defnode Canceled

  deftransition Cert, {Uncertified, Certified}
  deftransition Modify, {Uncertified, Uncertified}
  deftransition Reject, {Uncertified, Rejected}
  deftransition Cancel, {Uncertified, Canceled}
  deftransition Modify, {Rejected, Uncertified}
  deftransition Cancel, {Rejected, Canceled}
end

Default Map: %{max_loop_limit: 1000, telemetry_logger: true, telemetry_logger_level: :debug}

Examples

iex> defmodule DemoRegistry do
...>   use Elixir.Flexflow.ProcessRegistry
...> end
...> match?({:via, Registry, {Elixir.Flexflow.ProcessRegistry, {DemoRegistry, :abc}}}, DemoRegistry.via_tuple(:abc))
true

Telemetry

Transition