Module
BoomBoom.Generic
- Package
- purescript-boomboom
- Repository
- paluh/purescript-boomboom
#VariantBoomBoom Source
class VariantBoomBoom irl ir tok builder | irl -> tok, irl -> builder where
ir
- input record with BoomBooms
as fields
irl
- input row list which "traverses" given record
tok
- serialization output (parsing input) - required to generate variant prefix
builder
- final BoomBoom
builder
Members
variantImpl :: RLProxy irl -> (forall n. IsSymbol n => SProxy n -> BoomBoom tok Unit) -> Record ir -> builder
Instances
(RowCons n (BoomBoom tok fb) ir' ir, RowCons n fb p p', RowCons n fb s s', IsSymbol n, Semigroup tok, Eq tok) => VariantBoomBoom (Cons n (BoomBoom tok fb) Nil) ir tok (CoproductBuilder tok (Variant p') (Either (Variant s') tok) (Either (Variant s) tok))
(RowCons n (BoomBoom tok fb) ir' ir, RowCons n fb p p', RowCons n fb s s', IsSymbol n, Semigroup tok, Eq tok, VariantBoomBoom tail ir tok (CoproductBuilder tok (Variant p') (Either (Variant s'') tok) (Either (Variant s') tok))) => VariantBoomBoom (Cons n (BoomBoom tok fb) tail) ir tok (CoproductBuilder tok (Variant p') (Either (Variant s'') tok) (Either (Variant s) tok))
#RecordBoomBoom Source
class RecordBoomBoom irl ir builder | irl -> builder where
ir
- input record with BoomBooms
as fields
irl
- input row list which "traverses" given record
builder
- final BoomBoom
builder
Members
recordImpl :: RLProxy irl -> Record ir -> builder
Instances
(Monoid tok) => RecordBoomBoom Nil ir (ProductBuilder tok s p p)
(RowCons n (BoomBoom tok b) ir' ir, RowCons n b p p', RowLacks n p, RowCons n b s s', RowLacks n s, IsSymbol n, Semigroup tok, RecordBoomBoom tail ir (ProductBuilder tok (Record s') (Record p') (Record p''))) => RecordBoomBoom (Cons n (BoomBoom tok b) tail) ir (ProductBuilder tok (Record s') (Record p) (Record p''))