flat-0.3.4: Principled and efficient bit-oriented binary serialization.

Safe HaskellTrustworthy
LanguageHaskell2010

Data.Flat.Class

Contents

Description

Generics-based generation of Flat instances

Synopsis

The Flat class

class Flat a where Source #

Class of types that can be encoded/decoded

Minimal complete definition

Nothing

Methods

encode :: a -> Encoding Source #

encode :: (Generic a, GEncode (Rep a)) => a -> Encoding Source #

decode :: Get a Source #

decode :: (Generic a, GDecode (Rep a)) => Get a Source #

size :: a -> NumBits -> NumBits Source #

size :: (Generic a, GSize (Rep a)) => a -> NumBits -> NumBits Source #

Instances
Flat Bool Source # 
Instance details

Defined in Data.Flat.Instances

Flat Char Source # 
Instance details

Defined in Data.Flat.Instances

Flat Double Source # 
Instance details

Defined in Data.Flat.Instances

Flat Float Source # 
Instance details

Defined in Data.Flat.Instances

Flat Int Source # 
Instance details

Defined in Data.Flat.Instances

Flat Int8 Source # 
Instance details

Defined in Data.Flat.Instances

Flat Int16 Source # 
Instance details

Defined in Data.Flat.Instances

Flat Int32 Source # 
Instance details

Defined in Data.Flat.Instances

Flat Int64 Source # 
Instance details

Defined in Data.Flat.Instances

Flat Integer Source # 
Instance details

Defined in Data.Flat.Instances

Flat Natural Source # 
Instance details

Defined in Data.Flat.Instances

Flat Word Source # 
Instance details

Defined in Data.Flat.Instances

Flat Word8 Source # 
Instance details

Defined in Data.Flat.Instances

Flat Word16 Source # 
Instance details

Defined in Data.Flat.Instances

Flat Word32 Source # 
Instance details

Defined in Data.Flat.Instances

Flat Word64 Source # 
Instance details

Defined in Data.Flat.Instances

Flat () Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: () -> Encoding Source #

decode :: Get () Source #

size :: () -> NumBits -> NumBits Source #

Flat ShortByteString Source # 
Instance details

Defined in Data.Flat.Instances

Flat ByteString Source # 
Instance details

Defined in Data.Flat.Instances

Flat ByteString Source # 
Instance details

Defined in Data.Flat.Instances

Flat Text Source # 
Instance details

Defined in Data.Flat.Instances

Flat UTF16Text Source # 
Instance details

Defined in Data.Flat.Instances

Flat UTF8Text Source # 
Instance details

Defined in Data.Flat.Instances

Flat Filler Source #

Use a special encoding for the filler

Instance details

Defined in Data.Flat.Filler

Flat [Char] Source # 
Instance details

Defined in Data.Flat.Instances

Flat a => Flat [a] Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: [a] -> Encoding Source #

decode :: Get [a] Source #

size :: [a] -> NumBits -> NumBits Source #

Flat a => Flat (Maybe a) Source # 
Instance details

Defined in Data.Flat.Instances

Flat a => Flat (Seq a) Source # 
Instance details

Defined in Data.Flat.Instances

Flat a => Flat (PreAligned a) Source # 
Instance details

Defined in Data.Flat.Filler

Flat a => Flat (PostAligned a) Source # 
Instance details

Defined in Data.Flat.Filler

(Flat a, Flat b) => Flat (Either a b) Source # 
Instance details

Defined in Data.Flat.Instances

(Flat a, Flat b) => Flat (a, b) Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: (a, b) -> Encoding Source #

decode :: Get (a, b) Source #

size :: (a, b) -> NumBits -> NumBits Source #

(Flat a, Flat b, Ord a) => Flat (Map a b) Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: Map a b -> Encoding Source #

decode :: Get (Map a b) Source #

size :: Map a b -> NumBits -> NumBits Source #

(Flat a, Flat b, Flat c) => Flat (a, b, c) Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: (a, b, c) -> Encoding Source #

decode :: Get (a, b, c) Source #

size :: (a, b, c) -> NumBits -> NumBits Source #

(Flat a, Flat b, Flat c, Flat d) => Flat (a, b, c, d) Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: (a, b, c, d) -> Encoding Source #

decode :: Get (a, b, c, d) Source #

size :: (a, b, c, d) -> NumBits -> NumBits Source #

(Flat a, Flat b, Flat c, Flat d, Flat e) => Flat (a, b, c, d, e) Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: (a, b, c, d, e) -> Encoding Source #

decode :: Get (a, b, c, d, e) Source #

size :: (a, b, c, d, e) -> NumBits -> NumBits Source #

(Flat a, Flat b, Flat c, Flat d, Flat e, Flat f) => Flat (a, b, c, d, e, f) Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: (a, b, c, d, e, f) -> Encoding Source #

decode :: Get (a, b, c, d, e, f) Source #

size :: (a, b, c, d, e, f) -> NumBits -> NumBits Source #

(Flat a, Flat b, Flat c, Flat d, Flat e, Flat f, Flat g) => Flat (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Data.Flat.Instances

Methods

encode :: (a, b, c, d, e, f, g) -> Encoding Source #

decode :: Get (a, b, c, d, e, f, g) Source #

size :: (a, b, c, d, e, f, g) -> NumBits -> NumBits Source #

getSize :: Flat a => a -> NumBits Source #

Calculate the maximum size in bits of the serialisation of the value