# `Beaver.MLIR.CompilationCache`

Common access to the incremental compiler's memory and filesystem caches.

A cache can be `:memory`, `{:memory, server}`, `{:file, directory}`, a memory
cache server, or a `Beaver.MLIR.CompilationCache.File` value.

# `cache`

```elixir
@type cache() ::
  :memory
  | {:memory, GenServer.server()}
  | {:file, Path.t()}
  | GenServer.server()
  | Beaver.MLIR.CompilationCache.File.t()
```

# `clear`

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

# `delete`

```elixir
@spec delete(cache(), String.t()) :: :ok | {:error, term()}
```

# `get`

```elixir
@spec get(cache(), String.t()) :: {:ok, map()} | :miss | {:error, term()}
```

# `put`

```elixir
@spec put(cache(), String.t(), map()) :: :ok | {:error, term()}
```

