mirror of
https://github.com/cjdev2/text-conversions.git
synced 2024-12-04 19:39:53 +03:00
Safe conversions between Haskell textual types
.github/workflows | ||
src/Data/Text | ||
test | ||
.gitignore | ||
cabal.project | ||
cabal.project.ci | ||
CHANGELOG.md | ||
LICENSE | ||
README.md | ||
Setup.hs | ||
text-conversions.cabal |
text-conversions
This is a small library to ease the pain when converting between the many different string types in Haskell. Unlike some other libraries that attempt to solve the same problem, text-conversions is:
-
Safe. This library treats binary data (aka
ByteString
) like binary data, and it does not assume a particular encoding, nor does it ever throw exceptions when failing to decode. It does, however, provide failable conversions between binary data and textual data. -
Extensible. It’s easy to add or derive your own instances of the typeclasses to use your own types through the same interface.
Here’s an example of using text-conversions to convert between textual types:
> convertText ("hello" :: String) :: Text
"hello"
And here’s an example of converting from UTF-8 encoded binary data to a textual format:
> decodeConvertText (UTF8 ("hello" :: ByteString)) :: Maybe Text
Just "hello"
> decodeConvertText (UTF8 ("\xc3\x28" :: ByteString)) :: Maybe Text
Nothing