packstream-bolt-0.1.0.0: PackStream binary serialization format
Safe HaskellNone
LanguageGHC2021

Data.PackStream.Generic

Description

Internal module. Not part of the public API.

Synopsis

Documentation

class GPackStream (f :: Type -> Type) Source #

Generic representation class for PackStream encoding/decoding.

Minimal complete definition

gToPs, gFromPs

Instances

Instances details
GPackStream (U1 :: Type -> Type) Source # 
Instance details

Defined in Data.PackStream.Generic

Methods

gToPs :: U1 a -> Ps

gFromPs :: Ps -> Result (U1 a)

(GPackStream a, GProdPack b) => GPackStream (a :*: b) Source # 
Instance details

Defined in Data.PackStream.Generic

Methods

gToPs :: (a :*: b) a0 -> Ps

gFromPs :: Ps -> Result ((a :*: b) a0)

(GSumPack a, GSumPack b, SumSize a, SumSize b) => GPackStream (a :+: b) Source # 
Instance details

Defined in Data.PackStream.Generic

Methods

gToPs :: (a :+: b) a0 -> Ps

gFromPs :: Ps -> Result ((a :+: b) a0)

PackStream a => GPackStream (K1 i a :: Type -> Type) Source # 
Instance details

Defined in Data.PackStream.Generic

Methods

gToPs :: K1 i a a0 -> Ps

gFromPs :: Ps -> Result (K1 i a a0)

GPackStream a => GPackStream (M1 t c a) Source # 
Instance details

Defined in Data.PackStream.Generic

Methods

gToPs :: M1 t c a a0 -> Ps

gFromPs :: Ps -> Result (M1 t c a a0)

genericToPs :: (Generic a, GPackStream (Rep a)) => a -> Ps Source #

Convert a value with a Generic instance to a Ps value.

genericFromPs :: (Generic a, GPackStream (Rep a)) => Ps -> Result a Source #

Decode a Ps value into a type with a Generic instance.

newtype GenericPackStream a Source #

Newtype wrapper providing a PackStream instance via Generics.

Constructors

GenericPackStream a 

Instances

Instances details
(Generic a, GPackStream (Rep a)) => PackStream (GenericPackStream a) Source # 
Instance details

Defined in Data.PackStream.Generic