# `ExWapp.JSON.Library`
[🔗](https://github.com/elchemista/ex_wapp/blob/v0.1.5/lib/ex_wapp/json.ex#L16)

Contract expected from the configured JSON implementation.

A library does not have to declare this behaviour explicitly. An adapter
module is sufficient when its native API has a different return shape.

# `reason`

```elixir
@type reason() :: term()
```

# `decode`

```elixir
@callback decode(iodata()) :: {:ok, term()} | {:error, reason()}
```

# `encode`

```elixir
@callback encode(term()) :: {:ok, iodata()} | {:error, reason()}
```

---

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