blaze-builder-0.4.4.1: Efficient buffered output.

Copyright | (c) 2013 Leon P Smith
License | BSD3
Maintainer | https://github.com/blaze-builder
Stability | stable
Safe Haskell | None
Language | Haskell98

Blaze.ByteString.Builder.Compat.Write

Description

Conversions from the new Prims to the old Writes.

Synopsis

- data Write
- writePrimFixed :: FixedPrim a -> a -> Write
- writePrimBounded :: BoundedPrim a -> a -> Write

# Documentation

data Write Source #

A write of a bounded number of bytes.

When defining a function `write :: a -> Write` for some `a`, then it is important to ensure that the bound on the number of bytes written is data-independent. Formally,

     forall x y. getBound (write x) = getBound (write y)

The idea is that this data-independent bound is specified such that the compiler can optimize the check, if there are enough free bytes in the buffer, to a single subtraction between the pointer to the next free byte and the pointer to the end of the buffer with this constant bound of the maximal number of bytes to be written.

#### Instances

Instances details

Monoid Write Source # |
Instance details Defined in Blaze.ByteString.Builder.Internal.Write Methods mempty :: Write Source # mappend :: Write -> Write -> Write Source # mconcat :: [Write] -> Write Source #
Semigroup Write Source # |
Instance details Defined in Blaze.ByteString.Builder.Internal.Write Methods (<>) :: Write -> Write -> Write Source # sconcat :: NonEmpty Write -> Write Source # stimes :: Integral b => b -> Write -> Write Source #

writePrimFixed :: FixedPrim a -> a -> Write Source #

writePrimBounded :: BoundedPrim a -> a -> Write Source #