bytezap-1.4.0: Bytestring builder with zero intermediate allocation
Safe HaskellSafe-Inferred
LanguageGHC2021

Bytezap.Parser.Struct.Generic

Documentation

class GParseBase tag where Source #

Associated Types

type GParseBaseSt tag :: ZeroBitType Source #

The state token of the parser.

type GParseBaseC tag a :: Constraint Source #

type GParseBaseE tag :: Type Source #

type GParseBaseLenTF tag :: Type ~> Natural Source #

Defunctionalization symbol for a type family turning Types into Naturals. (Needed as we can't partially apply type families.)

Methods

gParseBase :: GParseBaseC tag a => ParserT (GParseBaseSt tag) (GParseBaseE tag) a Source #

class GParse tag gf where Source #

Methods

gParse :: ParserT (GParseBaseSt tag) (GParseBaseE tag) (gf p) Source #

Instances

Instances details
GParse (tag :: k1) (U1 :: k2 -> Type) Source #

Wow, look! Nothing!

Instance details

Defined in Bytezap.Parser.Struct.Generic

Methods

gParse :: forall (p :: k10). ParserT (GParseBaseSt tag) (GParseBaseE tag) (U1 p) Source #

(GParse tag l, GParse tag r, GParseBase tag, lenL ~ GTFoldMapCAddition (GParseBaseLenTF tag) l, KnownNat lenL) => GParse (tag :: k1) (l :*: r :: k2 -> Type) Source # 
Instance details

Defined in Bytezap.Parser.Struct.Generic

Methods

gParse :: forall (p :: k10). ParserT (GParseBaseSt tag) (GParseBaseE tag) ((l :*: r) p) Source #

GParse tag gf => GParse (tag :: k1) (C1 cc gf :: k2 -> Type) Source # 
Instance details

Defined in Bytezap.Parser.Struct.Generic

Methods

gParse :: forall (p :: k10). ParserT (GParseBaseSt tag) (GParseBaseE tag) (C1 cc gf p) Source #

GParse tag gf => GParse (tag :: k1) (D1 cd gf :: k2 -> Type) Source # 
Instance details

Defined in Bytezap.Parser.Struct.Generic

Methods

gParse :: forall (p :: k10). ParserT (GParseBaseSt tag) (GParseBaseE tag) (D1 cd gf p) Source #

(GParseBase tag, GParseBaseC tag a) => GParse (tag :: k1) (S1 c (Rec0 a) :: k2 -> Type) Source # 
Instance details

Defined in Bytezap.Parser.Struct.Generic

Methods

gParse :: forall (p :: k10). ParserT (GParseBaseSt tag) (GParseBaseE tag) (S1 c (Rec0 a) p) Source #