5 module Network.HTTP.Lucu.ContentCoding
13 import Control.Applicative
14 import Data.Ascii (CIAscii, toCIAscii)
15 import Data.Attoparsec.Char8
18 import Network.HTTP.Lucu.Parser.Http
19 import Prelude.Unicode
24 , aeQValue ∷ !(Maybe Double)
28 instance Ord AcceptEncoding where
29 (AcceptEncoding c1 q1) `compare` (AcceptEncoding c2 q2)
32 | otherwise = compare c1 c2
37 acceptEncodingListP ∷ Parser [AcceptEncoding]
38 acceptEncodingListP = listOf accEncP
40 accEncP ∷ Parser AcceptEncoding
41 accEncP = do coding ← toCIAscii <$> token
46 return $ AcceptEncoding (normalizeCoding coding) qVal
48 normalizeCoding ∷ CIAscii → CIAscii
49 normalizeCoding coding
50 = if coding ≡ "x-gzip" then
53 if coding ≡ "x-compress" then
58 unnormalizeCoding ∷ CIAscii → CIAscii
59 unnormalizeCoding coding
60 = if coding ≡ "gzip" then
63 if coding ≡ "compress" then