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

Streamly.Internal.Serialize.FromBytes

Description

Decode Haskell data types from byte streams.

Synopsis

Type class

class FromBytes a where Source #

Methods

fromBytes :: Parser Word8 m a Source #

Decode a byte stream to a Haskell type.

Decoders

unit :: Monad m => Parser Word8 m () Source #

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

0 ==> ()

Pre-release

bool :: Monad m => Parser Word8 m Bool Source #

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

0 ==> False
1 ==> True

Pre-release

ordering :: Monad m => Parser Word8 m Ordering Source #

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

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

Pre-release

eqWord8 :: Monad m => Word8 -> Parser Word8 m Word8 Source #

Accept the input byte only if it is equal to the specified value.

Pre-release

word8 :: Monad m => Parser Word8 m Word8 Source #

Accept any byte.

Pre-release

word16be :: Monad m => Parser Word8 m Word16 Source #

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

Pre-release

word16le :: Monad m => Parser Word8 m Word16 Source #

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

Pre-release

word32be :: Monad m => Parser Word8 m Word32 Source #

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

Pre-release

word32le :: Monad m => Parser Word8 m Word32 Source #

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

Pre-release

word64be :: Monad m => Parser Word8 m Word64 Source #

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

Pre-release

word64le :: Monad m => Parser Word8 m Word64 Source #

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

Pre-release

word64host :: MonadIO m => Parser Word8 m Word64 Source #

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

Pre-release

int16be :: Monad m => Parser Word8 m Int16 Source #

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

Pre-release

int16le :: Monad m => Parser Word8 m Int16 Source #

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

Pre-release

int32be :: Monad m => Parser Word8 m Int32 Source #

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

Pre-release

int32le :: Monad m => Parser Word8 m Int32 Source #

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

Pre-release

int64be :: Monad m => Parser Word8 m Int64 Source #

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

Pre-release

int64le :: Monad m => Parser Word8 m Int64 Source #

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

Pre-release

charLatin1 :: Monad m => Parser Word8 m Char Source #

Accept any byte.

Pre-release