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

A behaviour for encoders of `SPARQL.Query.Result`s in a specific `SPARQL.Query.Result.Format`s.

# `encode`

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

Encodes a `SPARQL.Query.Result`.

It returns an `{:ok, string}` tuple, with `string` being the serialized
`SPARQL.Query.Result`, or `{:error, reason}` if an error occurs.

# `encode!`

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

Encodes a `SPARQL.Query.Result`.

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

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

---

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