# `SPARQL.Query.Result.Format.Decoder`
[🔗](https://github.com/rdf-elixir/sparql-ex/blob/v0.3.12/lib/sparql/query/result/format/decoder.ex#L1)

A behaviour for decoders of strings encoded in a specific `SPARQL.Query.Result.Format`.

# `decode`

```elixir
@callback decode(
  String.t(),
  keyword()
) :: {:ok, SPARQL.Query.Result.t()} | {:error, any()}
```

Decodes a serialized `SPARQL.Query.Result` from the given string.

It returns an `{:ok, result_set}` tuple or `{:error, reason}` if an error occurs.

# `decode!`

```elixir
@callback decode!(
  String.t(),
  keyword()
) :: SPARQL.Query.Result.t()
```

Decodes a serialized `SPARQL.Query.Result` from the given string.

As opposed to `decode`, it raises an exception if an error occurs.

Note: The `__using__` macro automatically provides an overridable default
implementation based on the non-bang `decode` function.

---

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