Simple wrapper to use wreq without Strings.
This library wraps all functions from Network.Wreq
which expects a String
and replaces the String
Type with the Network.Wreq.StringLess.StringLike
Type-Class.
Instances for Network.Wreq.StringLess.StringLike
are given for:
Data.Text
Data.Text.Lazy
Data.ByteString.UTF8
Data.ByteString.Lazy.UTF8
So you can use any of this types instead of String
.
To use this library, replace your the wreq
dependency from your cabal
file with wreq-stringless
and import Network.Wreq.StringLess
instead of Network.Wreq
.
The '0.5.9.x' version of this library wraps the '0.5.x.x' version of wreq
.
see https://github.com/j-keck/wreq-stringless/tree/master/examples for examples.
wreq-stringless: Simple wrapper to use wreq without Strings
This Haskell library wraps Network.Wreq to use the functions without Strings.
You can use:
- Data.Text
- Data.Text.Lazy
- Data.ByteString.UTF8
- Data.ByteString.Layz.UTF8
for all functions from Network.Wreq where the original implementation use Strings.
Example:
{-# LANGUAGE OverloadedStrings #-}
module Main where
import qualified Data.Text as T
import Lens.Micro.Extras (view)
import qualified Network.Wreq as Wreq
import qualified Network.Wreq.StringLess as Wreq'
-- say we use a alternate prelude like 'Protolude', and we don't use Strings
-- or we have the url from somewhere else, and it's not a String.
url :: T.Text
url = "http://httpbin.org"
main :: IO ()
main = do
-- with plain wreq
view Wreq.responseStatus <$> Wreq.get (T.unpack url) >>= print
-- with wreq-stringless - no manual conversion necessary
view Wreq'.responseStatus <$> Wreq'.get url >>= print
How to use it:
- replace your wreq dependency with wreq-stringless
- replace the import Network.Wreq with Network.Wreq.StringLess.