lib/depot/registry.ex

defmodule Depot.Registry do
  @moduledoc """
  Elixir registry to register adapter instances on for adapters, which need processes.

  ## Registration

  Register instances with the via tuple of: `Depot.Registry.via(adapter, name)`

  """

  @doc false
  def child_spec(_) do
    Registry.child_spec(keys: :unique, name: __MODULE__)
  end

  @doc false
  def via(adapter, name) do
    {:via, Registry, {__MODULE__, {adapter, name}}}
  end
end