Skip to content

Commit e4f7942

Browse files
committed
Simplify decode simple handling to avoid unused clauses
1 parent df184a4 commit e4f7942

1 file changed

Lines changed: 6 additions & 45 deletions

File tree

lib/postgrex/type_module.ex

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -470,25 +470,16 @@ defmodule Postgrex.TypeModule do
470470
end
471471

472472
defp decode_simple() do
473-
rest = quote do: rest
474-
acc = quote do: acc
475-
476-
dispatch = decode_simple_dispatch(Postgrex.Extensions.Raw, rest, acc)
477-
478473
quote do
479474
@doc false
480-
def decode_simple(binary) do
481-
decode_simple(binary, [])
482-
end
475+
def decode_simple(<<>>),
476+
do: []
483477

484-
defp decode_simple(<<>>, unquote(acc)), do: Enum.reverse(acc)
485-
defp decode_simple(<<unquote(rest)::binary>>, unquote(acc)), do: unquote(dispatch)
486-
end
487-
end
478+
def decode_simple(<<-1::int32(), rest::binary>>),
479+
do: [@null | decode_simple(rest)]
488480

489-
defp decode_simple_dispatch(extension, rest, acc) do
490-
quote do
491-
unquote(extension)(unquote(rest), nil, unquote(acc), &decode_simple/2)
481+
def decode_simple(<<len::int32(), value::binary-size(len), rest::binary>>),
482+
do: [:binary.copy(value) | decode_simple(rest)]
492483
end
493484
end
494485

@@ -716,17 +707,6 @@ defmodule Postgrex.TypeModule do
716707
unquote(extension)(rest, var!(mod), [unquote(body) | acc])
717708
end
718709

719-
defp unquote(extension)(
720-
<<unquote(pattern), rest::binary>>,
721-
var!(mod),
722-
acc,
723-
callback
724-
)
725-
when unquote(guard) do
726-
_ = var!(mod)
727-
unquote(extension)(rest, var!(mod), [unquote(body) | acc], callback)
728-
end
729-
730710
defp unquote(extension)(
731711
<<unquote(pattern), rest::binary>>,
732712
var!(mod),
@@ -767,17 +747,6 @@ defmodule Postgrex.TypeModule do
767747
unquote(extension)(rest, var!(mod), [decoded | acc])
768748
end
769749

770-
defp unquote(extension)(
771-
<<unquote(pattern), rest::binary>>,
772-
var!(mod),
773-
acc,
774-
callback
775-
) do
776-
_ = var!(mod)
777-
decoded = unquote(body)
778-
unquote(extension)(rest, var!(mod), [decoded | acc], callback)
779-
end
780-
781750
defp unquote(extension)(
782751
<<unquote(pattern), rest::binary>>,
783752
var!(mod),
@@ -818,14 +787,6 @@ defmodule Postgrex.TypeModule do
818787
acc
819788
end
820789

821-
defp unquote(extension)(<<-1::int32(), rest::binary>>, var!(mod), acc, callback) do
822-
unquote(extension)(rest, var!(mod), [@null | acc], callback)
823-
end
824-
825-
defp unquote(extension)(<<rest::binary-size(0)>>, _, acc, callback) do
826-
callback.(rest, acc)
827-
end
828-
829790
defp unquote(extension)(<<-1::int32(), rest::binary>>, _mod, oids, types, n, acc) do
830791
decode_tuple(rest, oids, types, n, acc)
831792
end

0 commit comments

Comments
 (0)