-- | Builder {-# LANGUAGE OverloadedStrings #-} module Network.HTTP.Pony.Builder where import Data.ByteString (ByteString) import qualified Data.CaseInsensitive as CI import Pipes as Pipes import qualified Pipes.Attoparsec as AttoParser import Pipes.Network.TCP.Safe import qualified Pipes.Parse as Parser import Pipes.Prelude (tee) import qualified Pipes.Prelude as Pipes import Network.HTTP.Pony.Helper ((-)) import Network.HTTP.Pony.Type import Prelude hiding ((-), log) header :: Monad m => Header -> Producer ByteString m () header (key, value) = do yield - CI.original key yield ": " yield value yield "\n" message :: Monad m => Request ByteString m r -> Producer ByteString m r message (startLine, headers, body) = do yield startLine yield "\n" Pipes.each ~> header - headers yield "\n" body