@@ -1,3 +1,4 @@
1{-# LANGUAGE DefaultSignatures #-}
2{-# LANGUAGE DefaultSignatures #-}
2{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE OverloadedStrings #-}
@@ -38,6 +39,10 @@ import qualified Data.Text.Lazy as L
38import Data.Time (Day)
39import Data.Time (Day)
39import Data.Version
40import Data.Version
42+#if MIN_VERSION_base(4,8,0)
41import Text.Read (readMaybe)
46import Text.Read (readMaybe)
42import Text.ParserCombinators.ReadP (readP_to_S)
47import Text.ParserCombinators.ReadP (readP_to_S)
@@ -134,6 +139,11 @@ instance ToHttpApiData Char where toUrlPiece = T.singleton
134instance ToHttpApiData Version where
139instance ToHttpApiData Version where
135 toUrlPiece = T.pack . showVersion
140 toUrlPiece = T.pack . showVersion
142+#if MIN_VERSION_base(4,8,0)
143+instance ToHttpApiData Void where
137instance ToHttpApiData Bool where toUrlPiece = showUrlPiece
147instance ToHttpApiData Bool where toUrlPiece = showUrlPiece
138instance ToHttpApiData Double where toUrlPiece = showUrlPiece
148instance ToHttpApiData Double where toUrlPiece = showUrlPiece
139instance ToHttpApiData Float where toUrlPiece = showUrlPiece
149instance ToHttpApiData Float where toUrlPiece = showUrlPiece
@@ -201,6 +211,11 @@ instance FromHttpApiData Text where parseUrlPiece = Right
201instance FromHttpApiData L.Text where parseUrlPiece = Right . L.fromStrict
211instance FromHttpApiData L.Text where parseUrlPiece = Right . L.fromStrict
202instance FromHttpApiData Day where parseUrlPiece = readEitherUrlPiece
212instance FromHttpApiData Day where parseUrlPiece = readEitherUrlPiece
214+#if MIN_VERSION_base(4,8,0)
215+instance FromHttpApiData Void where
216+ parseUrlPiece _ = Left "Void cannot be parsed!"
205-- >>> parseUrlPiece "Just 123" :: Either Text (Maybe Int)
220-- >>> parseUrlPiece "Just 123" :: Either Text (Maybe Int)
206-- Right (Just 123)
221-- Right (Just 123)