# `ExEEx.Adapter`

Specifies the minimal API required from storage adapters.

# `expand_path`

```elixir
@callback expand_path(filepath :: String.t()) :: String.t()
```

# `expand_path`

```elixir
@callback expand_path(filepath :: String.t(), rootdir :: String.t()) :: String.t()
```

# `read`

```elixir
@callback read(filepath :: String.t()) :: {:ok, String.t()} | {:error, term()}
```

# `read`

```elixir
@callback read(filepath :: String.t(), rootdir :: String.t()) ::
  {:ok, String.t()} | {:error, term()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
