iconv-typed: Type safe iconv wrapper
- Type safe iconv wrapper
An experiment in bringing type safety to the iconv package.
- Usage Example
This is almost a drop-in replacement. Compare the original code from iconv
:
module Main where import Codec.Text.IConv main :: IO () main = print $ convert "UTF-8" "LATIN1" "hello"
With the equivalent in `iconv-typed`:
module Main where import Codec.Text.IConv.Typed main :: IO () main = print $ convert @"UTF-8" @"LATIN1" "hello"
As a result, this code will compile and run only if the passed encoding resolves to a supported encoding (as retrieved at compile time by calling "iconv -l"). For example, the following won't compile:
main = print $ convert @"UFT-8" "LATIN1" "hello"
As UFT
is mispelled.
Using GHC < 8.0 that doesn't supports TypeInType
? No problem, we've got you covered!
module Main where import Codec.Text.IConv.Typed main :: IO () main = print $ convert (E :: E "UTF-8") (E :: E "LATIN1") "hello"
Modules
- Codec
- Text
- IConv
- Codec.Text.IConv.Typed
- Codec.Text.IConv.Typed.TH
- Codec.Text.IConv.Typed
- IConv
- Text
Downloads
- iconv-typed-0.2.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.2.0.0 |
---|---|
Dependencies | base (>=4.7 && <5), bytestring, iconv (<0.5), shelly (<1.8.0.0), template-haskell (<3.0.0.0), text (<1.4.0.0) [details] |
License | BSD-3-Clause |
Copyright | 2016 Alfredo Di Napoli |
Author | Alfredo Di Napoli |
Maintainer | alfredo.dinapoli@gmail.com |
Category | Web |
Home page | https://github.com/adinapoli/iconv-typed#readme |
Source repo | head: git clone https://github.com/adinapoli/iconv-typed |
Uploaded | by AlfredoDiNapoli at 2016-10-25T19:22:16Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 1893 total (12 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs not available [build log] All reported builds failed as of 2016-11-19 [all 7 reports] |