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
22 = AcceptEncoding !CIAscii !(Maybe Double)
25 instance Ord AcceptEncoding where
26 (AcceptEncoding c1 q1) `compare` (AcceptEncoding c2 q2)
29 | otherwise = compare c1 c2
34 acceptEncodingListP ∷ Parser [(CIAscii, Maybe Double)]
35 acceptEncodingListP = listOf accEncP
37 accEncP ∷ Parser (CIAscii, Maybe Double)
38 accEncP = do coding ← toCIAscii <$> token
43 return (normalizeCoding coding, qVal)
45 normalizeCoding ∷ CIAscii → CIAscii
46 normalizeCoding coding
47 = if coding ≡ "x-gzip" then
50 if coding ≡ "x-compress" then
55 unnormalizeCoding ∷ CIAscii → CIAscii
56 unnormalizeCoding coding
57 = if coding ≡ "gzip" then
60 if coding ≡ "compress" then