ash_oban/lib/actor_persister.ex

17 lines
441 B
Elixir
Raw Normal View History

defmodule AshOban.ActorPersister do
@moduledoc """
A behaviour for storing and retrieving an actor from oban job arguments
"""
@type actor_json :: any
@type actor :: any
@callback store(actor :: actor) :: actor_json :: actor_json
@callback lookup(actor_json :: actor_json | nil) :: {:ok, actor | nil} | {:error, Ash.Error.t()}
defmacro __using__(_) do
quote do
@behaviour AshOban.ActorPersister
end
end
end