instant-bytes-0.1.0.1: Generic Serial instances through instant-generics

Safe HaskellNone
LanguageHaskell2010

Generics.Instant.Functions.Bytes

Contents

Synopsis

Documentation

You can use gserialize and gdeserialize as your generic serialize and deserialize implementations for any Representable type as follows:

instance Serial MyType where
   serialize = gserialize
   deserialize = gdeserialize

gserialize :: (Representable a, GSerial (Rep a), MonadPut m) => a -> m () Source

Internals

class GSerial a Source

Minimal complete definition

gserialize', gdeserialize'

Instances

GSerial Z Source 
GSerial U Source 
Serial a => GSerial (Var a) Source 
Serial a => GSerial (Rec a) Source 
(GSumSerial a, GSumSerial b, GSerial a, GSerial b, GSumSize * a, GSumSize * b) => GSerial ((:+:) a b) Source 
(GSerial a, GSerial b) => GSerial ((:*:) a b) Source 
GSerial a => GSerial (CEq k k c p q a) Source 
GSerial a => GSerial (CEq k k c p p a) Source 

Even more internal

class GSumSerial a Source

Minimal complete definition

putSum, getSum

Instances

(GSumSerial a, GSumSerial b, GSerial a, GSerial b) => GSumSerial ((:+:) a b) Source 
GSerial a => GSumSerial (CEq k k c p q a) Source 
GSerial a => GSumSerial (CEq k k c p p a) Source 

class GSumSize a Source

Minimal complete definition

sumSize

Instances

(GSumSize * a, GSumSize * b) => GSumSize * ((:+:) a b) Source 
GSumSize * (CEq k k c p q a) Source