blaze-builder-0.3.1.1: Efficient buffered output.

Portability | tested on GHC only
Stability | experimental
Maintainer | Simon Meier <iridcode@gmail.com>
Safe Haskell | None

Blaze.ByteString.Builder.Int

Contents

- Writing integers to a buffer
  - Big-endian writes
  - Little-endian writes
  - Host-endian writes
- Creating builders from integers
  - Big-endian serialization
  - Little-endian serialization
  - Host-endian serialization

Description

`Write`s and `Builder`s for serializing integers.

See Blaze.ByteString.Builder.Word for information about how to best write several integers at once.

Synopsis

- writeInt8 :: Int8 -> Write
- writeInt16be :: Int16 -> Write
- writeInt32be :: Int32 -> Write
- writeInt64be :: Int64 -> Write
- writeInt16le :: Int16 -> Write
- writeInt32le :: Int32 -> Write
- writeInt64le :: Int64 -> Write
- writeInthost :: Int -> Write
- writeInt16host :: Int16 -> Write
- writeInt32host :: Int32 -> Write
- writeInt64host :: Int64 -> Write
- fromInt8 :: Int8 -> Builder
- fromInt8s :: [Int8] -> Builder
- fromInt16be :: Int16 -> Builder
- fromInt32be :: Int32 -> Builder
- fromInt64be :: Int64 -> Builder
- fromInt32sbe :: [Int32] -> Builder
- fromInt16sbe :: [Int16] -> Builder
- fromInt64sbe :: [Int64] -> Builder
- fromInt16le :: Int16 -> Builder
- fromInt32le :: Int32 -> Builder
- fromInt64le :: Int64 -> Builder
- fromInt16sle :: [Int16] -> Builder
- fromInt32sle :: [Int32] -> Builder
- fromInt64sle :: [Int64] -> Builder
- fromInthost :: Int -> Builder
- fromInt16host :: Int16 -> Builder
- fromInt32host :: Int32 -> Builder
- fromInt64host :: Int64 -> Builder
- fromIntshost :: [Int] -> Builder
- fromInt16shost :: [Int16] -> Builder
- fromInt32shost :: [Int32] -> Builder
- fromInt64shost :: [Int64] -> Builder

# Writing integers to a buffer

writeInt8 :: Int8 -> Write

Write a single signed byte.

## Big-endian writes

writeInt16be :: Int16 -> Write

Write an `Int16` in big endian format.

writeInt32be :: Int32 -> Write

Write an `Int32` in big endian format.

writeInt64be :: Int64 -> Write

Write an `Int64` in big endian format.

## Little-endian writes

writeInt16le :: Int16 -> Write

Write an `Int16` in little endian format.

writeInt32le :: Int32 -> Write

Write an `Int32` in little endian format.

writeInt64le :: Int64 -> Write

Write an `Int64` in little endian format.

## Host-endian writes

writeInthost :: Int -> Write

Write a single native machine `Int`. The `Int` is written in host order, host endian form, for the machine you're on. On a 64 bit machine the `Int` is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or integer sized machines, without conversion.

writeInt16host :: Int16 -> Write

Write an `Int16` in native host order and host endianness.

writeInt32host :: Int32 -> Write

Write an `Int32` in native host order and host endianness.

writeInt64host :: Int64 -> Write

Write an `Int64` in native host order and host endianness.

# Creating builders from integers

We provide serialization functions both for singleton integers as well as for lists of integers. Using these list serialization functions is much faster than using `mconcat . map fromInt<n>`, as the list serialization functions use a tighter inner loop.

fromInt8 :: Int8 -> Builder

Serialize a single byte.

fromInt8s :: [Int8] -> Builder

Serialize a list of bytes.

## Big-endian serialization

fromInt16be :: Int16 -> Builder

Serialize an `Int16` in big endian format.

fromInt32be :: Int32 -> Builder

Serialize an `Int32` in big endian format.

fromInt64be :: Int64 -> Builder

Serialize an `Int64` in big endian format.

fromInt32sbe :: [Int32] -> Builder

Serialize a list of `Int32`s in big endian format.

fromInt16sbe :: [Int16] -> Builder

Serialize a list of `Int16`s in big endian format.

fromInt64sbe :: [Int64] -> Builder

Serialize a list of `Int64`s in big endian format.

## Little-endian serialization

fromInt16le :: Int16 -> Builder

Serialize an `Int16` in little endian format.

fromInt32le :: Int32 -> Builder

Serialize an `Int32` in little endian format.

fromInt64le :: Int64 -> Builder

Serialize an `Int64` in little endian format.

fromInt16sle :: [Int16] -> Builder

Serialize a list of `Int16`s in little endian format.

fromInt32sle :: [Int32] -> Builder

Serialize a list of `Int32`s in little endian format.

fromInt64sle :: [Int64] -> Builder

Serialize a list of `Int64`s in little endian format.

## Host-endian serialization

fromInthost :: Int -> Builder

Serialize a single native machine `Int`. The `Int` is serialized in host order, host endian form, for the machine you're on. On a 64 bit machine the `Int` is an 8 byte value, on a 32 bit machine, 4 bytes. Values written this way are not portable to different endian or integer sized machines, without conversion.

fromInt16host :: Int16 -> Builder

Write an `Int16` in native host order and host endianness.

fromInt32host :: Int32 -> Builder

Write an `Int32` in native host order and host endianness.

fromInt64host :: Int64 -> Builder

Write an `Int64` in native host order and host endianness.

fromIntshost :: [Int] -> Builder

Serialize a list of `Int`s. See `fromInthost` for usage considerations.

fromInt16shost :: [Int16] -> Builder

Write a list of `Int16`s in native host order and host endianness.

fromInt32shost :: [Int32] -> Builder

Write a list of `Int32`s in native host order and host endianness.

fromInt64shost :: [Int64] -> Builder

Write a list of `Int64`s in native host order and host endianness.