-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Efficiently build a bytestring from smaller chunks -- -- Efficiently (both fast and memory efficient) build a bytestring from -- smaller chunks @package superbuffer @version 0.2.0.0 module Data.ByteString.SuperBuffer -- | The buffer. Internally only a pointer to a C struct. Don't worry, this -- module attempts to make usage of the SuperBuffer as safe as possible -- in terms of memory leaks (even when exceptions occur). data SuperBuffer -- | Allocate a new buffer with a given initial size. The perfect starting -- point depends on the expected total size and the average size for a -- single chunk written with appendBuffer. You can always start -- with 1024 and optimize from there with benchmarks. Please note that -- the SuperBuffer will no longer be valid after this function -- terminates, so do NOT pass it to some other thread without waiting for -- it to finish in the action. withBuffer :: Int64 -> (SuperBuffer -> IO ()) -> IO ByteString -- | Write a bytestring to the buffer and grow the buffer if needed. Note -- that only one thread at any given time may call this function. Use -- appendBufferT when accessing SuperBuffer from multiple -- threads. appendBuffer :: SuperBuffer -> ByteString -> IO () -- | Write a bytestring to the buffer and grow the buffer if needed. This -- function can be used accross different threads, but is slower than -- appendBuffer. appendBufferT :: SuperBuffer -> ByteString -> IO ()