git.iko.soy/typeable/http-api-data
on master help sign in
Add To/FromHttpApiData instances for lazy Text
4610703Nickolay Kudasov
Web/HttpApiData.hs+4−1
@@ -19,9 +19,10 @@ import Data.Int
19import Data.Word
19import Data.Word
20
20
21import Data.Text (Text)
21import Data.Text (Text)
22−import Data.Text.Read (signed, decimal, rational, Reader)
23import Data.Text.Encoding (encodeUtf8, decodeUtf8)
22import Data.Text.Encoding (encodeUtf8, decodeUtf8)
23+import Data.Text.Read (signed, decimal, rational, Reader)
24import qualified Data.Text as Text
24import qualified Data.Text as Text
25+import qualified Data.Text.Lazy as TL
25
26
26import Text.Read (readMaybe)
27import Text.Read (readMaybe)
27
28
@@ -92,6 +93,7 @@ instance ToHttpApiData Word32 where toUrlPiece = showUrlPiece
92instance ToHttpApiData Word64 where toUrlPiece = showUrlPiece
93instance ToHttpApiData Word64 where toUrlPiece = showUrlPiece
93instance ToHttpApiData [Char] where toUrlPiece = Text.pack
94instance ToHttpApiData [Char] where toUrlPiece = Text.pack
94instance ToHttpApiData Text where toUrlPiece = id
95instance ToHttpApiData Text where toUrlPiece = id
96+instance ToHttpApiData TL.Text where toUrlPiece = TL.toStrict
95
97
96instance FromHttpApiData Bool where parseUrlPiece = readEitherUrlPiece
98instance FromHttpApiData Bool where parseUrlPiece = readEitherUrlPiece
97instance FromHttpApiData Double where parseUrlPiece = runReader rational
99instance FromHttpApiData Double where parseUrlPiece = runReader rational
@@ -109,4 +111,5 @@ instance FromHttpApiData Word32 where parseUrlPiece = runReader decimal
109instance FromHttpApiData Word64 where parseUrlPiece = runReader decimal
111instance FromHttpApiData Word64 where parseUrlPiece = runReader decimal
110instance FromHttpApiData [Char] where parseUrlPiece = Right . Text.unpack
112instance FromHttpApiData [Char] where parseUrlPiece = Right . Text.unpack
111instance FromHttpApiData Text where parseUrlPiece = Right
113instance FromHttpApiData Text where parseUrlPiece = Right
114+instance FromHttpApiData TL.Text where parseUrlPiece = Right . TL.fromStrict
112
115