module FDB::Tuple

def self._code_for(v)

def self._code_for(v)
  if v.nil?
    @@NULL_CODE
  elsif v.kind_of? String
    if v.encoding == Encoding::BINARY || v.encoding == Encoding::ASCII
      @@BYTES_CODE
    elsif v.encoding == Encoding::UTF_8
      @@STRING_CODE
    else
      raise ArgumentError, "unsupported encoding #{v.encoding.name}"
    end
  elsif v.kind_of? Integer
     @@INT_ZERO_CODE
  elsif v.kind_of? TrueClass
    @@TRUE_CODE
  elsif v.kind_of? FalseClass
    @@FALSE_CODE
  elsif v.kind_of? SingleFloat
    @@FLOAT_CODE
  elsif v.kind_of? Float
    @@DOUBLE_CODE
  elsif v.kind_of? UUID
    @@UUID_CODE
  elsif v.kind_of? Array
    @@NESTED_CODE
  else
    raise ArgumentError, "unsupported type #{v.class}"
  end
end