Packages
postgrex
1.0.0-rc.0
1.0.0-rc.1
retired
1.0.0-rc.0
retired
0.22.3
0.22.2
0.22.1
0.22.0
0.21.1
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.0
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.13
0.15.12
0.15.11
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.13.0-rc.0
0.12.2
0.12.1
0.12.0
0.11.2
0.11.1
0.11.0
0.10.0
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.2
PostgreSQL driver for Elixir
Retired package: Release invalid - Superseded by v0.13.0-rc.0
Current section
Files
Jump to
Current section
Files
lib/postgrex/extensions/float4.ex
defmodule Postgrex.Extensions.Float4 do
@moduledoc false
import Postgrex.BinaryUtils
use Postgrex.BinaryExtension, send: "float4send"
def encode(_, :NaN, _, _),
do: <<0::1, 255, 1::1, 0::22>>
def encode(_, :inf, _, _),
do: <<0::1, 255, 0::23>>
def encode(_, :"-inf", _, _),
do: <<1::1, 255, 0::23>>
def encode(_, n, _, _) when is_number(n),
do: <<n :: float32>>
def encode(type_info, value, _, _) do
raise ArgumentError, Postgrex.Utils.encode_msg(type_info, value, "a float")
end
def decode(_, <<0::1, 255, 0::23>>, _, _),
do: :inf
def decode(_, <<1::1, 255, 0::23>>, _, _),
do: :"-inf"
def decode(_, <<_::1, 255, _::23>>, _, _),
do: :NaN
def decode(_, <<n :: float32>>, _, _),
do: n
end