Package org.derive4j.processor.api.model
Class AlgebraicDataTypes
java.lang.Object
org.derive4j.processor.api.model.AlgebraicDataTypes
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
static class
private static final class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic AlgebraicDataType
adt
(DeriveConfig deriveConfig, TypeConstructor typeConstructor, MatchMethod matchMethod, DataConstruction dataConstruction, List<DataArgument> fields) cases()
static DataConstruction
getDataConstruction
(AlgebraicDataType algebraicDataType) static DeriveConfig
getDeriveConfig
(AlgebraicDataType algebraicDataType) static List
<DataArgument> getFields
(AlgebraicDataType algebraicDataType) static MatchMethod
getMatchMethod
(AlgebraicDataType algebraicDataType) static TypeConstructor
getTypeConstructor
(AlgebraicDataType algebraicDataType) static AlgebraicDataType
lazy
(Supplier<AlgebraicDataType> algebraicDataType) modDataConstruction
(Function<DataConstruction, DataConstruction> dataConstructionMod) modDeriveConfig
(Function<DeriveConfig, DeriveConfig> deriveConfigMod) modFields
(Function<List<DataArgument>, List<DataArgument>> fieldsMod) modMatchMethod
(Function<MatchMethod, MatchMethod> matchMethodMod) modTypeConstructor
(Function<TypeConstructor, TypeConstructor> typeConstructorMod) setDataConstruction
(DataConstruction newDataConstruction) setDeriveConfig
(DeriveConfig newDeriveConfig) setFields
(List<DataArgument> newFields) setMatchMethod
(MatchMethod newMatchMethod) setTypeConstructor
(TypeConstructor newTypeConstructor)
-
Constructor Details
-
AlgebraicDataTypes
private AlgebraicDataTypes()
-
-
Method Details
-
adt
public static AlgebraicDataType adt(DeriveConfig deriveConfig, TypeConstructor typeConstructor, MatchMethod matchMethod, DataConstruction dataConstruction, List<DataArgument> fields) -
lazy
-
cases
-
getDeriveConfig
-
getTypeConstructor
-
getMatchMethod
-
getDataConstruction
-
getFields
-
setDeriveConfig
public static Function<AlgebraicDataType,AlgebraicDataType> setDeriveConfig(DeriveConfig newDeriveConfig) -
modDeriveConfig
public static Function<AlgebraicDataType,AlgebraicDataType> modDeriveConfig(Function<DeriveConfig, DeriveConfig> deriveConfigMod) -
setTypeConstructor
public static Function<AlgebraicDataType,AlgebraicDataType> setTypeConstructor(TypeConstructor newTypeConstructor) -
modTypeConstructor
public static Function<AlgebraicDataType,AlgebraicDataType> modTypeConstructor(Function<TypeConstructor, TypeConstructor> typeConstructorMod) -
setMatchMethod
public static Function<AlgebraicDataType,AlgebraicDataType> setMatchMethod(MatchMethod newMatchMethod) -
modMatchMethod
public static Function<AlgebraicDataType,AlgebraicDataType> modMatchMethod(Function<MatchMethod, MatchMethod> matchMethodMod) -
setDataConstruction
public static Function<AlgebraicDataType,AlgebraicDataType> setDataConstruction(DataConstruction newDataConstruction) -
modDataConstruction
public static Function<AlgebraicDataType,AlgebraicDataType> modDataConstruction(Function<DataConstruction, DataConstruction> dataConstructionMod) -
setFields
-
modFields
public static Function<AlgebraicDataType,AlgebraicDataType> modFields(Function<List<DataArgument>, List<DataArgument>> fieldsMod)
-