Data.Binary.Builder.Internal

binary-0.7.5.0: Binary serialisation for Haskell values using lazy ByteStrings

Copyright | Lennart Kolmodin, Ross Paterson
License | BSD3-style (see LICENSE)
Maintainer | Lennart Kolmodin <kolmodin@gmail.com>
Stability | experimental
Portability | portable to Hugs and GHC
Safe Haskell | Trustworthy
Language | Haskell98

Data.Binary.Builder.Internal

Contents

- Low-level construction of Builders

Description

A module containing semi-public `Builder` internals that exposes low level construction functions. Modules which extend the `Builder` system will need to use this module while ideally most users will be able to make do with the public interface modules.

Synopsis

- writeN :: Int -> (Ptr Word8 -> IO ()) -> Builder
- writeAtMost :: Int -> (Ptr Word8 -> IO Int) -> Builder

# Low-level construction of Builders

writeN :: Int -> (Ptr Word8 -> IO ()) -> Builder

Ensure that `n` bytes are available, and then use `f` to write exactly `n` bytes into memory.

writeAtMost :: Int -> (Ptr Word8 -> IO Int) -> Builder

Ensure that `n` bytes are available, and then use `f` to write at most `n` bytes into memory. `f` must return the actual number of bytes written.