Hoogle Search
Within LTS Haskell 24.39 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
singletons-base Data.Foldable.Singletons No documentation available.
-
singletons-base Data.Foldable.Singletons No documentation available.
-
singletons-base Data.Traversable.Singletons No documentation available.
-
singletons-base Data.Traversable.Singletons No documentation available.
transformRequestBody :: (InputStream ByteString -> IO (InputStream ByteString)) -> Snap ()snap-core Snap.Core Normally Snap is careful to ensure that the request body is fully consumed after your web handler runs, but before the Response body is streamed out the socket. If you want to transform the request body into some output in O(1) space, you should use this function. Take care: in order for this to work, the HTTP client must be written with input-to-output streaming in mind. Note that upon calling this function, response processing finishes early as if you called finishWith. Make sure you set any content types, headers, cookies, etc. before you call this function. Example:
ghci> :set -XOverloadedStrings ghci> import qualified Data.ByteString.Char8 as B8 ghci> import Data.Char (toUpper) ghci> import qualified Data.Map as M ghci> import qualified Snap.Test as T ghci> import qualified System.IO.Streams as Streams ghci> let r = T.put "/foo" "text/plain" "some text" ghci> let f = Streams.map (B8.map toUpper) ghci> T.runHandler r (transformRequestBody f >> readRequestBody 2048 >>= writeLBS) HTTP/1.1 200 OK server: Snap/test date: Thu, 07 Aug 2014 20:30:15 GMT SOME TEXT
rspTransformingRqBody :: Response -> !Boolsnap-core Snap.Internal.Core If true, we are transforming the request body with transformRequestBody
transformRequestBody :: (InputStream ByteString -> IO (InputStream ByteString)) -> Snap ()snap-core Snap.Internal.Core Normally Snap is careful to ensure that the request body is fully consumed after your web handler runs, but before the Response body is streamed out the socket. If you want to transform the request body into some output in O(1) space, you should use this function. Take care: in order for this to work, the HTTP client must be written with input-to-output streaming in mind. Note that upon calling this function, response processing finishes early as if you called finishWith. Make sure you set any content types, headers, cookies, etc. before you call this function. Example:
ghci> :set -XOverloadedStrings ghci> import qualified Data.ByteString.Char8 as B8 ghci> import Data.Char (toUpper) ghci> import qualified Data.Map as M ghci> import qualified Snap.Test as T ghci> import qualified System.IO.Streams as Streams ghci> let r = T.put "/foo" "text/plain" "some text" ghci> let f = Streams.map (B8.map toUpper) ghci> T.runHandler r (transformRequestBody f >> readRequestBody 2048 >>= writeLBS) HTTP/1.1 200 OK server: Snap/test date: Thu, 07 Aug 2014 20:30:15 GMT SOME TEXT
c_format_http_time :: CTime -> CString -> IO ()snap-core Snap.Internal.Http.Types No documentation available.
c_format_log_time :: CTime -> CString -> IO ()snap-core Snap.Internal.Http.Types No documentation available.
rspTransformingRqBody :: Response -> !Boolsnap-core Snap.Internal.Http.Types If true, we are transforming the request body with transformRequestBody