lib/xema/loader.ex
defmodule Xema.Loader do
@moduledoc """
The behaviour for loaders.
For the loader configuration see "[Configure a loader](loader.html)".
"""
@doc """
This function expected an URI, to fetch the required data to create a schema.
"""
@callback fetch(uri :: URI.t()) :: {:ok, any} | {:error, any}
defp impl, do: Application.get_env(:xema, :loader)
def fetch(uri), do: impl().fetch(uri)
end