Current section
Files
Jump to
Current section
Files
src/postgleam@codec@oid_codec.erl
-module(postgleam@codec@oid_codec).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/postgleam/codec/oid_codec.gleam").
-export([encode/1, decode/1, matcher/0]).
-file("src/postgleam/codec/oid_codec.gleam", 42).
-spec encode(postgleam@value:value()) -> {ok, bitstring()} | {error, binary()}.
encode(Val) ->
case Val of
{oid, N} ->
case (N >= 0) andalso (N =< 4294967295) of
true ->
{ok, <<N:32/big>>};
false ->
{error,
<<"oid codec: value out of range (0..4294967295)"/utf8>>}
end;
_ ->
{error, <<"oid codec: expected Oid value"/utf8>>}
end.
-file("src/postgleam/codec/oid_codec.gleam", 53).
-spec decode(bitstring()) -> {ok, postgleam@value:value()} | {error, binary()}.
decode(Data) ->
case Data of
<<N:32/big>> ->
{ok, {oid, N}};
_ ->
{error, <<"oid codec: expected 4 bytes"/utf8>>}
end.
-file("src/postgleam/codec/oid_codec.gleam", 32).
-spec build(integer()) -> postgleam@codec:codec().
build(Type_oid) ->
{codec, <<"oid"/utf8>>, Type_oid, binary, fun encode/1, fun decode/1}.
-file("src/postgleam/codec/oid_codec.gleam", 22).
-spec matcher() -> postgleam@codec:codec_matcher().
matcher() ->
{codec_matcher,
<<"oid"/utf8>>,
[26, 24, 2205, 2206, 28, 29],
none,
binary,
fun build/1}.