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 classstatic classprivate static final class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic AlgebraicDataTypeadt(DeriveConfig deriveConfig, TypeConstructor typeConstructor, MatchMethod matchMethod, DataConstruction dataConstruction, List<DataArgument> fields) cases()static DataConstructiongetDataConstruction(AlgebraicDataType algebraicDataType) static DeriveConfiggetDeriveConfig(AlgebraicDataType algebraicDataType) static List<DataArgument> getFields(AlgebraicDataType algebraicDataType) static MatchMethodgetMatchMethod(AlgebraicDataType algebraicDataType) static TypeConstructorgetTypeConstructor(AlgebraicDataType algebraicDataType) static AlgebraicDataTypelazy(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)
-