where
import Codec.Compression.GZip
import Control.Monad
-import Data.Ascii (CIAscii)
+import Data.Ascii (Ascii, CIAscii)
import qualified Data.Ascii as A
import qualified Data.ByteString.Lazy as L
import Data.Char
-import Data.Foldable
-import Data.List
+import Data.Collections
+import Data.Convertible.Utils
+import Data.List (intersperse)
+import Data.Monoid
import Data.Ratio
import Data.Time
import Language.Haskell.TH.Lib
import Network.HTTP.Lucu.Implant
import Network.HTTP.Lucu.Implant.Rewrite
import Network.HTTP.Lucu.MIMEType
+import Network.HTTP.Lucu.OrphanInstances ()
import Network.HTTP.Lucu.Resource
-import Network.HTTP.Lucu.Utils
+import Prelude hiding (head)
import Prelude.Unicode
header ∷ Input → Doc
]
where
eTagToDoc ∷ ETag → Doc
- eTagToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printETag
+ eTagToDoc = text ∘ convertSuccessVia ((⊥) ∷ Ascii)
mimeTypeToDoc ∷ MIMEType → Doc
mimeTypeToDoc = text ∘ A.toString ∘ A.fromAsciiBuilder ∘ printMIMEType
, text "where"
])
-importDecls ∷ Imports ImportOp → Doc
-importDecls = vcat ∘ map pprImport ∘ toList
+importDecls ∷ Imports → Doc
+importDecls = vcat ∘ map pprImport ∘ fromFoldable
pprImport ∷ ImportOp → Doc
pprImport (QualifiedImp {..})
, hcat [ lparen
, sep $ punctuate comma
$ map (uncurry pprImpName)
- $ toList ns
+ $ fromFoldable ns
, rparen
]
]
resourceDecl ∷ Input → Name → Q [Dec]
resourceDecl i symName
- = sequence [ sigD symName [t| ResourceDef |]
+ = sequence [ sigD symName [t| Resource |]
, valD (varP symName) (normalB (resourceE i)) decls
]
where
decls ∷ [Q Dec]
decls | useGZip i
= [ sigD gzipEncoding [t| CIAscii |]
- , valD (varP gzipEncoding) (normalB (liftCIAscii "gzip")) []
+ , valD (varP gzipEncoding) (normalB (lift ("gzip" ∷ CIAscii))) []
]
| otherwise
= []
resourceE ∷ Input → Q Exp
-resourceE i = [| emptyResource {
+resourceE i = [| mempty {
resGet = $(resGetE i)
, resHead = $(resHeadE i)
}
lastModDecl ∷ Input → Q [Dec]
lastModDecl (Input {..})
= sequence [ sigD lastModified [t| UTCTime |]
- , valD (varP lastModified) (normalB (liftUTCTime iLastMod)) []
+ , valD (varP lastModified) (normalB (lift iLastMod)) []
]
contTypeDecl ∷ Input → Q [Dec]
binDecl i@(Input {..})
| useGZip i
= sequence [ sigD gzippedData [t| L.ByteString |]
- , valD (varP gzippedData) (normalB (liftLazyByteString iGZipped)) []
+ , valD (varP gzippedData) (normalB (lift iGZipped)) []
]
| otherwise
= sequence [ sigD rawData [t| L.ByteString |]
- , valD (varP rawData) (normalB (liftLazyByteString iRawData)) []
+ , valD (varP rawData) (normalB (lift iRawData)) []
]
rules ∷ Rules
, qualifyAll "Data.Ascii" "A"
, qualifyAll "Data.ByteString.Char8" "B"
, qualifyAll "Data.ByteString.Lazy.Internal" "L"
- , qualifyAll "Data.Map" "M"
+ , qualifyAll "Data.CaseInsensitive" "CI"
+ , qualifyAll "Data.Collections" "C"
, qualifyAll "Data.Text" "T"
, unqualifyAll "Network.HTTP.Lucu.ETag" "Network.HTTP.Lucu"
, unqualifyAll "Network.HTTP.Lucu.Resource" "Network.HTTP.Lucu"
, unqualifyAll "Network.HTTP.Lucu.Resource.Internal" "Network.HTTP.Lucu"
- , unqualifyAll "Network.HTTP.Lucu.MIMEParams" "Network.HTTP.Lucu"
, unqualifyAll "Network.HTTP.Lucu.MIMEType" "Network.HTTP.Lucu"
, unqualify 'when "Control.Monad"
+ , unqualify 'mempty "Data.Monoid"
, unqualify '(%) "Data.Ratio"
, unqualify ''DiffTime "Data.Time"
, unqualifyIn 'ModifiedJulianDay ''Day "Data.Time"