scale-1.0.0.0: SCALE v2.0 codec for Haskell Web3 library.
CopyrightAleksandr Krupenkin 2016-2021
LicenseApache-2.0
Maintainermail@akru.me
Stabilityexperimental
Portabilityunportable
Safe HaskellNone
LanguageHaskell2010

Codec.Scale.Generic

Description

This module defines generic codec instances for data structures (including tuples) and enums (tagged-unions in Rust).

Orphan instances

(Decode a, GDecode (NP I as)) => GDecode (NP I (a ': as)) Source # 
Instance details

Methods

gGet :: Get (NP I (a ': as)) Source #

GDecode (NP I ('[] :: [Type])) Source # 
Instance details

Methods

gGet :: Get (NP I '[]) Source #

GDecode (NP f as) => GDecode (SOP f '[as]) Source # 
Instance details

Methods

gGet :: Get (SOP f '[as]) Source #

(GDecode (NP f xs), GDecode (NP f ys), All (Compose GDecode (NP f)) xss, EnumParser xss) => GDecode (SOP f (xs ': (ys ': xss))) Source # 
Instance details

Methods

gGet :: Get (SOP f (xs ': (ys ': xss))) Source #

(Encode a, GEncode (NP I as)) => GEncode (NP I (a ': as)) Source # 
Instance details

Methods

gPut :: Putter (NP I (a ': as)) Source #

GEncode (NP I ('[] :: [Type])) Source # 
Instance details

Methods

gPut :: Putter (NP I '[]) Source #

GEncode (NP f xs) => GEncode (SOP f '[xs]) Source # 
Instance details

Methods

gPut :: Putter (SOP f '[xs]) Source #

(GEncode (NP f xs), GEncode (NP f ys), All (Compose GEncode (NP f)) xss) => GEncode (SOP f (xs ': (ys ': xss))) Source # 
Instance details

Methods

gPut :: Putter (SOP f (xs ': (ys ': xss))) Source #