Packages
xandra
0.13.0
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc.9
0.18.0-rc.8
0.18.0-rc.7
0.18.0-rc.6
0.18.0-rc.5
0.18.0-rc.4
0.18.0-rc.3
0.18.0-rc.2
0.18.0-rc.1
0.17.0
0.16.0
0.15.0
0.15.0-rc.1
0.14.0
0.13.1
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
Fast, simple, and robust Cassandra driver for Elixir.
Current section
Files
Jump to
Current section
Files
lib/xandra/simple.ex
defmodule Xandra.Simple do
@moduledoc false
defstruct [:statement, :values, :default_consistency, :protocol_module]
@type t :: %__MODULE__{
statement: Xandra.statement(),
values: Xandra.values() | nil,
default_consistency: atom() | nil,
protocol_module: module() | nil
}
defimpl DBConnection.Query do
alias Xandra.Frame
def parse(query, _options) do
query
end
def encode(query, values, options) do
Frame.new(:query, Keyword.take(options, [:compressor, :tracing]))
|> query.protocol_module.encode_request(%{query | values: values}, options)
|> Frame.encode(query.protocol_module)
end
def decode(query, %Frame{} = frame, options) do
query.protocol_module.decode_response(frame, query, options)
end
def describe(query, _options) do
query
end
end
end