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 ByteString
s. 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