Module
Data.Codec.Argonaut.Record
- Package
- purescript-codec-argonaut
- Repository
- garyb/purescript-codec-argonaut
#RowListCodec Source
class RowListCodec (rl :: RowList) (ri :: Row Type) (ro :: Row Type) | rl -> ri ro where
Members
rowListCodec :: RLProxy rl -> Record ri -> JPropCodec (Record ro)
Instances
RowListCodec Nil () ()
(RowListCodec rs ri' ro', RowCons sym (JsonCodec a) ri' ri, RowCons sym a ro' ro, IsSymbol sym, TypeEquals co (JsonCodec a)) => RowListCodec (Cons sym co rs) ri ro
#record Source
record :: forall rl ro ri. RowToList ri rl => RowListCodec rl ri ro => Record ri -> JPropCodec (Record ro)
Constructs a record codec from a record of codecs.
type Person = { name ∷ String, age ∷ Int }
personCodec ∷ CA.JsonCodec Person
personCodec = CA.object "Person" (record { name: CA.string, age: CA.int })
decode personCodec "{ name: \"Carl\", age:\"25\" }" == Right { name: "Carl", age: 25 }