# `Macaw.Layers.Store.Memory`
[🔗](https://github.com/dcoai/macaw_layers/blob/v0.2.2/lib/macaw/layers/store/memory.ex#L1)

The default store, held in memory (spec/03 §1.2): an `Agent` the host starts under its
own supervisor, its context the agent.

    children = [{Macaw.Layers.Store.Memory, types: [MyApp.Layout], name: MyApp.Library}]
    Macaw.Layers.Store.put({Macaw.Layers.Store.Memory, MyApp.Library}, entry)

Ids are issued from one sequence per kind that never repeats, a deleted id never
reissued, so a stale id cannot resolve to something new and ids sort by creation. Its
import is `Macaw.Layers.Store.relocate/3`, applied to a copy of its state and swapped in
whole, so a failed import leaves nothing behind.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `start_link`

```elixir
@spec start_link(keyword()) :: Agent.on_start()
```

The store, started: `types:` the fragment types it holds (required; default closed, a
type not listed is not storable, and two declaring one kind raise `ArgumentError`),
`check:` the host's check over each imported entry, `name:` as `Agent` takes it.

---

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