Flexflow

ci Hex.pm Hex.pm Documentation Last Updated

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
<summary><img src="https://g.gravizo.com/source/custom_mark10?https%3A%2F%2Fraw.githubusercontent.com%2Fclszzyh%2Fflexflow%2Fmaster%2FREADME.md" width="50%"></summary>```dot// custom_mark10digraph verify { size = "4,4"; uncertified [label=uncertified,shape=box]; certified [label=certified,shape=box]; rejected [label=rejected,shape=box]; canceled [label=canceled,shape=box]; uncertified -> certified [label=cert]; uncertified -> uncertified [label=modify,color=blue]; uncertified -> rejected [label=reject]; uncertified -> canceled [label=cancel]; rejected -> uncertified [label=modify]; rejected -> canceled [label=cancel];}// custom_mark10```

See Also