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