# `AshCache.Store`
[🔗](https://github.com/Undeadlol1/ash_cache/blob/v0.1.0/lib/ash_cache/store.ex#L1)

Facade over the configured storage adapter.

Adapter resolution, most specific first:

  1. `Process.put(:ash_cache_adapter, module)` — per-process override,
     used by tests that need to swap storage for a single test
  2. `config :ash_cache, adapter: module` — app-wide configuration
     (the test env configures `AshCache.Store.Adapters.ProcessLocal`
     so async tests are isolated by construction)
  3. `AshCache.Store.Adapters.Cachex` — production default

# `adapter`

```elixir
@spec adapter() :: module()
```

# `clear`

```elixir
@spec clear(atom()) :: :ok | {:error, term()}
```

# `delete`

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

# `get`

```elixir
@spec get(atom(), term()) :: {:ok, term()} | {:error, term()}
```

# `put`

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

---

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