X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Lucu.git;a=blobdiff_plain;f=Network%2FHTTP%2FLucu%2FMultipartForm.hs;fp=Network%2FHTTP%2FLucu%2FMultipartForm.hs;h=98699e43ca37d2e2a2978236130f50b6a705c04a;hp=ecff350619b31c79c1e1b4ff1e960a3ed68cea9a;hb=90fca0675b1694e69b8e431c989343855cbd125d;hpb=742b0cae221f12eafbf1379b91c473b059efa7d8 diff --git a/Network/HTTP/Lucu/MultipartForm.hs b/Network/HTTP/Lucu/MultipartForm.hs index ecff350..98699e4 100644 --- a/Network/HTTP/Lucu/MultipartForm.hs +++ b/Network/HTTP/Lucu/MultipartForm.hs @@ -26,7 +26,6 @@ import Data.Ascii (Ascii, CIAscii, AsciiBuilder) import Data.Attempt import Data.Attoparsec import qualified Data.Attoparsec.Lazy as LP -import Data.Attoparsec.Parsable import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as LS import Data.ByteString.Lazy.Search @@ -34,6 +33,7 @@ import Data.Collections import Data.Convertible.Base import Data.Convertible.Instances.Ascii () import Data.Convertible.Utils +import Data.Default import Data.List (intercalate) import Data.Maybe import Data.Monoid.Unicode @@ -169,7 +169,8 @@ parsePart boundary src defaultCType = [mimeType| text/plain |] partHeader ∷ Parser Headers -partHeader = crlf *> parser +{-# INLINE partHeader #-} +partHeader = crlf *> def getContDispo ∷ MonadError String m ⇒ Headers → m ContDispo {-# INLINEABLE getContDispo #-} @@ -186,8 +187,9 @@ getContDispo hdrs ⊕ err contentDisposition ∷ Parser ContDispo +{-# INLINEABLE contentDisposition #-} contentDisposition - = (ContDispo <$> (cs <$> token) ⊛ parser) + = (ContDispo <$> (cs <$> token) ⊛ def) "contentDisposition" @@ -198,7 +200,7 @@ getContType hdrs Nothing → return Nothing Just str - → case parseOnly (finishOff parser) $ cs str of + → case parseOnly (finishOff def) $ cs str of Right d → return $ Just d Left err → throwError $ "malformed Content-Type: " ⊕ cs str