# `Ascii.Registry`
[🔗](https://github.com/houllette/ascii_art/blob/main/lib/ascii/registry.ex#L1)

Every piece, by its upstream file name.

An explicit map from slug to module, written out rather than discovered, so
the set of pieces is what this file says and a slug from input is only ever
looked up, never turned into an atom or a module name.

# `all`

```elixir
@spec all() :: [{String.t(), module()}]
```

Every `{slug, module}`, sorted by slug.

# `fetch`

```elixir
@spec fetch(slug :: String.t()) :: {:ok, module()} | :error
```

The module for a slug.

# `slug`

```elixir
@spec slug(module :: module()) :: {:ok, String.t()} | :error
```

The slug of a registered module.

# `slugs`

```elixir
@spec slugs() :: [String.t()]
```

Every slug, sorted.

---

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