]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/Utils.hs
Code clean-up using convertible-text.
[Lucu.git] / Network / HTTP / Lucu / Utils.hs
index 297ea3a762ef64992466469a3845053ffb86d7af..7537eafcffacf7d8edf755e2bb8fea30cd636547 100644 (file)
@@ -36,11 +36,12 @@ import Data.Char
 import Data.Collections
 import Data.Collections.BaseInstances ()
 import Data.Convertible.Base
+import Data.Convertible.Instances.Ascii ()
+import Data.Convertible.Instances.Text ()
 import Data.Convertible.Instances.Time ()
 import Data.Maybe
 import Data.Monoid.Unicode
 import Data.Text (Text)
-import qualified Data.Text as T
 import Data.Time
 import Network.URI
 import Prelude hiding (last, mapM, null, reverse)
@@ -73,9 +74,9 @@ splitBy isSep src
 -- >>> quoteStr "ab\"c"
 -- "\"ab\\\"c\""
 quoteStr ∷ Ascii → AsciiBuilder
-quoteStr str = A.toAsciiBuilder "\"" ⊕
-               go (A.toByteString str) (∅) ⊕
-               A.toAsciiBuilder "\""
+quoteStr str = cs ("\"" ∷ Ascii) ⊕
+               go (cs str) (∅)   ⊕
+               cs ("\"" ∷ Ascii)
     where
       go ∷ ByteString → AsciiBuilder → AsciiBuilder
       go bs ab
@@ -85,10 +86,10 @@ quoteStr str = A.toAsciiBuilder "\"" ⊕
                       → ab ⊕ b2ab x
                   | otherwise
                       → go (BS.tail y)
-                           (ab ⊕ b2ab x ⊕ A.toAsciiBuilder "\\\"")
+                           (ab ⊕ b2ab x ⊕ cs ("\\\"" ∷ Ascii))
 
       b2ab ∷ ByteString → AsciiBuilder
-      b2ab = A.toAsciiBuilder ∘ A.unsafeFromByteString
+      b2ab = cs ∘ A.unsafeFromByteString
 
 -- |>>> parseWWWFormURLEncoded "aaa=bbb&ccc=ddd"
 -- [("aaa", "bbb"), ("ccc", "ddd")]
@@ -97,7 +98,7 @@ parseWWWFormURLEncoded src
     -- THINKME: We could gain some performance by using attoparsec
     -- here.
     | src ≡ ""  = []
-    | otherwise = do pairStr ← splitBy (\ c → c ≡ ';' ∨ c ≡ '&') (A.toString src)
+    | otherwise = do pairStr ← splitBy (\ c → c ≡ ';' ∨ c ≡ '&') (cs src)
                      let (key, value) = break (≡ '=') pairStr
                      return ( unescape key
                             , unescape $ case value of
@@ -116,7 +117,7 @@ parseWWWFormURLEncoded src
 -- "example.com"
 uriHost ∷ URI → Host
 {-# INLINE uriHost #-}
-uriHost = CI.mk ∘ T.pack ∘ uriRegName ∘ fromJust ∘ uriAuthority
+uriHost = CI.mk ∘ cs ∘ uriRegName ∘ fromJust ∘ uriAuthority
 
 -- |>>> uriPathSegments "http://example.com/foo/bar"
 -- ["foo", "bar"]