| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
PlutusTx.IsData
Synopsis
- module PlutusTx.IsData.Class
- unstableMakeIsData :: Name -> Q [Dec]
- makeIsDataIndexed :: Name -> [(Name, Int)] -> Q [Dec]
- data AsDataProdType
- mkConstrCreateExpr :: Integer -> [Name] -> ExpQ
- mkDestructor :: DatatypeInfo -> Name -> [ConstructorInfo] -> Q [Dec]
- mkUnsafeConstrMatchPattern :: AsDataProdType -> Integer -> [Name] -> PatQ
- unsafeFromDataClause :: [(ConstructorInfo, Int)] -> Q Clause
- makeIsDataAsList :: Name -> Q [Dec]
- mkConstrPartsMatchPattern :: Integer -> [Name] -> PatQ
- mkUnsafeConstrPartsMatchPattern :: AsDataProdType -> Integer -> [Name] -> PatQ
- fromDataClause :: [(ConstructorInfo, Int)] -> Q Clause
Documentation
module PlutusTx.IsData.Class
unstableMakeIsData :: Name -> Q [Dec] Source #
Generate a FromData and a ToData instance for a type.
This may not be stable in the face of constructor additions,
renamings, etc. Use makeIsDataIndexed if you need stability.
makeIsDataIndexed :: Name -> [(Name, Int)] -> Q [Dec] Source #
Generate a ToData, 'FromData and a UnsafeFromData instances for a type,
using an explicit mapping of constructor names to indices.
Use this for types where you need to keep the representation stable.
data AsDataProdType Source #
If generating pattern synonyms for a product type declared with asData,
we can avoid the index match, as we know that the type only has one constructor.
Constructors
| IsAsDataProdType | |
| IsNotAsDataProdType |
mkUnsafeConstrMatchPattern :: AsDataProdType -> Integer -> [Name] -> PatQ Source #
mkUnsafeConstrPartsMatchPattern :: AsDataProdType -> Integer -> [Name] -> PatQ Source #