]> gitweb @ CieloNegro.org - Lucu.git/blobdiff - Network/HTTP/Lucu/ETag.hs
ImplantFile started working again.
[Lucu.git] / Network / HTTP / Lucu / ETag.hs
index d87100095a71e78cafeba5435cdf02c397111b26..b8191a353fd86dd05c325b3d99d872d5a34e3e9b 100644 (file)
@@ -1,5 +1,8 @@
 {-# LANGUAGE
-    OverloadedStrings
+    DeriveDataTypeable
+  , OverloadedStrings
+  , RecordWildCards
+  , TemplateHaskell
   , UnicodeSyntax
   #-}
 -- |Entity tags
@@ -19,7 +22,9 @@ import Control.Monad
 import Data.Ascii (Ascii, AsciiBuilder)
 import qualified Data.Ascii as A
 import Data.Attoparsec.Char8
+import Data.Data
 import Data.Monoid.Unicode
+import Language.Haskell.TH.Syntax
 import Network.HTTP.Lucu.Parser
 import Network.HTTP.Lucu.Parser.Http hiding (token)
 import Network.HTTP.Lucu.Utils
@@ -34,7 +39,15 @@ data ETag = ETag {
       -- |An opaque string. Only characters from 0x20 (sp) to 0x7e (~)
       -- are allowed.
     , etagToken  ∷ !Ascii
-    } deriving (Eq, Show)
+    } deriving (Eq, Show, Data, Typeable)
+
+instance Lift ETag where
+    lift (ETag {..})
+        = [| ETag {
+               etagIsWeak = $(lift etagIsWeak)
+             , etagToken  = $(liftAscii etagToken)
+             }
+           |]
 
 -- |Convert an 'ETag' to an 'AsciiBuilder'.
 printETag ∷ ETag → AsciiBuilder