1%%% @doc
2%%% Codec for `bool'.
3%%% `unknown' is represented by `null'.
4%%% https://www.postgresql.org/docs/current/static/datatype-boolean.html
5%%% $PG$/src/backend/utils/adt/bool.c
6%%% @end
7%%% Created : 12 Oct 2017 by Sergey Prokhorov <me@seriyps.ru>
8
9-module(epgsql_codec_boolean).
10-behaviour(epgsql_codec).
11
12-export([init/2, names/0, encode/3, decode/3, decode_text/3]).
13
14-export_type([data/0]).
15
16-type data() :: boolean().
17
18init(_, _) -> [].
19
20names() ->
21    [bool].
22
23encode(true, bool, _) ->
24    <<1:1/big-signed-unit:8>>;
25encode(false, bool, _) ->
26    <<0:1/big-signed-unit:8>>.
27
28decode(<<1:1/big-signed-unit:8>>, bool, _) -> true;
29decode(<<0:1/big-signed-unit:8>>, bool, _) -> false.
30
31decode_text(V, _, _) -> V.
32