Current section

Files

Jump to
myxql lib myxql text_query.ex
Raw

lib/myxql/text_query.ex

defmodule MyXQL.TextQuery do
@moduledoc false
defstruct [:statement]
end
defmodule MyXQL.TextQueries do
@moduledoc false
defstruct [:statement]
end
defimpl DBConnection.Query, for: [MyXQL.TextQuery, MyXQL.TextQueries] do
def parse(query, _opts), do: query
def describe(query, _opts), do: query
def encode(_query, [], _opts), do: []
def encode(_query, params, _opts) do
raise ArgumentError, "text queries cannot use parameters, got: #{inspect(params)}"
end
def decode(_query, result, _opts), do: result
end
defimpl String.Chars, for: [MyXQL.TextQuery, MyXQL.TextQueries] do
def to_string(%{statement: statement}) do
IO.iodata_to_binary(statement)
end
end