Packages
tds
0.1.2
2.3.8
2.3.7
2.3.6
2.3.5
2.3.4
2.3.2
2.3.1
2.3.0
2.3.0-rc.1
2.3.0-rc.0
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
2.0.4
2.0.3
2.0.2
2.0.1
2.0.1-rc2
2.0.1-rc1
2.0.0
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.0
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Microsoft SQL Server client (Elixir implementation of the MS TDS protocol)
Current section
Files
Jump to
Current section
Files
lib/tds/utils.ex
defmodule Tds.Utils do
def to_hex_list(x) when is_list(x) do
Enum.map x, &( Base.encode16(<<&1>>))
end
def to_hex_list(x) when is_binary(x) do
:erlang.binary_to_list(x)
|> to_hex_list
end
def to_hex_string(x) when is_binary(x) do
to_hex_list(x)
|> to_hex_string
end
def to_hex_string(x) when is_list(x) do
Enum.join x, " "
end
def to_little_ucs2(s) do
to_char_list(s) |> Enum.map_join(&(<<&1::little-size(16)>>))
end
def ucs2_to_utf(s) do
to_char_list(s) |> Enum.reject(&(&1 == 0)) |> to_string
end
def to_boolean(<<1>>) do
true
end
def to_boolean(<<0>>) do
false
end
def collation_to_charset(<<collation::binary>>) do
end
def error(error, s) do
if reply(error, s) do
{:stop, :normal, s}
else
{:stop, error, s}
end
end
def reply(reply, %{queue: queue}) do
case :queue.out(queue) do
{{:value, {_command, from, _timer}}, _queue} ->
GenServer.reply(from, reply)
true
{:empty, _queue} ->
false
end
end
def reply(reply, {_, _} = from) do
GenServer.reply(from, reply)
true
end
def pow10(num,0), do: num
def pow10(num,pow) when pow > 0 do
pow10(10*num, pow - 1)
end
def pow10(num,pow) when pow < 0 do
pow10(num/10, pow + 1)
end
end