|A module containing semi-public ByteString internals. This exposes
the ByteString representation and low level construction functions.
Modules which extend the ByteString system will need to use this module
while ideally most users will be able to make do with the public interface
|The ByteString type and representation
A space-efficient representation of a Word8 vector, supporting many
efficient operations. A ByteString contains 8-bit characters only.
Instances of Eq, Ord, Read, Show, Data, Typeable
|Low level introduction and elimination
|Create ByteString of size l and use action f to fill it's contents.
Given the maximum size needed and a function to make the contents
of a ByteString, createAndTrim makes the ByteString. The generating
function is required to return the actual final size (<= the maximum
size), and the resulting byte array is realloced to this size.
createAndTrim is the main mechanism for creating custom, efficient
ByteString functions, using Haskell or C functions to fill the space.
|A way of creating ByteStrings outside the IO monad. The Int
argument gives the final size of the ByteString. Unlike
createAndTrim the ByteString is not reallocated if the final size
is less than the estimated size.
|Wrapper of mallocForeignPtrBytes with faster implementation
for GHC 6.5 builds newer than 060606
|Conversion to and from ForeignPtrs
|O(1) Build a ByteString from a ForeignPtr
|O(1) Deconstruct a ForeignPtr from a ByteString
|Just like unsafePerformIO, but we inline it. Big performance gains as
it exposes lots of things to further inlining. Very unsafe. In
particular, you should do no memory allocation inside an
inlinePerformIO block. On Hugs this is just unsafePerformIO.
|Count the number of occurrences of each byte.
|Standard C Functions
|Internal GHC magic
|Conversion between Word8 and Char. Should compile to a no-op.
|Unsafe conversion between Char and Word8. This is a no-op and
silently truncates to 8 bits Chars > '\255'. It is provided as
convenience for ByteString construction.
|Produced by Haddock version 0.8|