behaves_like v0.5.0 BehavesLike View Source

Turns a module’s specs into callbacks.

Lets you state that a module behaves like another, without writing behaviour callbacks.

For example:

  defmodule API do
    import BehavesLike, only: [spec_and_callback: 1]

    spec_and_callback get(binary()) :: {:ok, any()} | {:error, any()}
    def get(id) do
      Backend.get(id)
    end
  end

  defmodule Backend do
    @behaviour API

    @impl true
    def get(id) do
      database().get(id)
    end
  end

Link to this section Summary

Link to this section Functions

Link to this macro spec_and_callback(spec) View Source (macro)