lib/firebirdex/encoding.ex

defmodule Firebirdex.Encoding do
  def from_string!(s, :utf_8), do: s
  def from_string!(s, :cp932), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP932")
  # there is no mapping for euc_jp
  def from_string!(s, :cp737), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP737")
  def from_string!(s, :cp437), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP437")
  def from_string!(s, :cp850), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP850")
  def from_string!(s, :cp865), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP865")
  def from_string!(s, :cp860), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP860")
  def from_string!(s, :cp863), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP863")
  def from_string!(s, :cp775), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP775")
  def from_string!(s, :cp862), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP862")
  def from_string!(s, :cp864), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP864")
  def from_string!(s, :iso8859_1), do: Codepagex.from_string!(s, "ISO8859/8859-1")
  def from_string!(s, :iso8859_2), do: Codepagex.from_string!(s, "ISO8859/8859-2")
  def from_string!(s, :iso8859_3), do: Codepagex.from_string!(s, "ISO8859/8859-3")
  def from_string!(s, :iso8859_4), do: Codepagex.from_string!(s, "ISO8859/8859-4")
  def from_string!(s, :iso8859_5), do: Codepagex.from_string!(s, "ISO8859/8859-5")
  def from_string!(s, :iso8859_6), do: Codepagex.from_string!(s, "ISO8859/8859-6")
  def from_string!(s, :iso8859_7), do: Codepagex.from_string!(s, "ISO8859/8859-7")
  def from_string!(s, :iso8859_8), do: Codepagex.from_string!(s, "ISO8859/8859-8")
  def from_string!(s, :iso8859_9), do: Codepagex.from_string!(s, "ISO8859/8859-9")
  def from_string!(s, :iso8859_13), do: Codepagex.from_string!(s, "ISO8859/8859-13")
  # there is no mapping for euc_kr
  def from_string!(s, :cp852), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP852")
  def from_string!(s, :cp857), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP857")
  def from_string!(s, :cp861), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP861")
  def from_string!(s, :cp866), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP866")
  def from_string!(s, :cp869), do: Codepagex.from_string!(s, "VENDORS/MICSFT/PC/CP869")
  def from_string!(s, :cp1250), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1250")
  def from_string!(s, :cp1251), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1251")
  def from_string!(s, :cp1252), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1252")
  def from_string!(s, :cp1253), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1253")
  def from_string!(s, :cp1254), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1254")
  def from_string!(s, :cp950), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP950")
  def from_string!(s, :cp936), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP936")
  def from_string!(s, :cp1255), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1255")
  def from_string!(s, :cp1256), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1256")
  def from_string!(s, :cp1257), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1257")
  def from_string!(s, :koi8_r), do: Codepagex.from_string!(s, "VENDORS/MISC/KOI8-R")
  def from_string!(s, :koi8_u), do: Codepagex.from_string!(s, "VENDORS/MISC/KOI8-U")
  def from_string!(s, :cp1258), do: Codepagex.from_string!(s, "VENDORS/MICSFT/WINDOWS/CP1258")

  def to_string!(b, :utf_8), do: b
  def to_string!(b, :cp932), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP932")
  # there is no mapping for euc_jp
  def to_string!(b, :cp737), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP737")
  def to_string!(b, :cp437), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP437")
  def to_string!(b, :cp850), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP850")
  def to_string!(b, :cp865), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP865")
  def to_string!(b, :cp860), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP860")
  def to_string!(b, :cp863), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP863")
  def to_string!(b, :cp775), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP775")
  def to_string!(b, :cp862), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP862")
  def to_string!(b, :cp864), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP864")
  def to_string!(b, :iso8859_1), do: Codepagex.to_string!(b, "ISO8859/8859-1")
  def to_string!(b, :iso8859_2), do: Codepagex.to_string!(b, "ISO8859/8859-2")
  def to_string!(b, :iso8859_3), do: Codepagex.to_string!(b, "ISO8859/8859-3")
  def to_string!(b, :iso8859_4), do: Codepagex.to_string!(b, "ISO8859/8859-4")
  def to_string!(b, :iso8859_5), do: Codepagex.to_string!(b, "ISO8859/8859-5")
  def to_string!(b, :iso8859_6), do: Codepagex.to_string!(b, "ISO8859/8859-6")
  def to_string!(b, :iso8859_7), do: Codepagex.to_string!(b, "ISO8859/8859-7")
  def to_string!(b, :iso8859_8), do: Codepagex.to_string!(b, "ISO8859/8859-8")
  def to_string!(b, :iso8859_9), do: Codepagex.to_string!(b, "ISO8859/8859-9")
  def to_string!(b, :iso8859_13), do: Codepagex.to_string!(b, "ISO8859/8859-13")
  # there is not mapping for euc_kr
  def to_string!(b, :cp852), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP852")
  def to_string!(b, :cp857), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP857")
  def to_string!(b, :cp861), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP861")
  def to_string!(b, :cp866), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP866")
  def to_string!(b, :cp869), do: Codepagex.to_string!(b, "VENDORS/MICSFT/PC/CP869")
  def to_string!(b, :cp1250), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1250")
  def to_string!(b, :cp1251), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1251")
  def to_string!(b, :cp1252), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1252")
  def to_string!(b, :cp1253), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1253")
  def to_string!(b, :cp1254), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1254")
  def to_string!(b, :cp950), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP950")
  def to_string!(b, :cp936), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP936")
  def to_string!(b, :cp1255), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1255")
  def to_string!(b, :cp1256), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1256")
  def to_string!(b, :cp1257), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1257")
  def to_string!(b, :koi8_r), do: Codepagex.to_string!(b, "VENDORS/MISC/KOI8-R")
  def to_string!(b, :koi8_u), do: Codepagex.to_string!(b, "VENDORS/MISC/KOI8-U")
  def to_string!(b, :cp1258), do: Codepagex.to_string!(b, "VENDORS/MICSFT/WINDOWS/CP1258")
end