zf

zenflows testing
git clone https://s.sonu.ch/~srfsh/zf.git
Log | Files | Refs | Submodules | README | LICENSE

name.ex (810B)


      1 defmodule Postgrex.Extensions.Name do
      2   @moduledoc false
      3   import Postgrex.BinaryUtils, warn: false
      4   use Postgrex.BinaryExtension, send: "namesend"
      5 
      6   def init(opts), do: Keyword.fetch!(opts, :decode_binary)
      7 
      8   def encode(_) do
      9     quote location: :keep, generated: true do
     10       name when is_binary(name) and byte_size(name) < 64 ->
     11         [<<byte_size(name)::int32()>> | name]
     12 
     13       other ->
     14         msg = "a binary string of less than 64 bytes"
     15         raise DBConnection.EncodeError, Postgrex.Utils.encode_msg(other, msg)
     16     end
     17   end
     18 
     19   def decode(:reference) do
     20     quote location: :keep do
     21       <<len::int32(), name::binary-size(len)>> -> name
     22     end
     23   end
     24 
     25   def decode(:copy) do
     26     quote location: :keep do
     27       <<len::int32(), name::binary-size(len)>> -> :binary.copy(name)
     28     end
     29   end
     30 end