streamly-core-0.1.0: Streaming, parsers, arrays and more
Copyright(c) 2022 Composewell Technologies
LicenseBSD-3-Clause
Maintainerstreamly@composewell.com
Stabilitypre-release
PortabilityGHC
Safe HaskellNone
LanguageHaskell2010

Streamly.Internal.Serialize.ToBytes

Description

Encode Haskell data types to byte streams.

Synopsis

Type class

class ToBytes a where Source #

Methods

toBytes :: a -> Stream m Word8 Source #

Convert a Haskell type to a byte stream.

Encoders

unit :: Applicative m => Stream m Word8 Source #

A value of type () is encoded as 0 in binary encoding.

0 ==> ()

Pre-release

bool :: Applicative m => Bool -> Stream m Word8 Source #

A value of type Bool is encoded as follows in binary encoding.

0 ==> False
1 ==> True

Pre-release

ordering :: Applicative m => Ordering -> Stream m Word8 Source #

A value of type Ordering is encoded as follows in binary encoding.

0 ==> LT
1 ==> EQ
2 ==> GT

Pre-release

word8 :: Applicative m => Word8 -> Stream m Word8 Source #

Stream a Word8.

Pre-release

word16be :: Monad m => Word16 -> Stream m Word8 Source #

Stream a Word16 as two bytes, the first byte is the MSB of the Word16 and second byte is the LSB (big endian representation).

Pre-release

word16le :: Monad m => Word16 -> Stream m Word8 Source #

Stream a Word16 as two bytes, the first byte is the LSB of the Word16 and second byte is the MSB (little endian representation).

Pre-release

word32be :: Monad m => Word32 -> Stream m Word8 Source #

Stream a Word32 as four bytes, the first byte is the MSB of the Word32 and last byte is the LSB (big endian representation).

Pre-release

word32le :: Monad m => Word32 -> Stream m Word8 Source #

Stream a Word32 as four bytes, the first byte is the MSB of the Word32 and last byte is the LSB (big endian representation).

Pre-release

word64be :: Monad m => Word64 -> Stream m Word8 Source #

Stream a Word64 as eight bytes, the first byte is the MSB of the Word64 and last byte is the LSB (big endian representation).

Pre-release

word64le :: Monad m => Word64 -> Stream m Word8 Source #

Stream a Word64 as eight bytes, the first byte is the MSB of the Word64 and last byte is the LSB (big endian representation).

Pre-release

word64host :: Monad m => Word64 -> Stream m Word8 Source #

Stream a Word64 as eight bytes in the host byte order.

Pre-release

int16be :: Monad m => Int16 -> Stream m Word8 Source #

Stream a Int16 as two bytes, the first byte is the MSB of the Int16 and second byte is the LSB (big endian representation).

Pre-release

int16le :: Monad m => Int16 -> Stream m Word8 Source #

Stream a Int16 as two bytes, the first byte is the LSB of the Int16 and second byte is the MSB (little endian representation).

Pre-release

int32be :: Monad m => Int32 -> Stream m Word8 Source #

Stream a Int32 as four bytes, the first byte is the MSB of the Int32 and last byte is the LSB (big endian representation).

Pre-release

int64be :: Monad m => Int64 -> Stream m Word8 Source #

Stream a Int64 as eight bytes, the first byte is the MSB of the Int64 and last byte is the LSB (big endian representation).

Pre-release

int64le :: Monad m => Int64 -> Stream m Word8 Source #

Stream a Int64 as eight bytes, the first byte is the LSB of the Int64 and last byte is the MSB (little endian representation).

Pre-release

float32be :: Monad m => Float -> Stream m Word8 Source #

Big endian (MSB first) Float

float32le :: Monad m => Float -> Stream m Word8 Source #

Little endian (LSB first) Float

double64be :: Monad m => Double -> Stream m Word8 Source #

Big endian (MSB first) Double

double64le :: Monad m => Double -> Stream m Word8 Source #

Little endian (LSB first) Double

charLatin1 :: Applicative m => Char -> Stream m Word8 Source #

Encode a Unicode character to stream of bytes in 0-255 range.