@@ -12,6 +12,7 @@ module Web.HttpApiData (
12 -- * Classes
12 -- * Classes
13 ToHttpApiData (..),
13 ToHttpApiData (..),
14 FromHttpApiData (..),
14 FromHttpApiData (..),
15 -- * Utility functions
16 -- * Utility functions
16 parseMaybeHttpApiData,
17 parseMaybeHttpApiData,
17 showUrlPiece,
18 showUrlPiece,
@@ -28,8 +29,8 @@ import Data.Word
28import Data.Text (Text)
29import Data.Text (Text)
29import Data.Text.Encoding (encodeUtf8, decodeUtf8)
30import Data.Text.Encoding (encodeUtf8, decodeUtf8)
30import Data.Text.Read (signed, decimal, rational, Reader)
31import Data.Text.Read (signed, decimal, rational, Reader)
31−import qualified Data.Text as Text
32+import qualified Data.Text as T
32−import qualified Data.Text.Lazy as TL
33+import qualified Data.Text.Lazy as L
34import Data.Time (Day)
35import Data.Time (Day)
@@ -79,11 +80,11 @@ parseMaybeHttpApiData parse input =
80-- | Convert to URL piece using @'Show'@ instance.
81-- | Convert to URL piece using @'Show'@ instance.
81showUrlPiece :: Show a => a -> Text
82showUrlPiece :: Show a => a -> Text
82−showUrlPiece = Text.pack . show
83+showUrlPiece = T.pack . show
84-- | Parse URL piece using @'Read'@ instance.
85-- | Parse URL piece using @'Read'@ instance.
85readMaybeUrlPiece :: Read a => Text -> Maybe a
86readMaybeUrlPiece :: Read a => Text -> Maybe a
86−readMaybeUrlPiece = readMaybe . Text.unpack
87+readMaybeUrlPiece = readMaybe . T.unpack
88-- | Parse URL piece using @'Read'@ instance.
89-- | Parse URL piece using @'Read'@ instance.
89readEitherUrlPiece :: Read a => Text -> Either Text a
90readEitherUrlPiece :: Read a => Text -> Either Text a
@@ -93,10 +94,10 @@ readEitherUrlPiece = parseMaybeHttpApiData readMaybeUrlPiece
93runReader :: Reader a -> Text -> Either Text a
94runReader :: Reader a -> Text -> Either Text a
94runReader reader input =
95runReader reader input =
95 case reader input of
96 case reader input of
96− Left err -> Left (Text.pack err)
97+ Left err -> Left (T.pack err)
97 Right (x, rest)
98 Right (x, rest)
98− | Text.null rest -> Right x
99+ | T.null rest -> Right x
99− | otherwise -> Left ("could not convert: `" <> input <> "'")
100+ | otherwise -> Left ("could not convert: `" <> input <> "'")
101instance ToHttpApiData Bool where toUrlPiece = showUrlPiece
102instance ToHttpApiData Bool where toUrlPiece = showUrlPiece
102instance ToHttpApiData Double where toUrlPiece = showUrlPiece
103instance ToHttpApiData Double where toUrlPiece = showUrlPiece
@@ -112,9 +113,9 @@ instance ToHttpApiData Word8 where toUrlPiece = showUrlPiece
112instance ToHttpApiData Word16 where toUrlPiece = showUrlPiece
113instance ToHttpApiData Word16 where toUrlPiece = showUrlPiece
113instance ToHttpApiData Word32 where toUrlPiece = showUrlPiece
114instance ToHttpApiData Word32 where toUrlPiece = showUrlPiece
114instance ToHttpApiData Word64 where toUrlPiece = showUrlPiece
115instance ToHttpApiData Word64 where toUrlPiece = showUrlPiece
115−instance ToHttpApiData String where toUrlPiece = Text.pack
116+instance ToHttpApiData String where toUrlPiece = T.pack
116instance ToHttpApiData Text where toUrlPiece = id
117instance ToHttpApiData Text where toUrlPiece = id
117−instance ToHttpApiData TL.Text where toUrlPiece = TL.toStrict
118+instance ToHttpApiData L.Text where toUrlPiece = L.toStrict
118instance ToHttpApiData Day where toUrlPiece = showUrlPiece
119instance ToHttpApiData Day where toUrlPiece = showUrlPiece
120instance FromHttpApiData Bool where parseUrlPiece = readEitherUrlPiece
121instance FromHttpApiData Bool where parseUrlPiece = readEitherUrlPiece
@@ -131,9 +132,9 @@ instance FromHttpApiData Word8 where parseUrlPiece = runReader decimal
131instance FromHttpApiData Word16 where parseUrlPiece = runReader decimal
132instance FromHttpApiData Word16 where parseUrlPiece = runReader decimal
132instance FromHttpApiData Word32 where parseUrlPiece = runReader decimal
133instance FromHttpApiData Word32 where parseUrlPiece = runReader decimal
133instance FromHttpApiData Word64 where parseUrlPiece = runReader decimal
134instance FromHttpApiData Word64 where parseUrlPiece = runReader decimal
134−instance FromHttpApiData String where parseUrlPiece = Right . Text.unpack
135+instance FromHttpApiData String where parseUrlPiece = Right . T.unpack
135instance FromHttpApiData Text where parseUrlPiece = Right
136instance FromHttpApiData Text where parseUrlPiece = Right
136−instance FromHttpApiData TL.Text where parseUrlPiece = Right . TL.fromStrict
137+instance FromHttpApiData L.Text where parseUrlPiece = Right . L.fromStrict
137instance FromHttpApiData Day where parseUrlPiece = readEitherUrlPiece
138instance FromHttpApiData Day where parseUrlPiece = readEitherUrlPiece
139-- $examples
140-- $examples