# `Apero.Cache.Adapter`
[🔗](https://github.com/Lorenzo-SF/apero/blob/3.0.0/lib/apero/cache/adapter.ex#L1)

Behaviour for cache backends.

Implement this behaviour to add support for a new cache system.

# `delete`

```elixir
@callback delete(term(), term()) :: :ok | {:error, term()}
```

# `flush`

```elixir
@callback flush(term()) :: :ok | {:error, term()}
```

# `get`

```elixir
@callback get(term(), term()) :: {:ok, term()} | {:error, :not_found}
```

# `member?`

```elixir
@callback member?(term(), term()) :: boolean()
```

# `put`

```elixir
@callback put(term(), term(), term(), keyword()) :: :ok | {:error, term()}
```

# `size`

```elixir
@callback size(term()) :: {:ok, non_neg_integer()} | {:error, term()}
```

# `start_link`

```elixir
@callback start_link(keyword()) :: GenServer.on_start()
```

---

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