module Kredis::TypeCasting

def string_to_type(value, type)

def string_to_type(value, type)
  raise InvalidType if type && !TYPES.key?(type)
  TYPES[type || :string].cast(value)
end

def strings_to_types(values, type)

def strings_to_types(values, type)
  Array(values).flatten.map { |value| string_to_type(value, type) }
end

def type_to_string(value, type)

def type_to_string(value, type)
  raise InvalidType if type && !TYPES.key?(type)
  TYPES[type || :string].serialize(value)
end

def types_to_strings(values, type)

def types_to_strings(values, type)
  Array(values).flatten.map { |value| type_to_string(value, type) }
end