# `DrinkMeAlice.Error`

A typed error: a stable `code` string and a bounded `detail` term.

Codes are stable strings (`malformed_message`,
`bounded_limit_exceeded`, `invalid_input`, `internal_error`,
`database_unavailable`, …) so a host can map this struct onto its own
error type with a field copy.

# `t`

```elixir
@type t() :: %DrinkMeAlice.Error{code: binary(), detail: term()}
```

# `bounded_exceeded`

```elixir
@spec bounded_exceeded(term()) :: t()
```

# `invalid`

```elixir
@spec invalid(term()) :: t()
```

# `malformed`

```elixir
@spec malformed(term()) :: t()
```

# `new`

```elixir
@spec new(binary(), term()) :: t()
```

---

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