Skip to main content

lib/skuld/repo/effectful.ex

# Effectful contract for Repo operations.
#
# Generates effectful @callback declarations from the plain
# Repo.Contract, plus __callbacks__/0 and __port_effectful__?/0.
#
defmodule Skuld.Repo.Effectful do
  @moduledoc """
  Effectful behaviour for `Skuld.Repo.Contract`.

  Defines computation-returning callbacks for each Repo operation.
  Effectful implementations declare `@behaviour Skuld.Repo.Effectful`.
  """

  require Skuld.Repo.Contract

  use Skuld.Adapter.EffectfulContract,
    double_down_contract: Skuld.Repo.Contract
end