| Copyright | (c) 2013 Leon P Smith |
|---|---|
| License | BSD3 |
| Maintainer | Leon P Smith <leon@melding-monads.com> |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell98 |
Blaze.ByteString.Builder.ByteString
Description
- writeByteString :: ByteString -> Write
- fromByteString :: ByteString -> Builder
- fromByteStringWith :: Int -> ByteString -> Builder
- copyByteString :: ByteString -> Builder
- insertByteString :: ByteString -> Builder
- fromLazyByteString :: ByteString -> Builder
- fromLazyByteStringWith :: Int -> ByteString -> Builder
- copyLazyByteString :: ByteString -> Builder
- insertLazyByteString :: ByteString -> Builder
Strict bytestrings
writeByteString :: ByteString -> Write Source
Write a strict ByteString to a buffer.
fromByteString :: ByteString -> Builder Source
Create a Builder denoting the same sequence of bytes as a strict
ByteString.
The Builder inserts large ByteStrings directly, but copies small ones
to ensure that the generated chunks are large on average.
Arguments
| :: Int | Maximal number of bytes to copy. |
| -> ByteString | Strict |
| -> Builder | Resulting |
Construct a Builder that copies the strict ByteStrings, if it is
smaller than the treshold, and inserts it directly otherwise.
For example, fromByteStringWith 1024 copies strict ByteStrings whose size
is less or equal to 1kb, and inserts them directly otherwise. This implies
that the average chunk-size of the generated lazy ByteString may be as
low as 513 bytes, as there could always be just a single byte between the
directly inserted 1025 byte, strict ByteStrings.
copyByteString :: ByteString -> Builder Source
Construct a Builder that copies the strict ByteString.
Use this function to create Builders from smallish (<= 4kb)
ByteStrings or if you need to guarantee that the ByteString is not
shared with the chunks generated by the Builder.
insertByteString :: ByteString -> Builder Source
Construct a Builder that always inserts the strict ByteString
directly as a chunk.
This implies flushing the output buffer, even if it contains just
a single byte. You should therefore use insertByteString only for large
(> 8kb) ByteStrings. Otherwise, the generated chunks are too
fragmented to be processed efficiently afterwards.
Lazy bytestrings
fromLazyByteString :: ByteString -> Builder Source
Create a Builder denoting the same sequence of bytes as a lazy
ByteString.
The Builder inserts large chunks of the lazy ByteString directly,
but copies small ones to ensure that the generated chunks are large on
average.
fromLazyByteStringWith :: Int -> ByteString -> Builder Source
Construct a Builder that uses the thresholding strategy of fromByteStringWith
for each chunk of the lazy ByteString.
copyLazyByteString :: ByteString -> Builder Source
Construct a Builder that copies the lazy ByteString.
insertLazyByteString :: ByteString -> Builder Source
Construct a Builder that inserts all chunks of the lazy ByteString
directly.