Copyright | (c) 2013 Leon P Smith |
---|---|
License | BSD3 |
Maintainer | Leon P Smith <leon@melding-monads.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell98 |
Blaze.ByteString.Builder.Int
Contents
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
Big-endian writes
writeInt16be :: Int16 -> Write Source #
Write an Int16
in big endian format.
writeInt32be :: Int32 -> Write Source #
Write an Int32
in big endian format.
writeInt64be :: Int64 -> Write Source #
Write an Int64
in big endian format.
Little-endian writes
writeInt16le :: Int16 -> Write Source #
Write an Int16
in little endian format.
writeInt32le :: Int32 -> Write Source #
Write an Int32
in little endian format.
writeInt64le :: Int64 -> Write Source #
Write an Int64
in little endian format.
Host-endian writes
writeInthost :: Int -> Write Source #
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 Source #
Write an Int16
in native host order and host endianness.
writeInt32host :: Int32 -> Write Source #
Write an Int32
in native host order and host endianness.
writeInt64host :: Int64 -> Write Source #
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.
Big-endian serialization
fromInt16be :: Int16 -> Builder Source #
Serialize an Int16
in big endian format.
fromInt32be :: Int32 -> Builder Source #
Serialize an Int32
in big endian format.
fromInt64be :: Int64 -> Builder Source #
Serialize an Int64
in big endian format.
fromInt32sbe :: [Int32] -> Builder Source #
Serialize a list of Int32
s in big endian format.
fromInt16sbe :: [Int16] -> Builder Source #
Serialize a list of Int16
s in big endian format.
fromInt64sbe :: [Int64] -> Builder Source #
Serialize a list of Int64
s in big endian format.
Little-endian serialization
fromInt16le :: Int16 -> Builder Source #
Serialize an Int16
in little endian format.
fromInt32le :: Int32 -> Builder Source #
Serialize an Int32
in little endian format.
fromInt64le :: Int64 -> Builder Source #
Serialize an Int64
in little endian format.
fromInt16sle :: [Int16] -> Builder Source #
Serialize a list of Int16
s in little endian format.
fromInt32sle :: [Int32] -> Builder Source #
Serialize a list of Int32
s in little endian format.
fromInt64sle :: [Int64] -> Builder Source #
Serialize a list of Int64
s in little endian format.
Host-endian serialization
fromInthost :: Int -> Builder Source #
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 Source #
Write an Int16
in native host order and host endianness.
fromInt32host :: Int32 -> Builder Source #
Write an Int32
in native host order and host endianness.
fromInt64host :: Int64 -> Builder Source #
Write an Int64
in native host order and host endianness.
fromIntshost :: [Int] -> Builder Source #
Serialize a list of Int
s.
See fromInthost
for usage considerations.
fromInt16shost :: [Int16] -> Builder Source #
Write a list of Int16
s in native host order and host endianness.
fromInt32shost :: [Int32] -> Builder Source #
Write a list of Int32
s in native host order and host endianness.
fromInt64shost :: [Int64] -> Builder Source #
Write a list of Int64
s in native host order and host endianness.