Data.ByteString.Lazy.Internal
| Copyright | (c) Don Stewart 2006-2008 (c) Duncan Coutts 2006-2011 |
|---|---|
| License | BSD-style |
| Maintainer | [email protected], [email protected] |
| Stability | unstable |
| Portability | non-portable |
| Safe Haskell | Unsafe |
| Language | Haskell98 |
Description
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 modules.
The lazy ByteString type and representation
data ByteString Source
A space-efficient representation of a Word8 vector, supporting many efficient operations.
A lazy ByteString contains 8-bit bytes, or by using the operations from Data.ByteString.Lazy.Char8 it can be interpreted as containing 8-bit characters.
Constructors
| Empty | |
| Chunk !ByteString ByteString |
Instances
chunk :: ByteString -> ByteString -> ByteString Source
Smart constructor for Chunk. Guarantees the data type invariant.
foldrChunks :: (ByteString -> a -> a) -> a -> ByteString -> a Source
Consume the chunks of a lazy ByteString with a natural right fold.
foldlChunks :: (a -> ByteString -> a) -> a -> ByteString -> a Source
Consume the chunks of a lazy ByteString with a strict, tail-recursive, accumulating left fold.
Data type invariant and abstraction function
invariant :: ByteString -> Bool Source
The data type invariant: Every ByteString is either Empty or consists of non-null ByteStrings. All functions must preserve this, and the QC properties must check this.
checkInvariant :: ByteString -> ByteString Source
In a form that checks the invariant lazily.
Chunk allocation sizes
defaultChunkSize :: Int Source
The chunk size used for I/O. Currently set to 32k, less the memory management overhead
The recommended chunk size. Currently set to 4k, less the memory management overhead
The memory management overhead. Currently this is tuned for GHC only.
Conversion with lists: packing and unpacking
packBytes :: [Word8] -> ByteString Source
packChars :: [Char] -> ByteString Source
unpackBytes :: ByteString -> [Word8] Source
unpackChars :: ByteString -> [Char] Source
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/bytestring-0.10.10.0/Data-ByteString-Lazy-Internal.html